1、电气工程学院微机原理与接口技术 课程设计设计题目:交通灯控制 学号:XXX 姓 名: XXX 同 组 人: XXX 指导教师: 牛利勇 设计时间: 2013年3月13日 设计地点: 电气学院实验中心 课程设计成绩评定表姓 名 学 号 课程设计题目: 课程设计答辩或提问记录:成绩评定依据:课程设计预习报告及方案设计情况(30):课程设计考勤情况(15):课程设计调试情况(30):课程设计总结报告与答辩情况(25):最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字: 年 月 日 微机原理与接口技术课程设计任务书学生姓名:XXX 指导教师: 牛利勇一、课程设计题目: 交通灯控制内容:实现十
2、字路口的交通灯控制。十字路口的交通灯采用红绿数码管,红绿灯时间显示在2位数码管。二、课程设计要求1. 根据具体设计课题的技术指标和给定条件,独立进行方案论证和电路设计,要求概念清楚、方案合理、方法正确、步骤完整;2. 查阅有关参考资料和手册,并能正确选择有关元器件和参数,对设计方案进行仿真;3. 完成预习报告,报告中要有设计方案,设计电路图,还要有仿真结果;4. 进实验室进行电路调试,边调试边修正方案;5. 撰写课程设计报告最终的电路图、调试过程中遇到的问题和解决问题的方法。三、进度安排1时间安排序 号内 容学时安排(天)1方案论证和系统设计12完成电路仿真,写预习报告13电路调试24写设计总
3、结报告与答辩1合 计5设计调试地点:电气楼4102执行要求微机原理与接口技术课程成绩优秀的可以自拟题目,其余的同学都是指定题目。,每组不得超过2人,要求学生在教师的指导下,独力完成所设计的详细电路(包括计算和器件选型)。严禁抄袭,严禁两篇设计报告雷同。摘要本设计通过8051单片机模拟实现十字路口的交通灯控制,十字路口的交通灯采用红绿黄LED显示,红绿灯倒计时时间显示在2位数码管,用按键控制交通灯电路的开启与关闭。关键词:交通灯控制、8051单片机、程序设计 目录一、系统方案设计 11.1. 任务内容 1 1.2. 电路设计 11.3. 程序设计 7二、仿真 122. 1 仿真电路图 12 2.
4、2 仿真结果 13三、电路调试 14四、结论 15五、心得体会与建议 16附录:元器件清单 1717 / 22第一章 系统方案设计1. 任务内容能控制东、西、南、北四个路口的红绿黄信号灯正常工作。当东西方向放行、南北方向禁行时,东西方向绿灯亮25s,然后黄灯闪烁5s;南北方向红灯亮30s。当南北方向放行、东西方向禁行时,南北方向绿灯亮25s,然后黄灯闪烁5s;东西方向红灯亮30s。通电后,不按键时,红绿黄灯和数码管均不启动;按键后,交通灯启动;再次按键,交通灯停止。2. 电路设计1)设计思路模拟交通灯控制器就是使用单片机来控制一些LED和数码管,模拟真实交通灯的功能。红、绿、黄灯交替启亮,利用
5、数码管计数显示倒计时,用于管理十字路的车辆及行人通过,计时牌显示路口通行转换剩余时间。2)部分芯片功能介绍 AT89C51AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,AT89C51在众多嵌入式控制应用系统中得到广泛应用。AT89C51主要功能列举如下:1、为一般控制应用的 8 位单芯片2、晶片内
6、部具有时钟振荡器(传统最高工作频率可至 12MHz)3、内部程式存储器(ROM)为 4KB4、内部数据存储器(RAM)为 128B5、外部程序存储器可扩充至 64KB6、外部数据存储器可扩充至 64KB7、32 条双向输入输出线,且每条均可以单独做 I/O 的控制8、5个中断向量源9、2 组独立的 16 位定时器10、1个全多工串行通信端口11、8751 及 8752 单芯片具有数据保密的功能单芯片提供位逻辑运算指令 74LS24574LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。74LS245还具有双向三态功能,既可以输出,也可以输
7、入数据。 当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 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.1D1),其它时间处于输出(P0.1D1)。3) 部分芯片接
8、口的控制 主要用到的硬件:AT89C51的P0口、P1口、P2口、P3口、LED数码管、LED发光二级管、P1口、P3口、:控制发光二极管及按键,控制如下:接口01234567P1按键EREGEYNRNGNYP3WRWGWYSRSGSYP0控制数码管(字位),P2控制字形,控制如下:接口01234567P0S1S2E1E2W1W2N2N1P2ABCDEFGDP4)电路图AT89C51子电路按键子电路晶振子电路245子电路显示子电路总电路3. 程序设计1)程序流程图开始按键的开启扫描N设定计数器计时时间及计时方式。Y南北绿灯25s计时,东西红灯30s计时,R6=30,R7=25。延时判断绿灯时间
9、到R7=0?(按键扫描)25s计时到,南北黄灯闪,东西红灯亮判断红灯时间到R6=0?(按键扫描)30s红灯计时到,(绿灯熄灭后约5s)南北红灯亮,东西绿灯灯亮。重装R6,R7判断绿灯时间到R6=0?(按键扫描)25s计时到,东西黄灯闪,南北红灯亮判断红灯时间到R7=0?(按键扫描)30s红灯计时到,(绿灯熄灭后约5s)东西红灯亮,南北绿灯灯亮2)汇编程序ORG 0000HLJMP MAINORG 0030HMAIN: MOV P1,#00H ;各数码管和灯全灭 MOV P3,#00H MOV P0,#0FFH SETB P1.0READKEY1: ;按键的开启检测 JNB P1.0,KEYPR
10、O1 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: ;对计数器初始化,设定计数器初值,开计数器 MOV 30H,#20 ;20次50ms MOV R6,#00H MOV R7,#00H MOV DPTR,#TAB MOV TMOD,#01H MOV TH0,#3CH MOV
11、 TL0,#0D4H MOV IE,#00H SETB TR0JTD1: ;东西红,南北绿 MOV P1,#00100010B ;东红,北绿 MOV P3,#00100001B ;西红,南绿 MOV R6,#30 ;红30s MOV R7,#25 ;绿25sJTD2: ACALL DISP ;数码管显示 CJNE R7,#00H,JTD2 MOV P1,#01000010B ;东红,北黄 MOV P3,#01000001B ;西红,南黄JTD3: ;南北黄闪,东西红 ACALL DISP MOV R7,#00H CPL P3.6 ;黄灯闪烁 CPL P1.6 CJNE R6,#00H,JTD3
12、 MOV P1,#00010100B ;东绿,北红 MOV P3,#00010010B ;西绿,南红 MOV R7,#30 ;红30s MOV R6,#25 ;绿25sJTD4: ;东西黄,南北红 ACALL DISP CJNE R6,#00H,JTD4 MOV P1,#00011000B ;东黄,北红 MOV P3,#00010100B ;西黄,南红JTD5: ;东西黄灯闪烁,南北红灯 ACALL DISP MOV R6,#00H CPL P1.3 ;黄灯闪烁 CPL P3.2 CJNE R7,#00H,JTD5 AJMP JTD1DISP: ;按键的关闭检测及数码管显示1s READKEY
13、2: ;按键的关闭测试 SETB P1.0 JNB P1.0,KEYPRO2 AJMP DISPLED KEYPRO2:ACALL DELAY12MS ;延时12ms JB P1.0,DISPLED ;判断p1.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
14、,R6 ;显示东西方向数码管 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 ACALL DELAY2MS MOV A,R7 ;显示南北方向数码管 MOV B,#10 DIV AB MOV P0,#01111110B ;输出十位 MOVC A,A+DPTR MOV P2,A ACALL DELAY2MS MOV
15、A,B MOV P0,#10111101B ;输出个位 ; MOVC A,A+DPTR 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,东西倒计时减1,南北倒计时减1 DEC R7 MOV 30H,#20 ;重新1s次数,重新计时 RETDELAY12MS: ;按键检测防抖 MOV R2,#30 D
16、ELAY12MS1:MOV R1,#40 DELAY12MS2:DJNZ R1,DELAY12MS2 DJNZ R2,DELAY12MS1 RETDELAY2MS: ;降低动态显示频率,十位与个位显示之间隔2ms MOV R4,#20 DELAY2MS1:MOV R3,#50 DELAY2MS2:DJNZ R3,DELAY2MS2 DJNZ R4,DELAY2MS1 RETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND第二章 仿真用Proteus7.8进行仿真1.仿真电路图2仿真结果第三章 调试1将实验室单片机仿真头装入电路板,接入电源和接地
17、,载入源程序执行,电路板上LED和数码管全亮并常亮,并未出现所要结果。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、黄灯5s;东西方向绿灯25s、黄灯
18、5s,南北方向红灯30s,如此循环显示,再次按键,交通灯全灭。第五章 心得体会与建议这次单片机课程设计主要体验了画图、编程、调试等过程,对单片机的知识有了更深的掌握。首先是从电路板绘制电路图的体验,从电路板观察出芯片和接线,绘制出大致的电路图。经自学Proteus7.8后,绘制仿真电路图,跟电路板上电路基本相同。接下来就是程序的编写,根据要求画出程序流程图,编写子程序模块,最后连接成完整的无编译错误的程序。将程序装入Proteus仿真,得到结果。经过这一过程,基本掌握了Proteus单片机仿真的步骤,又掌握了一种电路设计的手段。 附录:元器件清单1. 电阻R1-R3, R5-R7, R9-R11, R13-R15, R25 1kR17-R24 470R26 5kRN1 5122. 电容C1, C2 15pF 无极性电容CN1 100nF 无极性电容C3 10F 电解电容3. 芯片AT89C5174LS245两片排阻4片4. 石英振荡器一个 16MHz5. LED红色、绿色、黄色各4个6. 数码管8个7. 按键一个
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100