1、 电气工程学院 微机原理与接口技术 课程设计 设计题目: 交通灯控制 学 号: XXX 姓 名: XXX 同 组 人: XXX 指导教师: 牛利勇 设计时间: 2013年3月13日 设计地点: 电气学院实验中心 课程设计成绩评定表 姓 名 学 号 课程设计题目: 课程设计答辩或提问记录: 成绩评定依据: 课程设计预习报告及方案设计情况(30
2、%): 课程设计考勤情况(15%): 课程设计调试情况(30%): 课程设计总结报告与答辩情况(25%): 最终评定成绩(以优、良、中、及格、不及格评定) 指导教师签字: 年 月 日 微机原理与接口技术课程设计任务书 学生姓名:XXX 指导教师: 牛利勇 一、课程设计题目: 交通灯控制 内容:实现十字路口的交通灯控制。十字路口的交通灯采用红绿数码管,红绿灯时间显示在2位数码管。 二、课程设
3、计要求 1. 根据具体设计课题的技术指标和给定条件,独立进行方案论证和电路设计,要求概念清楚、方案合理、方法正确、步骤完整; 2. 查阅有关参考资料和手册,并能正确选择有关元器件和参数,对设计方案进行仿真; 3. 完成预习报告,报告中要有设计方案,设计电路图,还要有仿真结果; 4. 进实验室进行电路调试,边调试边修正方案; 5. 撰写课程设计报告——最终的电路图、调试过程中遇到的问题和解决问题的方法。 三、进度安排 1.时间安排 序 号 内 容 学时安排(天) 1 方案论证和系统设计 1 2 完成电路仿真,写预习报告 1 3 电路调试 2 4
4、 写设计总结报告与答辩 1 合 计 5 设计调试地点:电气楼410 2.执行要求 微机原理与接口技术课程成绩优秀的可以自拟题目,其余的同学都是指定题目。,每组不得超过2人,要求学生在教师的指导下,独力完成所设计的详细电路(包括计算和器件选型)。严禁抄袭,严禁两篇设计报告雷同。 摘要 本设计通过8051单片机模拟实现十字路口的交通灯控制,十字路口的交通灯采用红绿黄LED显示,红绿灯倒计时时间显示在2位数码管,用按键控制交通灯电路的开启与关闭。 关键词:交通灯控制、8051单片机、程序设计 目录 一、系统方案设计 ·····
5、············································· 1 1.1. 任务内容 ················································· 1 1.2. 电路设计 ·················································· 1 1.3. 程序设计 ··················································· 7 二、仿真 ········································
6、···················· 12 2. 1 仿真电路图 ················································ 12 2.2 仿真结果 ··················································· 13 三、电路调试 ······················································ 14 四、结论 ······················································
7、···· 15 五、心得体会与建议 ·················································· 16 附录:元器件清单 ···················································· 17 17 / 22 第一章 系统方案设计 1. 任务内容 能控制东、西、南、北四个路口的红绿黄信号灯正常工作。 当东西方向放行、南北方向禁行时,东西方向绿灯亮25s,然后黄灯闪烁5s;南北方向红灯亮30s。 当南北方向放行、东西方向禁行时,南北方向绿灯亮25s,然后黄灯闪烁5s;东西
8、方向红灯亮30s。 通电后,不按键时,红绿黄灯和数码管均不启动;按键后,交通灯启动;再次按键,交通灯停止。 2. 电路设计 1)设计思路 模拟交通灯控制器就是使用单片机来控制一些LED和数码管,模拟真实交通 灯的功能。 红、绿、黄灯交替启亮,利用数码管计数显示倒计时,用于管理十字路的 车辆及行人通过,计时牌显示路口通行转换剩余时间。 2)部分芯片功能介绍 ① AT89C51 AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1
9、000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,AT89C51在众多嵌入式控制应用系统中得到广泛应用。 AT89C51主要功能列举如下: 1、为一般控制应用的 8 位单芯片 2、晶片内部具有时钟振荡器(传统最高工作频率可至 12MHz) 3、内部程式存储器(ROM)为 4KB 4、内部数据存储器(RAM)为 128B 5、外部程序存储器可扩充至 64KB 6、外部数据存储器可扩充至 64KB 7、32 条双向输入输出线,且每条均
10、可以单独做 I/O 的控制 8、5个中断向量源 9、2 组独立的 16 位定时器 10、1个全多工串行通信端口 11、8751 及 8752 单芯片具有数据保密的功能 单芯片提供位逻辑运算指令 ② 74LS245 74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。 74LS245还具有双向三态功能,既可以输出,也可以输入数据。 当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。 当片选端/CE低电平有效时,DIR=“0”,信号由 B
11、 向 A 传输;(接收)DIR=“1”,信号由 A 向 B 传输;(发送)当CE为高电平时,A、B均为高阻态。 由于P2口始终输出地址的高8位,接口时74LS245的三态控制端1G和2G接地,P2口与驱动器输入线对应相连。P0口与74LS245输入端相连,E端接地,保证数据线畅通。8051的/RD和/PSEN相与后接DIR,使得RD且PSEN有效时,74LS245输入(P0.1←D1),其它时间处于输出(P0.1→D1)。 3) 部分芯片接口的控制 主要用到的硬件:AT89C51的P0口、P1口、P2口、P3口、LED数码管、LED发光二级管、 P1口、P3口、:控制发光二极
12、管及按键,控制如下: 接口 0 1 2 3 4 5 6 7 P1 按键 ER EG EY NR NG NY P3 WR WG WY SR SG SY P0控制数码管(字位),P2控制字形,控制如下: 接口 0 1 2 3 4 5 6 7 P0 S1 S2 E1 E2 W1 W2 N2 N1 P2 A B C D E F G DP 4)电路图 AT89C51子电路 按键子电路 晶振子电路
13、 245子电路 显示子电路 总电路 3. 程序设计 1)程序流程图 开始 按键的开启扫描 N 设定计数器计时时间及计时方式。 Y 南北绿灯25s计时,东西红灯30s计时,R6=30,R7=25。 延时 判断绿灯时间到R7=0?(按键扫描) 25s计时到,南北黄灯闪,东西红灯亮 判断红灯时间到R6=0?(按键扫描) 30s红灯计时到,(绿灯熄灭后约5s)南
14、北红灯亮,东西绿灯灯亮。重装R6,R7 判断绿灯时间到R6=0?(按键扫描) 25s计时到,东西黄灯闪,南北红灯亮 判断红灯时间到R7=0?(按键扫描) 30s红灯计时到,(绿灯熄灭后约5s)东西红灯亮,南北绿灯灯亮 2)汇编程序 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV P1,#00H ;各数码管和灯全灭 MOV P3,#00H MOV P0,#0FFH SETB P1.0 READKEY1:
15、 ;按键的开启检测 JNB P1.0,KEYPRO1 AJMP READKEY1 KEYPRO1: ACALL DELAY12MS ;延时12ms,防抖 JB P1.0,READKEY1 ;判断P1.0是不是1,是1跳回按键检测 KEY1: ACALL DELAY12MS ;再次延时 JNB P1.0,KEY1 ;再判断P1.0是不是1,是1向下走,不是1接着判断,直到变回1 ;再次变回1,说明按键一次,开始 START:
16、 ;对计数器初始化,设定计数器初值,开计数器 MOV 30H,#20 ;20次50ms MOV R6,#00H MOV R7,#00H MOV DPTR,#TAB MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0D4H MOV IE,#00H SETB TR0 JTD1: ;东西红,南北绿 MOV P1,#00100010B ;东红,北绿 MOV P3,#00100001B ;西红
17、南绿 MOV R6,#30 ;红30s MOV R7,#25 ;绿25s JTD2: ACALL DISP ;数码管显示 CJNE R7,#00H,JTD2 MOV P1,#01000010B ;东红,北黄 MOV P3,#01000001B ;西红,南黄 JTD3: ;南北黄闪,东西红 ACALL DISP MOV R7,#00H CPL P3.6 ;黄灯闪烁 CPL P1.6
18、 CJNE R6,#00H,JTD3 MOV P1,#00010100B ;东绿,北红 MOV P3,#00010010B ;西绿,南红 MOV R7,#30 ;红30s MOV R6,#25 ;绿25s JTD4: ;东西黄,南北红 ACALL DISP CJNE R6,#00H,JTD4 MOV P1,#00011000B ;东黄,北红 MOV P3,#00010100B ;西黄,南红 JTD5: ;东西黄灯闪烁,南北
19、红灯 ACALL DISP MOV R6,#00H CPL P1.3 ;黄灯闪烁 CPL P3.2 CJNE R7,#00H,JTD5 AJMP JTD1 DISP: ;按键的关闭检测及数码管显示1s READKEY2: ;按键的关闭测试 SETB P1.0 JNB P1.0,KEYPRO2 AJMP DISPLED KEYPRO2:ACALL DELAY12MS ;延时12ms JB P1.0,DISPLED ;判断p1
20、0是不是1,是1返回原处,接着显示程序 KEY2:ACALL DELAY12MS ;再次延时 JNB P1.0,KEY2 ;判断P1.0是不是1,是1向下走,不是1接着判断,直到变回1 MOV P1,#1 ;再次变回1,按键1次,各数码管和灯全灭 MOV P3,#0 MOV P0,#0FFH AJMP READKEY1 ;跳转到开始的按键检测 DISPLED: ;数码管显示 MOV A,R6 ;显示东西
21、方向数码管 MOV B,#10 DIV AB MOV P0,#11101011B ;输出十位 MOVC A,@A+DPTR ;找寻相应的字形 MOV P2,A ACALL DELAY2MS ;降低动态显示频率,十位与个位显示之间隔2ms MOV A,B MOV P0,#11010111B ;输出个位 MOVC A,@A+DPTR MOV P2,A
22、 ACALL DELAY2MS MOV A,R7 ;显示南北方向数码管 MOV B,#10 DIV AB MOV P0,#01111110B ;输出十位 MOVC A,@A+DPTR MOV P2,A ACALL DELAY2MS MOV A,B MOV P0,#10111101B ;输出个位 ; MOVC A,@A+DPTR
23、 MOV P2,A ACALL DELAY2MS JBC TF0,LOOP ;判断是否计满50ms AJMP DISP LOOP:MOV TH0,#3CH ;计满50ms重新给定时器赋值 MOV TL0,#0D4H MOV A,30H DEC A MOV 30H,A JNZ DISP ;判断是否计满20次50ms,即1s DEC R6 ;计满1s,东
24、西倒计时减1,南北倒计时减1 DEC R7 MOV 30H,#20 ;重新1s次数,重新计时 RET DELAY12MS: ;按键检测防抖 MOV R2,#30 DELAY12MS1:MOV R1,#40 DELAY12MS2:DJNZ R1,DELAY12MS2 DJNZ R2,DELAY12MS1 RET DELAY2MS: ;降低动态显示频率,十位与个位显示之间隔2ms M
25、OV R4,#20 DELAY2MS1:MOV R3,#50 DELAY2MS2:DJNZ R3,DELAY2MS2 DJNZ R4,DELAY2MS1 RET TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END 第二章 仿真 用Proteus7.8进行仿真 1.仿真电路图 2.仿真结果 第三章 调试 1.将实验室单片机仿真头装入电路板,接入电源和接地,载入源程序执行,电路板上LED和数码管
26、全亮并常亮,并未出现所要结果。 2. 将仿真头换一个方向接入,执行后电路板灯全灭,按下按键,LED和数码管都按照要求显示。待循环显示2次后,再按下按键,LED全灭,但两数码管有残余显示。 3. 在源程序加入清零语句 清LED: MOV P1,#1 MOV P3,#0 清数码管:MOV P0,#0FFH 最后执行一次,全部达到要求。 第四章 结论 1. 单片机P1、P3口控制LED,P0控制字位,P2控制字形,采用内部T0计时器定时,倒计时显示时间。 2. 模拟交通灯的LED和数码管,按键开启后,东西方向红灯30s,南北方向绿灯25s、黄灯
27、5s;东西方向绿灯25s、黄灯5s,南北方向红灯30s,如此循环显示,再次按键,交通灯全 灭。 第五章 心得体会与建议 这次单片机课程设计主要体验了画图、编程、调试等过程,对单片机的知识有了更深的掌握。首先是从电路板绘制电路图的体验,从电路板观察出芯片和接线,绘制出大致的电路图。经自学Proteus7.8后,绘制仿真电路图,跟电路板上电路基本相同。接下来就是程序的编写,根据要求画出程序流程图,编写子程序模块,最后连接成完整的无编译错误的程序。将程序装入Proteus仿真,得到结果。经过这一过程,基本掌握了Proteus单片机仿真的步骤,又掌握了一种电路设计的手段。 附录:元器件清单 1. 电阻 R1-R3, R5-R7, R9-R11, R13-R15, R25 1kΩ R17-R24 470Ω R26 5kΩ RN1 512Ω 2. 电容 C1, C2 15pF 无极性电容 CN1 100nF 无极性电容 C3 10μF 电解电容 3. 芯片 AT89C51 74LS245两片 排阻4片 4. 石英振荡器一个 16MHz 5. LED红色、绿色、黄色各4个 6. 数码管8个 7. 按键一个






