实验报告实验项目名称:P1口实验同组人:实验时间:实验室:指导教师:一、实验目的:(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.2s)。2、仿真电路原理图元器件选取:①AT89C52:单片机;②RES:电阻;③CRYSTAL:晶振;④CAP、CAP-ELEC:电容、电解电容;⑤LED-GREEN:绿色发光二级管。L1灭L1亮K1开关闭合了吗?开始广告灯的电路原理图3、程序设计内容查表法是单片机程序设计中常用的一种方法,它多用于一些较复杂的控制场合,如判断键盘按键的键值、利用I/O口控制外部设备作一些预先设定好的复杂动作(本题是其简单的示意)、输出正余弦、三角、梯形或更复杂的波形,甚至可以利用查表法实现一些复杂的算法。C语言步骤如下:①定义一维数组TABLE[](复杂情况也可以用二维数组,另外,为节省单片机的RAM资源,数组一般放在代码段中);②把控制码按顺序放入数组TABLE[]中;③定义变量i,改变i的值,就可以取出数组中对应的控制码。广告灯的程序流程图4、程序清单开始变量i赋初值0根据i取数组内控制码将取出的码输出到P1变量i加1延时0.2SN是结束码(01H)吗?Y四、实验结果分析:仿真结果如下图所示:模拟开关灯的电路仿真图广告灯的电路仿真图五、思考题:1、模拟开关灯实验:编程实现2个开关控制1个灯的亮、灭,并通过Protues仿真。2、简述P1口的特点和工作过程。指导教师批阅及成绩指导教师签名:年月日实验报告实验项目名称:中断实验同组人:实验时间:实验室:指导教师:一、实验目的:(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、程序设计内容0INT是低电平触发方式。所以在SW1不断开的情况下,0INT一直是低电平,LED1一直点亮;1INT是边沿触发方式(下降沿),所以在SW2不断开的情况下,1INT一直是低电平,由于没有电平变化,因此不能持续产生中断,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,此时如果按1INT进行减计数,仍然显示为00,按0INT进行加计数,若加到99时,再按0INT加计数,仍然显示为99,数值不为00时,按1INT可进行减计数,数值不为99时,按0INT可进行加计数。主程序开始NYY中断设置将当前值进行十位与个位的分离显示十位显示个位0INT加1子程序INT1减1子程序当前值是否为99?当前值是否为00?加1减1返回当前值返回当前值N两位计数数码管的程序流程图4、程序清单四、实验结果分析:仿真结果如图所示:外部中断的电路仿真图两位计数数码管电路仿真图五、思考题:1、外部中断0和1的中断入口地址:、。2、中断响应需要满足哪些条件?指导教师批阅及成绩指导教师签名:年月日实验报告实验项目名称:定时器实验同组人:实验时间:实验室:指导教师:一、实验目的:(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=1us2s=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、AT89S51中定时器工作方式和计数器工作方式的区别是什么?2、简述看门狗的作用和工作原理。指导教师批阅及成绩指导教师签名:年月日实验报告实验项目名称:8255A可编程并行接口实验同组人:实验时间:实验室:指导教师:一、实验目的:(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、程序清单四、实验结果分析:交通灯电路仿真图五、思考题:本实验中,如果去掉锁存器,将8255A的引脚A0、A1直接和单片机的P2.1、P2.0相连,系统是否可以工作?说明原因。指导教师批阅及成绩指导教师签名:年月日实验报告实验项目名称:串行口实验同组人:实验时间:实验室:指导教师:一、实验目的:(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、