单片机学生实验报告 - 图文 下载本文

实 验 报 告 实验项目名称: P1口实验 同组人: 实验时间: 实验室: K2-407单片机室 指导教师: 一、实验目的: (l)学习P1口的使用方法; 熟悉Proteus软件电路设计和Keil软件程序调试方法。 (2)学习软件延时程序的编写。 重点:延时程序,P1口结构 二、实验顶备知识: (l)Pl口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入。 (2)Proteus软件应用,Keil软件程序调试应用。 三、实验内容: ㈠ 模拟开关灯的Proteus仿真及C语言程序设计 1、设计要求:监视开关K1(接在P3.0端口上),用发光二级管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。 2、仿真电路原理图(预习内容) 元器件选取:① AT89C52:单片机;② RES:电阻;③ CRYSTAL:晶振;④ CAP、CAP-ELEC:电容、电解电容;⑤ LED-GREEN:绿色发光二级管;⑥ SWITCH:开关。 模拟开关灯的电路原理图 3、程序设计内容 ① 开关状态的检测过程 单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨动开关K1拨上去,即输入高电平,相当开关断开,当拨动开关K1拨下去,即输入低电平,相当开关闭合。单片机可以采用if(K1= =1)或者if(K1= =0)指令来完成对开关状态的检测。 ② 输出控制 当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二级管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二级管L1亮。 (预习内容) 模拟开关灯的程序流程图 4、程序清单(预习内容) ㈡ 广告灯(利用查表方式)的Protues仿真及程序设计 1、设计要求:利用查表的方法,使端口P1作单一灯的变化;左移2次,右移2次,闪烁2次(延时的时间0.2 s)。 2、仿真电路原理图(预习内容) 元器件选取:① AT89C52:单片机;② RES:电阻;③ CRYSTAL:晶振;④CAP、CAP-ELEC:电容、电解电容;⑤ LED-GREEN:绿色发光二级管。 广告灯的电路原理图 3、程序设计内容 (预习内容) 查表法是单片机程序设计中常用 的一种方法,它多用于一些较复杂的控 制场合,如判断键盘按键的键值、利用 I/O口控制外部设备作一些预先设定好 的复杂动作(本题是其简单的示意)、 输出正余弦、三角、梯形或更复杂的波 形,甚至可以利用查表法实现一些复杂 的算法。 C语言步骤如下: ① 定义一维数组TABLE[ ](复杂 情况也可以用二维数组,另外,为节省 单片机的RAM资源,数组一般放在代 码段中); ② 把控制码按顺序放入数组 TABLE[ ]中; ③ 定义变量i,改变i的值,就可以 取出数组中对应的控制码。 广告灯的程序流程图 4、程序清单(预习内容) 四、实验结果分析: (1)模拟开关实验结果: (2)广告灯实验结果: 五、思考题: 1、模拟开关灯实验:编程实现2个开关控制1个灯的亮、灭,并通过Protues仿真。 答:仿真结果:

程序: 2、简述P1口的特点和工作过程。P31 指导教师批阅及成绩 指导教师签名: 年 月 日 实 验 报 告 实验项目名称: 中断实验 同组人: 实验时间: 实验室: K2-407单片机室 指导教师: 一、实验目的: (l)学习外部中断0和1的应用。中断系统设置,中断允许IE、中断优先级IP、中断触发方式TCON的初始化。 (2)熟悉Proteus软件电路设计和Keil软件程序调试方法。 重点:外部中断0和1的工作方式 二、实验顶备知识: (l)AT89S51中断系统的设置,相关SFR使用方法,外部中断触发方式的区别。 (2)Proteus软件应用,Keil软件程序调试应用。 三、实验内容 ㈠ 外部中断在不同触发方式下的Protues仿真及C语言程序设计。 1、设计要求:分别采用外部中断0和1通过不同触发方式控制发光二极管的亮灭,编制相应程序并且仿真。 2、仿真电路原理图(预习内容) 元器件选取:① AT89C52:单片机;② RES:电阻;③ CRYSTAL:晶振;④ CAP、CAP-ELEC:电容、电解电容;⑤SWITCH:开关SW1、SW2;⑥ LED-GREEN:绿色发光二级管;⑦ LED-YELLOW:黄色发光二级管。 外部中断的电路原理图 3、程序设计内容 INT0是低电平触发方式。所以在SW1不断开的情况下,INT0一直是低电平,LED1一直点亮;INT1是边沿触发方式(下降沿),所以在SW2不断开的情况下,INT1一直是低电平,由于没有电平变化,因此不能持续产生中断,LED2不会一直点亮。 4、程序清单 (预习内容) ㈡ 两位计数数码管的Protues仿真及C语言程序设计 1、设计要求:采用外部中断0和1,控制两位数码管进行00~99的计数,其中外部中断0控制进行加1计数,外部中断1控制进行减1计数。 2、仿真电路原理图(预习内容) 元器件选取:① AT89C52:单片机;② RES:电阻;③ CRYSTAL:晶振;④ CAP、CAP-ELEC:电容、电解电容;⑤BUTTON:按钮K1和K2;⑥7SEG-MPX2-CA:两位共阴极数码管;⑦ 74LS244:8路数据缓冲器。 两位计数数码管电路原理图 3、程序设计内容(预习内容) 两位计数数码管的程序流程图 首次运行时,LED的显示初始值为00,此时如果按INT1进行减计数,仍然显示为00,按INT0进行加计数,若加到99时,再按INT0加计数,仍然显示为99,数值不为00时,按INT1可进行减计数,数值不为99时,按INT0可进行加计数。 4、程序清单 (预习内容) 四、实验结果分析: 1、外部中断在不同触发方式下的Protues仿真结果及分析 (1)低电平触发 (2)下降沿触发 结果分析: (1)开关SW1接到单片机的外部中断请求0(P3.2口),作为中断请求的输入信号,选择外部中断请求0为电平触发方式。当接通SW1时,外部中断请求0响应并允许,红色发光二级管(LED-GREEN)亮并维持在低电平直到断开SW1,中断结束。应用了单片机的外部中断请求0功能。 (2)开关SW2接到单片机的外部中断请求1(P3.3口),作为中断请求的输入信号,选择外部中断请求1为跳沿触发方式。当接通SW2瞬间,外部中断请求1响应并允许,黄色发光二级管(LED-YELLOW)亮一下,由于是边沿触发,黄色发光二级管马上熄灭,中断结束。应用了单片机的外部中断请求1功能。 2、两位计数数码管的Protues仿真及分析 加1 减1 加1到99并保持 减1到0后不变 结果分析: 先将0-9的字符存放到数组tab[]中, 五、思考题: 1、外部中断0和1的中断入口地址: 、 。 2、中断响应需要满足哪些条件? 指导教师批阅及成绩 指导教师签名: 年 月 日 实 验 报 告 实验项目名称: 定时器实验 同组人: 实验时间: 实验室: K2-407单片机室 指导教师: 一、实验目的: (l)学习定时控制的方法:软件延时、硬件延时。相关中断系统设置,定时器的初始化。 (2)熟悉Proteus软件电路设计和Keil软件程序调试方法。 重点:定时器的初始化、工作方式 二、实验顶备知识: (l)AT89S51定时计数器的4种工作方式,TMOD、TCON、THx、TLx的使用方法,GATE门控位的作用。 (2)Proteus软件应用,Keil软件程序调试应用。 三、实验内容 ㈠ 利用定时器产生脉冲的Proteus仿真及C语言程序设计。 1、设计要求:使用AT89C52,晶振频率f=12MHz,在P1.2引脚上输出一个脉冲信号,周期为2s,站空比为20%。 2、仿真电路原理图(预习内容) 元器件选取:(1)AT89C52:单片机(2)RES:电阻;(3)CRYSTAL:晶振;(4)CAP,CAP-ELEC:电容,电解电容。 电路原理图 3、程序设计内容 计数器计数周期=机器周期=12/12MHz=1us 2s=2000000us,即需要计数200万次,其中高电平占40万次,低电平占160万次。即可以采取每次10ms定时,高电平定时40 次,低电平定时160次。10ms=10000us,所以计数器初值为65536-10000=55536=oxD8F0。 4、程序清单 (预习内容) ㈡ 简易车辆里程表的Proteus仿真及C语言程序设计 1、设计要求:假设某家摩托车厂生产的摩托车,车轮直径为43cm,那么,该车行走1km需要车轮运转740圈。在车体上找一个能够检测车轮转动的适当位置,安装一个磁敏感传感器或者光电传感器。在与磁敏感传感器位置相对的摩托车转动部件上,安装一块小磁铁。这样车轮转动时会形成磁敏感传感器与小磁铁之间的相对位移,从而产生一系列的电脉冲信号。将该信号作为单片机内部可编程计数器的计数脉冲信号,供单片机记数。请利用AT89C52中的定时器、计数器来模拟这个简易车辆里程表,电脉冲信号可以由按键按下和弹起来来模拟,里程表中里程显示可以用8个LED灯来实现。为了方便,这里假设每产生5个周期的脉冲信号就相当于摩托车辆行驶1km,而且行驶的距离的数值用8个灯来显示,用8个LED灯来表示8位二进制数,灯亮表示1;否则表示0.单位是km。 2、仿真电路原理图(预习内容) 元器件选取:⑴ AT89C52:单片机;(2)RES:电阻;(3)CRYSTAL:晶振;(4)CAP,CAP-ELEC:电容、电解电容;(5)LED-RED:红色发光二极管;(6)BUTTON:按键K1。 电路原理图 3、程序设计内容 可以使用定时器/计数器0,使其作为计数器使用,工作在方式2.用人工控制开关产生的脉冲信号来模拟此敏感传感器产生的脉冲信号,这个信号通过P3.4引脚输入到单片机,作为计数的脉冲源。 仿真效果:每当按键连续按下5次时,用LED表示的8位二进制会自动加1.当然,这个仿真只是在模拟简易车辆里程表,所计路程的最大值为255km。 4、程序清单(预习内容) 四、实验结果分析: (1)利用定时器产生脉冲的Proteus仿真结果及分析 (2)简易车辆里程表的Proteus仿真结果及分析 五、思考题: 1、AT89S51中定时器工作方式和计数器工作方式的区别是什么? 2、简述看门狗的作用和工作原理。 3、一个定时器的定时时间有限,如何用两个定时器实现较长时间的定时? 指导教师批阅及成绩 指导教师签名: 年 月 日 实 验 报 告 实验项目名称: 8255A可编程并行接口实验 同组人: 实验时间: 实验室: K2-407单片机室 指导教师: 一、实验目的: (l)学习外部并行接口芯片的应用。熟悉8255A的3种工作方式,端口地址分配,初始化命令字和PC口置位复位控制字的使用方法。 (2)熟悉Proteus软件电路设计和Keil软件程序调试方法。 重点:8255A的3种工作方式 二、实验顶备知识: (l)AT89S51扩展外部接口须注意的方面,8255A的3种工作方式。 (2)Proteus软件应用,Keil软件程序调试应用。 三、实验内容 AT89C52通过8255A并行扩展,模拟交通灯控制并在Proteus中仿真。 1、设计要求:车流量基本均衡的两条路交于一十字路口,设为南北路和东西路,有两组红(R)、绿(G)、黄(Y)灯指挥着车辆和行人通行。假设交通灯亮的顺序是: 南北绿灯亮、东西红灯亮→南北黄灯闪3下、东西红灯亮→东西绿灯亮、南北红灯亮→东西黄灯闪3下、南北红灯亮→南北绿灯亮、东西红灯亮。 2、仿真电路原理图(预习内容) 元器件选取:①AT89C52:单片机;②RES:电阻;③CRYSTAL:晶振;④CAP、CAP-ELEC:电容、电解电容;⑤74LS373:锁存器;⑥8255A:并行接口芯片;⑦74LS07:驱动器;⑧LED-RED、LED-GREEN、LED-YELLOW:红、绿、黄色LED。 电路原理图 3、程序设计内容 8255A的端口A控制两组共12个LED的亮和灭,8255A的端口A为基本输入/输出方式的输出。8255A在方式0下数据输出具有锁存功能。 8255A的两条地址线A1、A0与锁存器74LS373的输出Q1、Q0相连,片选CS与P2.7相连,单片机的其他13条地址线与8255A无关,故取1。 4、程序清单 (预习内容) 四、实验结果分析: 五、思考题: 本实验中,如果用81C55代替8255A,系统是否可以工作?说明原因(画出电路图)。 电路图 指导教师批阅及成绩 指导教师签名: 年 月 日 实 验 报 告 实验项目名称: 串行口实验 同组人: 实验时间: 实验室: K2-407单片机室 指导教师: 一、实验目的: (l)学习单片机串行口的应用。串行口4种工作方式的区别,波特率设置,串行口初始化。 (2)熟悉Proteus软件电路设计和Keil软件程序调试方法。 重点:串行口4种工作方式的区别应用 二、实验顶备知识: (l)AT89S51串行口的基本原理,方式0的扩展应用,单片机与PC机的通信方式。 (2)Proteus软件应用,Keil软件程序调试应用。 三、实验内容 ㈠ 串入并出芯片74164的Proteus仿真及C语言程序设计。 1、设计要求:利用AT89C52单片机的串行口工作在方式0,AT89C52的RXD和TXD接74164,使8个发光二极管循环依次点亮。 2、仿真电路原理图(预习内容) 元器件选取:①AT89C52:单片机;②RES:电阻③CRYSTAL:晶振;④CAP、CAP-ELEC:电容。电解电容;⑤LED-RED:红色发光二极管;⑥74164.IEC:串入并出接口芯片。 电路原理图 3、程序清单 (预习内容) ㈡ 单片机与PC机串行通信的Proteus仿真及C语言程序设计 1、设计要求:单片机通过串行口不停地向PC机发送字符串“Welcome to Beijing” 。 2、仿真电路原理图(预习内容) 元器件选取:① AT89C52:单片机; ② CONN-D9F:9针插口;③ MAX232:串行通信接口芯片;④ RES:电阻; ⑤ CRYSTAL:晶振; ⑥ CAP、CAP-ELEC:电容、电解电容。 电路原理图 3、程序清单(预习内容) 四、实验结果分析: 五、思考题: 1、AT89S51单片机的串行口有几种工作方式,有几种帧格式?各种工作方式的波特率如何确定? 2、简述利用串行口进行多机通信的原理。 3、若AT89S51单片机串行口工作在方式0,RXD、TXD如何作用? 指导教师批阅及成绩 指导教师签名: 年 月 日 实 验 报 告 实验项目名称: D/A转换、A/D转换实验 同组人: 实验时间: 实验室: K2-407单片机室 指导教师: 一、实验目的: (l)学习外部接口的应用。ADC0809、DAC0832的工作方式,输入/输出方式的应用。 (2)熟悉Proteus软件电路设计和Keil软件程序调试方法。 重点:ADC0809、DAC0832的工作方式 二、实验顶备知识: (l)AT89S51与ADC、DAC接口的连接,ADC0809、DAC0832的基本原理。 (2)Proteus软件应用,Keil软件程序调试应用。 三、实验内容 ㈠ ADC0809电压模/数转换 1、设计要求:以AT89C52单片机为核心设计ADC0809模数转换仿真电路,模拟电压输入由可变电位器提供。输入电压范围0~4.99V,经ADC0809转换成对应的0~255并通过数码管显示。 2、仿真电路原理图(预习内容) 元器件选取:① AT89C52:单片机;②RES:电阻;③CRYSTAL:12MHz晶振;④CAP、CAP-ELEC:电容、电解电容;⑤7SEG-MPX4-CC:4位七段共阴极数码管;⑥74LS02、74LS04、74LS74、74LS373︰或非门、反相位、D触发器、地址锁存器;⑦POT-LIN:变阻器;⑧ADC0809:8位A/D转换器。 电路原理图 3、程序设计内容 将单片机的P0.0、P0.1和P0.2通过74LS373地质锁存器与ADC0809的ADDA、ADDB和ADDC相连接,选择ADC0809的采集通道IN0。ADC0809的地址由P0口和P2口提供,即P0口作为地址/数据复用口,提供低8位地址;P2口提供高8位地址。由于从可变电阻器上引出的电压是从IN0口输入ADC0809的,所以要求P0:0、P0.1和P0.2初始状态为低点 而P2.7控制ADC0809的ALE和OE端口,要求初始状态为低电平,因此ADC0809的地址可以定位ox7FF8。 4、程序清单(预习内容) ㈡ 利用DAC0832转换器输出三角波 1、设计要求:以DAC0832转换器和AT89C52单片机设计仿真电路,该电路能在虚拟示波器上显示出三角波,并能用虚拟电压表显示输出电压值,要求三角波的电压范围为0~15V且周期约为510ms。 2、仿真电路原理图(预习内容) 元器件选取:①AT89C52:单片机;②RES、RX8:电阻、8排阻;③CRYSTAL:晶振;④CAP、CAP-ELEC:电容、电解电容;⑤DAC0832:D/A转换器;⑥LM358N:运算放大器。 电路原理图 3、程序设计内容 程序设计首先考虑DAC0832转换芯片的入口地址,地址的设置与接口电路的连接方式有关。P2.7端口与DAC0832的CS片选端相连,要选通DAC0832,要求CS引脚为低电平,则DAC0832的入口地址为0x7FFFH。 4、程序清单(预习内容) 四、实验结果分析: 五、思考题: 1、DAC转换器的主要性能指标有哪些?目前常用的DAC转换器主要有哪几种类型?各有什么特点? 2、ADC转换器的主要性能指标有哪些?目前常用的ADC转换器主要有哪几种类型?各有什么特点? 指导教师批阅及成绩 指导教师签名: 年 月 日