1、实验 4 定时交通信号灯控制一、实验目的1、进一步了解 MCS-51单片机定时/计数器的基本用法及时间常数的计算方法;2、熟悉定时指令,并掌握其基本应用;3、熟悉定时器的查询和中断两种方式的应用。二、实验内容设计一个单片机控制交通信号灯,使其能模拟城市十字路口交通信号灯的功能,其中东西方向和南北方向各用一组发光二极管(红、黄、绿)来表示交通信号灯。三、实验电路及连线四、实验说明当东西方向放行、南北方向禁止时,东西方向绿灯亮 25s,然后黄灯亮 5s;南北方向红灯亮 30s。当南北方向放行、东西方向禁止时,南北方向绿灯亮 25s,然后黄灯亮5s;东西方向红灯亮 30s。这两条线路交替地成为放行线
2、和禁行线时就可以是定时交通控制。控制电路的核心是 80C51单片机,其内部带有 4KB的 ROM,无须扩展程序存储器;其也没有大量的运算和暂存数据,芯片内的 128B RAM能满足要求,不必外扩 RAM。“信号灯”控制码表P1.5 P1.4 P1.3 P1.2 P1.1 P1.0东西方向绿灯东西方向黄灯东西方向红灯南北方向绿灯南北方向黄灯南北方向红灯控制码 状态说明0010000000000100001100100001110021H11H0CH0AH东西放行,南北禁行东西警告,南北禁行东西禁行,南北放行东西禁行,南北警告假设晶振频率为 6MHZ五、实验步骤(一)以查询方式的定时实现交通灯的控
3、制。1、运行 Proteus软件,按图画出电路原理图。2、计算定时初值3、运行 Keil软件,创建项目,输入程序并保存。4、编译程序,修改编辑错误。5、进行仿真器设置,设定晶振频率为 6MHZ。6、Keil 与 Proteus的仿真调试六、实验参考程序ORG 0000HLJMP MAINORG 1000HMAIN: MOV P1,#21H ;东西放行,南北禁行MOV R0,#25 H ;延时秒数MAIN1: LCALL DELAY ;1s 延时子程序DJNZ R0,MAIN1 填补其他三个方向DELAY: MOV R1,#0AH ;延时 1s 子程序DEL: MOV TMOD,#01HMOV
4、TH0,#3CHMOV TL0,#0B0HSETB TR0LP1: JBC TF0,DEL1SJMP LP1DEL1: MOV TH0,#3CHMOV TL0,#0B0HDJNZ R1,DELRETEND七、预习要求1、认真阅读实验指导书,领会实验目的。2、阅读并理解本实验的原理图及参考程序。3、复习定时/计数器的相关知识。八、实验报告要求1、写出程序,并且程序必须注释说明。(实现绿灯亮 3s,黄灯亮 2s,定时采用 T1的方式 0)2、写明实验结果,若结果正确则分析执行过程,若结果错误则分析错误原因。3、实验小结:总结实验收获及对本实验的改进建议。ORG 0000HLJMP MAINORG
5、1000HMAIN: MOV P1,#21H MOV R0,#25 MAIN1: LCALL DELAY DJNZ R0,MAIN1MOV R5,#5MOV P1,#11HMAIN2: LCALL DELAY DJNZ R5,MAIN2MOV P1,#0CH MOV R6,#25 MAIN3: LCALL DELAY DJNZ R6,MAIN3MOV R4,#5MOV P1,#0AHMAIN4: LCALL DELAY DJNZ R4,MAIN4LJMP MAINDELAY: MOV R1,#0AH DEL: MOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HSETB TR0LP1: JBC TF0,DEL1SJMP LP1DEL1: MOV TH0,#3CHMOV TL0,#0B0HDJNZ R1,DELRETEND