范文一:单片机交通灯
河南理工大学
计算机科学与技术学院
课程设计报告
2009— 2010学年第 一 学期
课程名称:单片机原理及应用仿真 设计题目:交通灯计时器研究与设计 学生姓名:彭婷婷 学 号: 320909010208 专业班级:计算机科学与技术计本09--2班 指导教师: 李泉溪
2010年 1 月 2 日
第 1 页 共 12 页
1.1交通灯管理历史与现状 .................................................................................. 1 1.2课程设计的目的意义 ...................................................................................... 3 1.3 课程设计特点 ................................................................................................. 3 2. 硬件设计.............................................................................................................. 4 2.1电源电路 ......................................................................................................... 5 2.2主控制系统 ..................................................................................................... 5
P1口的P1.0是用于K1,它可以控制东西没有车时,南北放行;P1.1是用于
K2,当南北没有车时,手动去控制,东西放行。P1.2,P1.3,P1.4分别是控
制南北红黄绿三个灯的明亮。P1.5,P1.6,P1.7分别是控制东西红黄绿三个
灯的明亮。2.3时间及灯模块 .......................................................................... 8 2.4键盘 ............................................................................................................... 10 3 软件设计 ............................................................................................................. 11 3.1 系统分析 ........................................................................................................ 11 3.2程序设计 ........................................................................................................ 11 4 仿真及调试 ......................................................................................................... 12 4.2调试 ............................................................................................................... 13 5 课程设计体会 ..................................................................................................... 14 参考文献 ................................................................................................................ 14
第 1 页 共 12 页
1.1交通灯管理历史与现状
一个城市交通的发达,标志着城市的发达,因此交通的管理则显得越来越重
要。对于复杂的城市交通系统,为了确保安全,保证正常的交通秩序,十字路口
的信号控制必需按照一定的规律变化,以便于车辆行人能顺利地通过十字路口。
正常情况下,十字路口的红绿灯应交替变换,考虑紧急情况下,如有救护车或警
车到来时,应优先让其通过。
交通灯在安全行车过程中起着十分重要的作用, 现在交通灯一般设在十字路口, 在醒目位置用红、绿、黄三种颜色的指示灯, 加上一个倒计时的显示计时器来控制行车, 对于一般情况下的安全行车、车辆分流发挥着作用, 但根据实际行车过程中出现的情况, 主要有如下几个缺点: 1两车道让车轮流放行时间相同且固定, 在十字路口, 经常一个车道为主干道,车辆较多, 放行时间应该长些; 另一车道为副干道, 车辆较少,放行时间短些。2 没有考虑紧急车通过时, 两车道应采取的措施, 譬如, 有消防车通过执行紧急任务时, 两车道的车都应停止, 让紧急车通过。根据行车过程中出现的实际情况, 如何全面有效地利用交通灯指示交通
情况, 我尝试了用AT89s52单片机来控制交通灯, 在软、硬件方面采取一些改进措施, 使交通灯在控制中灵活而有效。
1.2课程设计的目的意义
(1)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机
课程的应用进一步的了解。
(2)掌握定时器、外部中断的设置和编程原理设计简单的计时器系统,并同
时可以用数码管显示,在现实生活中应用广泛,具有现实意义。。
(3)能够将单片机软硬件结合起来,对程序进行编辑,校验。 1.3 课程设计特点
(1)设计一个十字路口的交通灯控制电路,要求南北方向(主干道)车道和
东西方向(支干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间
都设为30秒、支干道每次通行间隔为20秒,时间可设置修改。
(2)在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道。
(3)黄灯亮时,要求每秒闪亮一次。
第 1 页 共 12 页
(4)东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时
间都用显示器进行显示(采用计时的方法)。
(5)一道有车而另一道无车(实验时用开关 K1和 K2 控制),交通灯控制系统能立即让有车道放行,当按下k1时,南北方向放行;当按下k2时,东西方向放行;电路板上设有RST复位键,可以随时对电路进行复位操作。
(6)有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B道均为红灯,紧急车由K2 开关模拟。
(1)假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最
后循环至状态1。
(2)双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,
绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。
采用AT89s52单片机作为控制器。
2.
整套电路系统由控制系统模块、通行灯输出控制显示模块、时间显示模块、
时间显示模块和自动特种车辆控制模块等组成。
第 1 页 共 12 页
2.1电源电路
电路是采用两路供电,如下图所示:一路是USB,可以通过电脑直接供电USB接口提供5V和200ma电流,Imax=500mA,对整个电路来说够用。
另一路是7805.由于整个系统采
D2
用的电源电压需+5V电压,
所以采用不可调的3端稳 IN4001
U4压器件,用常用的lm7850 MC7805TJ2J137805+5V2就可以满足系统电源的 12VCCVin12GND1VCC21要求。LM7850三端集成 C1C2GNDUSB30.03u0.1uCON2稳压电源内部由准电压 CON3
回路、恒流源、过流保
J3护、过压保护和保护回路等84+3D2部分组成具有低功耗,高效率,2D11-波纹系数小,输出电压稳定等优
USB点。
2.2主控制系统
单片机是采用ATMEL公司的AT89s52,AT89S52是一种低功耗、高性能CMOS8位
第 1 页 共 12 页
微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有
效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
芯片如下所示:
P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和
数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。在 flash编程时,P0口也用来接收指令字节;在程序校验时,输出
指令字节。程序校验时,需要外部上拉电阻。
P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此
时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原
因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。
第 1 页 共 12 页
在flash编程和校验时,P1口接收低8位地址字节。 引脚号 第二功能
P1.0T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5MOSI(在系统编程用)
P1.6 MISO(在系统编程用)
P1.7 SCK(在系统编程用)
P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此
时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原
因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时
可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,
将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所
示。在flash编程和校验时,P3口也接收一些控制信号。
对于单片机的在电路中的接法如图
第 1 页 共 12 页
J6P00P001P012P023P034P045P056P067P07P078
P0
VCCK1U1J7P10139P00P10P10P10P001K2P11238P01P11P11P012P12337P02P12P12P023P13436P03P13P13P034P14535P04P14P14P045P15634P05P15P15P056P16733P06P16P16P067P17832P07P17P17P17P078
INT11321P20P1INT1P33P20INT01222P21INT0P32P2123P22P22T11524P23T1P35P23T01425P24T0P34P24VCC26P25P25J93127P26EA/VPP26P30RXD28P271P27TXDX1192X1INT0X2183X2INT14T0RESET910RXD5RESETP30RXDT111TXDJ86P31TXDWRRD1730CLKP20P207RDP37ALE/P1P37RDWR1629PSENP218WRP36PSEN2P223P3AT89S52P234P245P256P267P27P278
P2
单片机的P0口用于控制是数码管的位码,P0.6,P0.7是南北数码管的位码,P0.0,P0.1是东西的位码。
P2口是控制南北路口数码管的段码,P3口是控制东西路口数码管的段码。 P1口的P1.0是用于K1,它可以控制东西没有车时,南北放行;P1.1是用于K2,当南北没有车时,手动去控制,东西放行。P1.2,P1.3,P1.4分别是控制南北红黄绿三个灯的明亮。P1.5,P1.6,P1.7分别是控制东西红黄绿三个灯的明亮。
2.3
(1)LED显示器是由发光二极管显示字段构成的显示器件,也可称为数码
管,8个发光二极管的阴极都连在一起的,称为共阴极LED显示器, 当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合从而显示各种字符。
(2)接口电路是把所有显示器的8个笔划段a~dp同名端并联在起,而每一个显示器的公共极COM是各自独立地受I/O线控制。 动态显示就是一位一位的轮流的轮流点亮显示器的各个位,虽然在每一时刻只有一位显示被点亮,由于人
第 1 页 共 12 页
眼的视觉暂留的特性(约1ms)和发光二极管的熄灭时的辉度,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显
示数据,不会有闪烁感。我们可以看到的是多个字符同进显示。显示亮度与导通
的电流有关,也与点亮时间的长短有关,调整电流的大小和时间参数,就可以实
现亮度较高稳定的显示。
(3)CPU向字段输出口送出字形码时,所有显示器由于同名端并连接收到相
同的字形码,但究竟是哪个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以就可以自行决定何时显示哪一位了。而所谓动态扫描是指采用分时的方
法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。
数码管是采用共阴极的,发光二极管分别是红,绿,黄,它们的接法如下图,
P1.2,P1.3,P1.4分别是控制南北红黄绿三个灯的明亮。P1.5,P1.6,P1.7分
别是控制东西红黄绿三个灯的明亮。二极管的工作电流是
I=(5-2)/470=6MA
因为工作电压是5v,二极管上的压降是2V,用的是470的限流电阻,所以得到的是这个值。
P2接南北数码管的段码,P3接东西数码管的段码,它们的每个I/O口驱动两个数码管是可以的。 9aa8fbfbdpg7ggf6ecece5ddpddpd4GNDc3b2VCCa110P01led4P00R20R19R18led3470470470WRRDP01T1P00T0WRRDT1INT1P20T0P21INT0P20TXDP14D4P22P21RXD1D10D8aeP23fP222REDYellowGREENbP24dP23INT1P143gacP25TXDP24INT04cdbP26P25RXD5dpeefP27P266P13fdP13P277gagP068cdpbP06P07P12dpP079led1P12GND10led2
VCCP15VCCD3D9D7D5REDYellowGREEND6R11R16P15GREEND11470470D12P16R12R14GREENP16YellowD1470470P17D2R13R15YellowP17R21R22R17470470RED470470470RED
VCC
第 1 页 共 12 页
2.4键盘
本次设计中我们采用的是独立键盘,共设有2个按键,分别是K1,K2。K1按键的作用是在东西没有车时,用手动去控制按键,南北放行;k2按键的作用是在南北没有车时,用手动去控制按键,使东西方向放行。
接法是:它们一端分别接P1.0和P1.1口,另一端公共接地。当按下相应键
盘时,其对应P1口输出高电平,此时按键就起作用了。如:当按下k1键时,P1.0就输出高电平,此时实现的功能就是人为的去控制南北方向通行,东西方向亮红
灯禁止通行。
在电路板中设置有RST复位键,可以对正在运行的任何程序进行复位操作。
第 1 页 共 12 页
3 3.1 系统分析
3.2程序设计
道口交通控制系统程序主要分为以下几个模块:初始化程序、主程序、键盘
显示和延时。
第 1 页 共 12 页
(1)初始化程序
初始化程序主要完成的是对显示初值以及定时器初值。
(2) 主程序
主程序要负责总体程序管理功能,实现人机交换设定。由于采用动态扫描方
式显示时间,因此主程序大部分时间要调用扫描显示程序。键盘也加在主程序中
了。
(3) 延时服务程序
主要是在整个电路中,在动态显示时间得用延时来保证数码管亮足够的时
间。
(4)显示
主要是对数码管的显示,让人们能更准确的看清时间,可以什么时间通过。
4
从仿真图中可以看到,数码管一个显示的是30另一个是25,可是却不能看到它的全貌,这就是软件和硬件有的不同,在硬件上能实现的,在软件上却稍有
误差。
(1)仿真是采用的PROTEUS软件仿真,由于软件中没有AT89s52,就用了AT89c52来代替,能达到一样的效果,
(2)在软件上仿真是比真正的实验板上有好多好用的地方,它可以在不使用
元件的情况下,模拟的完成所要的任务,可是软件仿真和真正的硬件还是有一定
的差别的。
(3)我们先在PROTEUS上把所要该接的元件都接好,然后试一下接法是否正
确,先测数码管:给P2,P3全为1让P1.0,P1.1,P1.5,P1.6全为0看是否能显示出来一个有点的8。如果正常,证明接法正确。测发光二极管给它个0时是否能亮。前面的测试正常,说明电路现在可以用。
(4)通过KEIL和PROTEUS配合使用来完成这次仿真,先用KEIL写程序,编译之后,打开PROTEUS中的电路,双击AT89C52可以把程序烧写到里面,就这样来观察它的效果。
4.1仿真图
第 1 页 共 12 页
C2C1C31npf1nFpfX11nFufU1R9CRYSTAL1939XTAL1P0.0/AD038P0.1/AD13710kP0.2/AD21836XTAL2P0.3/AD335P0.4/AD434P0.5/AD533P0.6/AD6932RSTP0.7/AD721P2.0/A822P2.1/A923P2.2/A102924PSENP2.3/A113025ALEP2.4/A123126EAP2.5/A1327R1R4R6P2.6/A1428P2.7/A15470R470R470R110P1.0/T2P3.0/RXD211P1.1/T2EXP3.1/TXD312P1.2P3.2/INT0413P1.3P3.3/INT1514P1.4P3.4/T0615P1.5P3.5/T1716P1.6P3.6/WRD1D4D6817P1.7P3.7/RDLED-REDLED-BLUELED-YELLOW
AT89C52
D2D3D5LED-REDLED-BLUELED-YELLOW
D13D14R2R3R5R11R12470R470R470R470R470RLED-GREENLED-GREEND11D12R13R10470R470RLED-GREENLED-YELLOWD7D8R7R8470R470RLED-REDLED-RED
C2C1C31npf1nFpfX11nFufU1R9CRYSTAL1939XTAL1P0.0/AD038P0.1/AD13710kP0.2/AD21836XTAL2P0.3/AD335P0.4/AD434P0.5/AD533P0.6/AD6932RSTP0.7/AD721P2.0/A822P2.1/A923P2.2/A102924PSENP2.3/A113025ALEP2.4/A123126EAP2.5/A1327P2.6/A14R1R4R628P2.7/A15470R470R470R110P1.0/T2P3.0/RXD211P1.1/T2EXP3.1/TXD312P1.2P3.2/INT0413P1.3P3.3/INT1514P1.4P3.4/T0615P1.5P3.5/T1716P1.6P3.6/WRD1D4D6817P1.7P3.7/RDLED-REDLED-BLUELED-YELLOW
AT89C52
D2D3D5LED-REDLED-BLUELED-YELLOW
D13D14R2R3R5R11R12470R470R470R470R470RLED-GREENLED-GREEND11D12R13R10470R470RLED-GREENLED-YELLOWD7D8R7R8470R470RLED-REDLED-RED4.2调试
系统做好后,进行系统的完整调试。主要任务是检验实现的功能及其效果并校
正数值。根据实测数据,逐步校正数据,使测量结果更准确。单片机软件先在最
第 1 页 共 12 页
小系统板上调试,确保工作正常之后,再与硬件系统联调。 在软件调试无误后进行程序的下载,把最终的程序烧入单片机,至此电路板已经完工。
5
本学期通过对单片机的学习,自己初步对单片机的开发设计有了更多的爱好
和了解,并掌握了一定的设计思想和硬件安装分析调试技巧。
本次设计中做的是交通灯控制系统,系统是以单片机AT89S52芯片为核心部件,实现了能根据实际车流量通过AT89S52芯片设置红、绿灯点亮时间的功能。
另外本次课程设计不但进行了程序的编写调试和设计报告的整理,更重要的是,
很好的培养和锻炼了我的动手能力,提高了分析软硬件之间的差别和联系的技
巧。这不仅对我以后的学习有帮助,还可以为以后的工作打下一定的基础。此次
软硬结合的设计要求,充分调动了我的积极性,对硬件的设计是最难忘的;调试
硬件对设计者来说是很有挑战意义,更能考验设计者的耐心与毅力。当然硬件需
要软件相结合,改变硬件后只要稍改程序就可以实现相同的功能要求。更可以通
过本次的设计把设计思想应用到更大的系统控制设计中。软硬结合使我真正认识
到了理论与实际的区别,这在以后的工作和学习中给予我更好的提示,注重理论
与实际相结合,注重分析选择解决问题的思路和方法,注重设计方案的分析选择
和设计思想的分析选择。总之,本次设计让我受益匪浅。
最后,衷心感谢在课程设计期间老师对我们的耐心指导,以及所有帮助过我
的同学们。谢谢你们!
[1] 李广弟.单片机基础.北京:北京航空航天大学出版社
[2] 何立民.单片机应用技术大全.北京:北京航空航天大学出版社
[3] 张毅刚. 单片机原理及接口技术.哈尔滨:哈尔滨工业大学出版社
第 1 页 共 12 页
范文二:单片机交通灯
《单片机技术》课程设计说明书
交通灯
院 、 部: 电气与信息工程学院
学生姓名: 向宇
指导教师: 凌云 职称 讲师
专 业: 电子信息工程
班 级: 电子1201班
完成时间: 2015年1月4日
湖南工学院
课程设计任务书
课 程: 单片机技术
课程设计题目: 数字电子钟
数字频率计
数字电压表
交通灯
抢答器
密码锁
波形发生器
数字温度计
计算器
数字式秒表
适 用 班 级: 电子1201
时 间: 2014~2015学年第一学期
指 导 教 师: 凌 云
《单片机技术》课程设计任务书
一、设计题目:数字电子钟、数字频率计、数字电压表、交通灯、抢答器、密码
锁、波形发生器、数字温度计、计算器、数字式秒表。
二、适用班级:电子1201
三、指导教师:凌云
四、设计目的与任务:
学生通过理论设计和实物制作解决相应的实际问题,巩固和运用在《单片机技术》中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。
五、设计内容与要求
设计内容
1、数字电子钟
设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“P.”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。
2、数字频率计
设计一个能够测量周期性矩形波信号的频率、周期、脉宽、占空比的频率计。该频率计上电或按键复位后能自动显示系统提示符“P.”, 进入测量准备状态。按频率测量键则测量频率;按周期测量键则测量周期;按脉宽测量键则测量脉宽;按占空比测量键则测量占空比。
3、数字电压表
设计一个能够测量直流电压的数字电压表。测量电压范围0~5V,测量精度小数点后两位。该电压表上电或按键复位后能自动显示系统提示符“P.”, 进入测量准备状态,按测量开始键则开始测量,并将测量值显示在显示器上,按测量结束键则自动返回“P.”状态。
4、交通灯
设计一个具有特定功能的十字路口交通灯。该交通灯上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。按开始键则开始工作,按结束键则返回“P.”状态。要求甲车道和乙车道两条交叉道路上的车辆交替运行,甲车道为主车道,每次通车时间为60秒,乙车道为次车道,每次通车时间为30秒,
要求黄灯亮3秒,并且1秒闪烁一次。有应急车辆出现时,红灯全亮,应急车辆通车时间10秒,同时禁止其他车辆通过。
5、抢答器
设计一个具有特定功能的抢答器。该抢答器上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。主持人按下开始按钮后,抢答开始并限定时间30S;10S内无人抢答,蜂鸣器发出音响;主持人按下开始按钮之前有人按下抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,其它按钮不起作用;正常抢答,显示器显示台号,蜂鸣器发出音响,其它抢答按钮无效;正常抢答下,从按下抢答按钮开始30S内,答完按钮没按下,则作超时处理,超时处理时,违规指示灯亮,显示器显示违规台号。蜂鸣器发出音响;各台数字显示的消除,蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位按钮。
6、密码锁
设计一个具有特定功能的密码锁。该密码锁上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。该密码锁具有系统原始密码888888,用户可以设定并存储用户密码,密码输入时应处于保密显示状态,密码输入正确时应显示密码输入正确提示信息,否则,显示密码输入错误提示信息。
7、波形发生器
设计一个具有特定功能的波形发生器。该波形发生器上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。该波形发生器可以分别产生幅值0~5V、频率100Hz~100KHz范围内的三角波、锯齿波、方波、梯形波和正弦波。
8、数字温度计
设计一个具有特定功能的数字温度计。该数字温度计上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。测量温度范围0℃~99℃,测量精度小数点后两位,可以通过开始和结束键控制数字温度计的工作状态。
9、计算器
设计一个具有特定功能的计算器。该计算器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。能实现(1)基本的加、减、乘、除、平方、开方;(2)三角函数运算;(3)十进制、十六进制转换运算;(4)其他功能。
10、数字式秒表
设计一个具有特定功能的数字式秒表。该数字式秒表上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。该数字式秒表应具有开始、暂停、连续、清零和停止功能。
设计要求
1、以上课题可以任选其一或多选,学生也可以自拟课题;
2、编程语言:汇编或C51;
3、计算机打印《单片机技术》课程设计说明书一份;
4、设计时间:一周;
5、实物制作;
6、人员分组:一人一组一实物。
六、《单片机技术》课程设计说明书正文主要内容
参照“《单片机技术》课程设计说明书正文主要内容”文件。
七、《单片机技术》课程设计说明书书写规范格式
参照“《单片机技术》课程设计说明书书写规范格式”文件。
八、参考资料
1、马忠梅,单片机的C语言Windows环境编程宝典[M], 北京:北京航空航天大学出版社,2003.6;
2、李光飞,单片机C程序设计指导[M],北京:北京航空航天大学出版社,2003.01 ;
3、李光飞,单片机课程设计实例指导[M],北京:北京航空航天大学出版社,2004.9。
电气自动化教研室
2014年9月10日
摘 要
本次课程设计做交通灯,交通灯在我们日常工作生活张红的重要性大家都非常清楚。他它对于我们的正常通行以及紧急情况下的处理非常有用。本系统采用AT89S52单片机为中心器件来设计交通灯。
利用单片机最小系统实现交通灯南北、东西的循环,南北为主干道通行时间长,东西为次干道通行时间较短,考虑到紧急事件的发生设置10秒紧急通道。由于AT89S52单片机最小系统设置有8个流水灯,因此南北、东西各设置红、绿、黄三个灯来实现通行功能。考虑到紧急通行提醒所以设置一个提醒灯,用来实现交通灯运行功能
单片机最小系统使用AT89S52实现,将对应汇编程序拷入AT89S52中运行,P0口、P2口控制数码管显示,P3口控制流水灯,P2口控制按键开关。
关键词:交通灯;AT89S52;单片机最小系统;汇编
目 录
1 理论分析及方案 ................................................... 1
1.1 功能要求说明 ............................................... 1
1.2 设计方案选择 ............................................... 1
2 硬件设计介绍 ..................................................... 2
2.1 时钟电路 ................................................... 2
2.2 复位电路 ................................................... 2
2.3 数码管显示模块 ............................................. 2
2.4 按键电路 ................................................... 2
2.5 指示灯电路 ................................................. 3
2.6 整体电路 ................................................... 3
3 软件程序设置 ..................................................... 4
3.1 单片机系统端口连接及工作方式 ............................... 4
3.2 程序流程图 ................................................. 4
4 实物测试 ......................................................... 7
4.1 实物调试说明 ............................................... 7
4.1.1 实物运行结果 .......................................... 7
4.1.2 调试结果 .............................................. 8
4.2 误差分析 .................................................. 10
结束语 ............................................................. 11
致 谢 ............................................................. 12
参考文献 ........................................................... 13
附 录 ............................................................. 15
附 录A:源程序清单 ............................................. 15
附 录B:实物图 ................................................. 23
附 录C:电路PCB图 ............................................. 24
附 录D:原理图 ................................................. 25
附 录E:元器件及材料清单 ....................................... 26
1 理论分析及方案
1.1 功能要求说明
设计一个具有特定功能的十字路口交通灯。该交通灯上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。按开始键则开始工作,按结束键则返回“P.”状态。要求甲车道和乙车道两条交叉道路上的车辆交替运行,甲车道为主车道,每次通车时间为60秒,乙车道为次车道,每次通车时间为30秒,要求黄灯亮3秒,并且1秒闪烁一次。有应急车辆出现时,红灯全亮,应急车辆通车时间10秒,同时禁止其他车辆通过。
1.2 设计方案选择
由于我想基于我已有的单片机最小系统的板子做此次设计,而已有的这块板子上只有八个灯,所以我只选用其中七个灯来完成此次设计。由于东和西两个方向上的灯的显示情况是一样的,南和北两个方向上灯的显示情况是一样的,所以我用其中三个相邻的灯分别表示南北方向上的红、绿、黄灯;另外三个相邻的灯分别表示东西方向上的红、绿、黄灯,另一个灯为紧急通道指示灯。根据这种思想进行接下来的程序设计。
2 硬件设计介绍
2.1 时钟电路
时钟电路由一个晶体振荡器和两个30pF的瓷片电容组成。
钟电路用于产生单片机工作所需要的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地作。
单片机内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。
电容器C3和C4的作用是稳定频率和快速起振,电容值的范围在50pF~30pF,典型值为30pF。晶振的频率通常选择两种6MHz和12MHz。只要在单片机的XTAL1和XTAL2引脚外接晶体振荡器就构成了自激振荡器并在单片机内部产生时钟脉冲信号。
2.2 复位电路
复位电路是使单片机的CPU或系统中的其他部件处于某一确定的初始状态,并从这上状态开始工作,除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位电路以重新启动。本电路由一个电阻和一个电容组成上电复位。
上电复位要求接通电源后,单片机自动实现复位操作。上电瞬间RET引脚获得高电平,随着电容的充电,RET引脚的高电平将逐渐下降。RET引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。
2.3 数码管显示模块
数码管的八个位控口接在AT89S52单片机的P2口线上,段控制线接在P0口线上,由于数码管的本身显示亮度不够,所以一般都会在其位控和段控口前加上一定的驱动电路,本次设计中采用74HC573作为驱动.本次采用的数码管为共阳极。
2.4 按键电路
按键电路的设计就是在一端公共接地,另一端通过上拉电阻接到P1口,当有按键按下,相应的口就会变成低电平,产生一个下降沿各键功能单一,互不影响,操作起来十分的清晰与方便,因为I/O口内部有上拉电阻,所以外接上拉电阻省略。
2.5 指示灯电路
此电路起交通指示作用,交通指示的实现也是次设计的根本目的。此电路是就是模拟的交通灯,发光二极管接在P3口上,采用静态显示方式点亮二极管。二极管的阳极共同连在电源VCC(VDD接到了VCC)上,只要二极管对应的P3口线为低电平,二极管即点亮。
2.6 整体电路
除了上述电路外,单片机还要通过下载接口从PC机中下载程序,所以还需要一个下载接口电路。原理图见附录D。
3 软件程序设置
3.1 单片机系统端口连接及工作方式
P3口为二极管的控制端, P0口用作地址/数据总线,P2口用作数据总线, P1.0、P1.1、P1.2口线作为键盘输入端。
当是S1按下,数码管将开始主干道60秒,并且东西南北相应的灯亮起。当S2按下,将数码管将开始次干道30秒,并且发光二极管全部熄灭。当S3按下,数码管将开始10秒倒计时,紧急灯亮,并且东南西北所有的红灯都亮起。程序见附录A。
3.2 程序流程图
设置主程序,先堆栈初始化,通过判断按键是否按下,当未按下启动键程序显示“P”,若有键按下这运行按键相关程序,执行交通灯相关功能,主程序框图1。
图1 主程序框图
设置按键判断程序,通过按下按键设置10ms延迟避免误按,之后若按键仍处于按下状态保持键值,松开按键后执行行按键相关功能,程序空突如图2。
显示程序,程序开始后段控码置初值,显示个位延迟10ms显示十位延迟10ms,程序框图如图3。
图2 按键程序框图
图3 显示程序框图
设置延时程序,利用定时器初始化通过判断延时时间1s执行程序,程序框图如图4。
设置交通灯运行程序,汇编设置交通灯通行时间,设置好相应干道交通灯亮灭程序调用显示程序设置延时20ms,每过1s显示程序运行一次显示程序读数,当运行时间到了,执行下一个通行时间及相对应的交通灯亮灭,程序框图如图5。
图4 延时程序框图
图5 交通灯运行程序
4 实物测试
4.1 实物调试说明
4.1.1 实物运行结果
(1)当交通灯上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
(2)当按下启动按钮S1并释放后,数码管显示将会从“60始倒计时,每隔一秒减1,此时南北方向开始一直亮绿灯,东西方向一直亮红灯,直到显示为“00”时,数码管将会从“03开始倒计时,每隔一秒减1,此时南北方向没隔一秒黄灯就闪烁一次,东西方向亮一直红灯,直到显示为“00”时,数码管将会从“30始倒计时,此时南北方向一直亮红灯,东西方向一直亮绿灯,直到显示为“00”时,数码管又将从“03开始倒计时,此时南北方向一直亮红灯,东西方向每隔一秒黄灯就闪烁一次;当没有其他键按下时,交通灯将这样一直循环下去。 (3)按下S2并释放后,数码管显示将会从“30”始倒计时,每隔一秒减1,此时东西方向开始一直亮绿灯,南北方向一直亮红灯,直到显示为“00”时,数码管将会从“03”开始倒计时,每隔一秒减1,此时东西方向每隔一秒黄灯就闪烁一次,南北方向亮一直红灯,直到显示为“00”时,执行S1内容。
(4)按下紧急键S3并释放后,数码管将显示“10”,并且每隔一秒就减1,紧急灯亮,东西南北方向全部红灯亮,当显示“00”时,就跳转到交通灯程序执行。
4.1.2 调试结果
按下电源开关,电源灯亮,数码管显示“P”准备执行功能。如下图6。
图6 按下电源
按下S1,数码管显示将会从“60始倒计时,实物已由“60”递减到“43”,此时南北绿灯亮,东西红灯亮。如图7。
图7 按下S1
按下S2,数码管显示将会从“30”始倒计时,每隔一秒减1,实物已由“30”递减至“17”,此时南北红灯亮,东西绿灯亮。如图8。
图8 按下S2
按下紧急键S3,数码管将显示“10”,并且每隔一秒就减1,实物已经递减为“5”,此时紧急灯亮,东西南北方向全部红灯亮。如图9。
图9 按下S3
4.2 误差分析
本次课程设计的误差就在于显示时间,我采用的是调用延时程序来让显示器上数字共显示一秒钟,而循环一次的时间并不仅仅只是2次调用延时程序的时间,其间CPU还执行其它指令,例如说将缓存区的内容送给累加器A、查表指令、将段控码送给P2口等等,因为它们都是微秒级的,而延时程序是毫秒级的,因此在计算的过程中就可以省略了,每次循环除两次调用延时程序外,所用时间为34微秒,一秒钟共循环了50次,因此在显示器上只需要显示1秒数字,事实上多显示了1700微秒,误差率=0.17%
通过这次单片机课程设计,对单片机产生了浓厚的兴趣,并利用自己的课余时间学习有关单片机的基本知识,将理论知识应用于实际。此次在老师的指导下,选择运用单片机设计了一个交通灯控制系统。
从给定电路图的分析到程序设计以及系统调试,初步掌握了运用单片机系统设计特定功能的设计步骤,也对单片机有了更深的体会。了解和掌握了一些简单的编程思想,对单片机各管脚的功能,I/O口的使用条件都有了更深的理解。
在设计过程中,画电路图制PCB板、打孔、溶铜、焊接等,真的经历了许多困难,却积累了很多宝贵的经验,在调试时出现异常,不过这些都是经常性错误,经过调试修改都一一解决,程序顺利完成,并实现了其功能。
通过本次课程设计,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力。非常感谢我的指导老师凌云老师,凌云老师非常耐心的指导我解决在设计中遇到的各种问题,而且引导我们透过现象去发现问题的本质。通过本次课程设计,收获了很多。最后还要感谢其他所有帮助过我的同学,因为有了他们的帮助,我才能更好的完成任务。没有以上的每一个人的帮助,我的单片机课程设计很难顺利的完成,在此,我对于在我的设计和制作的过程中给予我帮助的每一个人一并表示感谢。祝老师工作顺利、身体健康、家庭幸福,祝同学们学业有成,心想事成。
参考文献
[1]李广第,朱月秀,冷祖祁.单片机基础[M].北京:北京航空航天大学出版社, 2007.6
Li Guangdi, Zhu Yuexiu, Leng Zuqi. Single chip microcomputer based [M]. Beijing: Beijing Aerospace University Press,2007.6(in Chinese)
[2]马忠梅,籍顺心,张凯,马岩.单片机的C语言应用程序设计(第四版)[M]. 北京:北京航空航天大学出版社,2007.1
Ma Zhongmei,Ji Shunxin,Zhang Kai,Ma Kai.SCM C language program design(The Fourth Edition)[M].Beijing:Beijing Aerospace University Press, 2007.1(in Chinese)
[3]王幸之等.单片机应用系统抗干扰技术[M].北京:北京航空航天大学出版社, 1999
Wang Xingzhi etc.microcomputer application system interference echnology [M].Beijing:Beijing Aerospace University Press, 1999(in Chinese)
[4]谢自美.电子线路设计?实验?测试(第三版)[M].武汉:华中科技大学出版社,2006 Xie Zimei. Electronic circuit design ? experimental ? test (The Third Edition)[M]. Wuhan: Huazhong University of Science and Technology press, 2006(in Chinese) [5]李杏春等.8090单片机原理及实用接口技术[M].北京:北京航空航天大学出版 社,1996
Li Xingchun etc .8090 SCM Theory and practical interface technology[M].Beijing: Beijing Aerospace University Press, 1996(in Chinese)
[6]曹巧媛.单片机原理及应用[M],北京:电子工业出版社,1997.7.
Cao Qiaoyuan.Microcontroller Theory and Applications [M].Beijing: Electronic Industry Press, 1997.7(in Chinese)
[7]张洪润,兰清华.单片机应用技术教程[M].北京:清华大学出版社,1997.11. Zhang Hongrun ,Lan Qinghua, MCU application technology tutorial [M]. Beijing: Tsinghua University Press, 1997.11(in Chinese)
[8]郭天祥.51单片机C语言教程[M].北京:电子工业出版社,2009
Guo Tianxiang.51singlechip C language tutorial[M].Beijing:Electronic Industry Press,2009(in Chinese)
[9]张齐.单片机应用系统设计技术[M].北京;电子工业出版社.2004
Zhang Qi.Single chip microcomputer application system design technology [M]. Electronic Industry Press. 2004(in Chinese)
[10]赵亮.单片机C语言编程与实例[M].北京:人民邮电出版社.2005
Zhao Liang.Singlechip C language programming and instance [M].People's Posts and Telecommunications Press.2005(in Chinese)
[11]徐英琪.单片机程序设计实例[M].北京:清华大学出版社.2004
Xu Yingqi.Microcontroller programming examples.Bingjin:Tsinghua University Press.2004(in Chinese)
[12]李全利.单片机原理及应用(C51编程)[M].北京:高等教育出版社,2012. Li Quanli. Principle and application of single chip microcomputer (C51 programming)[M].Beijing: Higher Education Press,2012
[13]罗克露,徐洁.微型机原理与应用(第二板)[M].北京:电子工业出版社,2004. Luo Kelu, Xu Jie. Principle and application of microcomputer (The Second Edition)[M]. Beijing:Electronic Industry Press, 2004
[14]李华.MCS-51系列单片机实用接口技术[M].北京:北京航天大学出版社, 1993.
Li Hua.MCS-51 series single chip interface technology [M]. Beijing: Beijing Aerospace University Press, 1993
[15]何立民.单片机应用技术选编〈1〉.北京:北京航天大学出版社,1993. He Limin. Selected singlechip technology '1'. Beijing: Beijing Aerospace University Press, 1993
[16]李朝青.单片机原理及接口技术[M].北京:北京航天大学出版社,1998. Li Zhaoqing. The single chip microcomputer principle and interface technology [M]. Beijing: Beijing Aerospace University Press,1998 [17]胡汗才.单片机原理及系统设计[P]. 北京:清华大学出版社,2002. Hu Hancai. Design of Microcomputer Principle and system [P]. Beijing: Tsinghua University press, 2002
[18]倪继烈.单片机原理及应用教程[M].成都:电子科技大学出版社,2004. Ni Jilie. Principle and application of singlechip tutorial [M].Chengdu: University of Electronic Science and Technology Press, 2004
[19]曹丙霞,赵艳华.PROTEL 99SE原理图与PCB设计.电子工业出版社,2007. Cao Bingxia, Zhao Yanhua.PROTEL 99SE schematic and PCB design. Publishing House of electronics industry, 2007
附 录
附 录A:源程序清单
ORG
0000H MAIN 0003H WBZD SP EA EX0 IT0 40H 41H P3.0 P3.3 P3.4 P3.5 P3.6 P3.7 DD
;关闭所有灯 ;判有无按键按下
,#17 ,#16
;显示P.
,#70H
LJMP ORG LJMP SETB SETB SETB MOV MOV SETB SETB SETB SETB SETB SETB LJMP
MAIN: MOV
DD: LCALL KEY
;*********甲车道通60s********************************************** JIA: CLR
CLR SETB SETB SETB SETB MOV
P3.3 ;甲车道绿灯亮 P3.5 P3.4
P3.0 P3.7 P3.6 40H 41H R4 41H 40H
;关闭其他灯 ;初始化60S ;延时1秒并显示 ;十位减
,#0 ,#6
,#05
,#9 ;个位显示9
;乙车道红灯亮
MOV LCALL
DELAY
MOV MOV
LOOP1: DEC
LCALL LCALL MOV CJNE
DELAY 40H A A R4 40H 41H 40H A A P3.4 P3.5 P3.0 P3.3 P3.7 P3.6 40H 41H DLY P3.4
;显示500MS 并延时
,#3 ,#0
;初始化3S
;显示500MS 并延时
,40H ,#04H
,DD1
;甲车道黄灯亮 ;乙车道红灯亮
;个位减
DELAY
,40H ,#00H ,LOOP1 ,#9 ,#0
,LOOP2
LOOP2: DEC
LOOP3: DJNZ FF: MOV
MOV
LCALL DELAY LCALL DELAY MOV CJNE CLR CLR SETB SETB SETB MOV MOV LCALL SETB
DD1: DEC
;*************黄灯闪烁3s******************************************** HD1:
40H P3.4
;显示500MS 并延时
P3.4 DLY A A
;显示500MS 并延时
,40H ,#01H
,LOOP4
CLR SETB LCALL MOV CJNE
SETB
LCALL DLY
LOOP4: DEC
LCALL DLY
;********乙车道30s***********************************************
JI: CLR
CLR SETB SETB SETB MOV
P3.6 P3.0 P3.5 P3.3 P3.4 P3.7 40H 41H R3 41H 40H 40H A A R3 40H 41H 40H
;乙车道绿灯亮
;甲车道红灯亮
SETB MOV LCALL MOV LOOP5: DEC
MOV LCALL LCALL MOV CJNE
,#0
;关闭其他灯 ;初始化30S ;延时1秒并显示 ;十位减 ;个位显示9 ;个位减
,#3 ,40H
,#02 ,#9
DELAY
DELAY DELAY
LP1: DEC
,#00H ,LOOP5 ,#9 ,#0
,LP1 ;判断个位是否为0
LP2: DJNZ FF1: MOV
MOV
LCALL DQ: DEC
LCALL MOV CJNE CLR SETB SETB SETB MOV MOV
DELAY DELAY A A P3.7 P3.6 P3.5 P3.3
,40H ,#04H
,DQ
;乙车道黄灯亮
;*********黄灯闪3s************************************************* HD2:
CLR P3.0 SETB
;甲车道红灯亮
P3.4 40H 41H
,#3 ,#0
;初始化3S
LCALL SETB LCALL CLR LCALL SETB MOV CJNE LJMP MOV PUSH MOV LCALL LCALL DJNZ MOV POP RET
DLY P3.7 DLY 40H P3.7 DLY P3.7
;显示500MS 并延时
;显示500MS 并延时
LOOP6: DEC
;显示500MS 并延时 ;显示500MS 并延时
,LOOP6
LCALL DLY
A A JIA A ACC R0
,40H
,#01H
;******** 500ms延时************************************************** DLY:
,R0 ,#125
LL: DIR KEY
,LL ,A
R0 R0 ACC
;*********延时1s,显************************************************* DELAY: MOV
PUSH MOV
A ACC R0 DIR R0 R0 ACC
,LOO11 ,A
,#250
,R0
LOO11: LCALL
DJNZ MOV POP RET PUSH PUSH
LCALL KEY
;*******显示程序***************************************************** DIR:
DPH DPL
MOV MOV MOV MOV MOV MOV MOV MOVC MOV MOV POP POP POP RET MOV
DPTR P2 A P0 P0 P2 A A P0 P0 ACC DPL DPH
,#TAB ,#00000001B
,@A+DPTR ,A ,#0FFH ,#00000010B ,41H ,@A+DPTR
,A ;送十位数 ,#0FFH
;选中十位数码管
;送个位数 ;延时1ms
;选中个位数码管
,40H
MOVC A LCALL DL
LCALL DL
;***********延时1ms*********************************************** DL:
R7 R6 R5 R5 R6 R7
,#01H ,#8EH ,#02H ,$ ,DL0 ,DL1
DL1: MOV DL0: MOV
;**********应急车道10s********************************************* WBZD: PUSH
PUSH PUSH MOV MOV MOV
PSW ACC B B 45H 46H
,P3 ,40H ,41H
DJNZ DJNZ DJNZ RET
P3.0
;亮两个红灯
CLR CLR SETB SETB SETB SETB MOV MOV MOV MOV DEC LCALL MOV CJNE MOV SETB MOV MOV POP POP POP CLR RETI
P3.5 P3.4 P3.3 P3.7 P3.6 40H 41H 40H 41H 40H DELAY1 A A P3 P3.2 40H 41H B ACC PSW IE0
,#0
;关闭其他灯 ;初始化10秒 ;显示并延时1S ;显示09
,#1 ,#9 ,#0
LCALL DELAY1
LCALL DELAY1 ;显示并延时1S
BB:
;显示并延时1S ,BB
,40H ,#00H ,B ,45H ,46H
;********中断调的延1s********************************************** DELAY1: MOV
MOV
A R3
,R3
,#250
;调显示
PUSH ACC
LOOP51: LCALL DIR
LCALL DL LCALL DL DJNZ
R3
,LOOP51
MOV RET
R3
,A
;********键盘扫描**************************************************** KEYSAO: LCALL
JZ
LCALL LCALL LCALL JZ
MOV JZ
KEYCHULI EXIT DL DL EXIT B
,20H
KEYCHULI KEY110 DL DL KEYSF
,B
;去抖动
;去抖动
KEYCHULI
KEYSF: LCALL
LCALL LCALL LJMP
KEY110: MOV EXIT: RET
20H
PSW RS1 RS0
KEYCHULI:PUSH
CLR SETB
MOV P1
A A
, #0FFH
, P1 , #0FH , A
MOV A CPL ANL
CLR
MOV 20H CLR RS0
RS1
POP PSW RET
;*********按键功能判断********************************************** KEY:
LCALL
DIR A,
;调显示子程序
;调键盘扫描子程序
LCALL MOV
KEYSAO
20H ;键值送A
KEY0: CJNE LJMP KEY1: CJNE LJMP KEY2: CJNE LJMP KEY3: RET
A A JI A
, #01H , #02H
, #04H
, KEY1 , KEY2 , KEY3
JIA
WBZD
;********段码表(阳)************************************************* TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H, 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH
END
附 录B:实物图
图9 实物图
C:电路PCB图
图10 PCB正面
图11 PCB背面
24
附 录
附 录D:原理图
图12 原理图
25
附 录E:元器件及材料清单
元器件名称
AT89S52单片机
AT89S52单片机芯片锁紧座
四位一体共阳数码管 四位一体共阳数码管插座
74HC573
74HC573芯片插座
晶振 发光二极管 单排插针 三极管 蜂鸣器 小按键 下载口座子 六脚按键电源开关 USB电源线 USB电源线插座
电阻 电阻 电阻 电解电容 瓷片电容 排阻 排阻 短路冒 杜邦线8P PCB板子 固定螺钉螺帽 USB下载线
规格 40P 40P 40P 20P 20P 12MHz
40P 9012 200 470 1K 22uf 33pf 10k 470 3mm
数目
1 1 2 1 1 1 1 9 2 1 1 10 1 1 1 1 1 8 4 2 2 4 1 4 1 1 4 1
26
范文三:单片机交通灯
设计题目:NE 杯交通灯设计报告
撰写人:李健 2013050107010(大一) 王棋 2014050106028 设计时间:10.1.2014——10.29.2014 ***************************目录**************************** 一 设计要求(1.1—1.8) 二 系统方案的论证与选择(2.1-2.4) 三 系统方案的分析与计算(3.1-3.3) 四 电路设计 4.1 系统总体框图 4.2 各模块电路图 五 程序设计 5.1 程序功能 5.2 程序思路 六 测试方案与测试结果 6.1 软件测试 6.2 硬件测试 6.3 联调 七 参考文献 八 附录 8.1 C 源程序源代码 8.2 电路原理图
一:设计要求 1.1 红绿灯可自动切换; 1.2 黄灯可于红绿灯切换之间自动以一赫兹闪烁三次; 1.3 蜂鸣器可于黄灯闪烁时自动警报三次; 1.4 数码管可计时; 1.5 可人为暂停/继续计时; 1.6 可人为切换红绿灯周期(30s/15s) ; 1.7 电源自备; 1.8 搭建合理美观的电路图 二 系统方案的论证与选择 本系统主要由控制模块,电源模块,信号输出模块,信号输入模 块组成,下面分别论证这几个模块的选择。 2.1 控制模块的论证与选择 本次控制包括交通灯三种状态(红亮黄暗绿暗,红暗黄暗绿亮, 红暗黄闪绿暗)切换和数码管的计时暂停继续及切换。 方案一:以交通灯状态控制计时,即可采用较多的数字芯片; 方案二:以计时控制交通灯状态,即可采用 STC89C52 单片机。 分析:方案一电路简单,但过程复杂,成本较高;方案二虽电路 较复杂,编程麻烦,但其数码显示电路不易受其他信号的干扰,且控 制交通灯状态较为容易实现,成本较低。 经综合比较,采取方案二,并采用单片机 STC89C52。 2.2 电源模块的论证与选择
方案一:仅采取独立直流电源提供电源; 方案二:仅采取单片机控制模块提供电源; 方案三:采取外部直流电源和单片机控制模块共同提供电源。 分析: 方案一优点是电源稳定可靠,缺点是各模块都采用独立电 源,会使系统复杂,且可能影响电路电平;方案二优点是系统简明扼 要,节约成本,缺点是输出功率不高;方案三集合了前两者的优点, 保证功率的同时,电路也较简明。 经综合比较,采取方案三,并采用 B 型 USB 口来接充电宝作为独立直 流电源。 2.3 信号输出模块 本次输出信号包括数码管及发光二级管数字信号和蜂鸣器的声信 号。 方案一:数码管倒计时采用锁存器和 IO 口结合进行,发光二级管 共阴,正极由 IO 口控制,使用无源蜂鸣器; 方案二:数码管倒计时仅采用 IO 口进行,发光二级管共阴,正极 由 IO 口控制,使用无源蜂鸣器。 分析:方案一位选和段选更稳定,但需两个锁存器,接线麻烦,且 本次只需对两位进行位选,方案二只需添加两个 IO 口且动态显示设 置正
确即可完成方案一中两个锁存器的作用。 经综合比较,采取方案二。 2.4 信号输入模块 本次输入信号包括周期的切换信号及暂停继续计时信号。
方案一:采用 8155 扩展 I/O 口及键盘,显示等。 方案二:直接在 I/O 口线上接上按键开关。 分析:方案一优点是可灵活编程,并且有 RAM,及计数器,可提供 较多的 IO 口,缺点是操作复杂;方案二优点是编程更加简洁,使用 更加简单,且成本更低,缺点就是功能有限。 经综合比较本设计的实际需要, 在使用输入的时候不需要过于复杂的 功能,故采用方案二。 三 系统方案的分析与计算 3.1 结合本次设计要求 1-6 的方案分析(控制与分析) 本次控制模块主要利用单片机最小系统来控制交通灯。包括:单 片机,复位电路,外部晶振电路。对上述设计要求具体分析如下(使 用 STC89C52 和 C 编程完成) : a 采用 STC89C52 内部定时器 T0 的定时功能实现红绿切换, 并且使用 P1 端口控制 12 个 LED 灯(红黄绿*4)的亮暗情况; b 采用定时器 T0 的定时功能实现黄灯在每个周期结束时和下个周期 开始前之间的闪烁,并且利用常数延时函数实现黄灯闪烁频率; c 采用 P2.2 端口的电位变化驱动无源蜂鸣器, 使其与黄灯一起工作。 d 采用 P2.0 和 P2.1 两个端口分别对数码管的个位和十位进行位选, 用 P0 对数码管进行段选, 并且在 C 程序中利用主函数对数码管不 断扫描实现动态显示; e 采用 STC89C52 外部中断 INT0 控制定时器 T0 的开启与关闭(已进 行过中断优先级的设定) ,从而控制数码管计时的暂停与继续。
f 采用 STC89C52 外部中断 INT1 设定周期(30s 和 15s) ; 3.2 关于数码管和发光二极管的分析 本次数码管和发光二极管均是共阴接法, 而单片机 IO 口电流有限, 故于 P0,P1 口均采用上拉电阻增加电流。 3.3 相关计算 关于定时器初值的计算:本次定时器工作方式为方式一,即 16 位 计数器。外部晶振 12MHZ,则时钟周期为 1/12 微秒,则机器周期为 1 微秒, 溢出一次为 65536 微秒。 本次采用 50ms 的定时, 即要计 5000 个数,则 20 次定时为 1s。 TH0 和 TL0 赋初值:TH0=(65536-5000)/2^8=0x3c; TL0=(65536-5000)%2^8=0xb0。 四 电路设计 4.1 系统总体框图:(1.1) 4.2 各模块电路图 4.2.1 控制模板:(1.2) 4.2.2 电源模块:(1.3) 4.2.3 信号输出模块:(1.4.1) (1.4.2) 4.2.4 信号输入模块:(1.5) (1.4.3)
上
电流
供电
模块
5V直 流 电 源
拉 电 阻 数 码 管 倒 计 时 定 时 器 T0 蜂 鸣 器 发 声
上拉电阻
【控制模块】 (南北)
红亮黄暗绿暗
红暗黄闪绿暗
【控制模块】 (南北)
红暗黄暗绿亮
信号输
K2换 周 期 K1暂 停 继 续
出模块
信号输 入模块
(1.1)
(1.2)
C6
10
u
C4
30pF
(1.3)
Q2
2N3904
P2.2
BUZ1
(1.4.1)
P2.0
P2.1
RP2
1 2 3 4 5 6 7 8 9 RESPACK-8
P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7
P2.1
(1.4.2)
P2.0
D1
D2
D3
R19
220
R20
220
R21
220
D6
R22
220
3
P1.1
R25
220
D11
7
8
D5
9
R23
P1.4
220
4
P1.2
R26
P1.6
220
D10
D4
P1.5
R24
220
5
P1.3
R27
220
D9 RP2
1 2 3 4 5 6 7 8 9 RESPACK-8
R28
220
R29
220
R30
220
D7
D8
D12
(1.4.3)
K2
INT1
K1
INTO
(1.5) 五 程序设计 5.1 程序功能及设计思路 详细的分析写在第三部分—系统的理论分析,此处只描述程序的 大概思路,具体源代码见附录。 5.1.1 程序功能
建 立 数 码管 计时 显 示 和 发光 二极管 点 亮 状态 间的联 系 , 并引 入 STC89C52 中自带的中断,来实现人为的一些控制。 5.1.2 程序思路 5.1.2.1 通过在主函数中对控制发光二极管、数码管和蜂鸣器的 IO 口 进行扫描来实现信号的输出(包括声信号和数字信号) ; 5.1.2.2 通过定时器 T0 建立数码管显示函数和发光二极管显示函数的 关系(即实现二极管点亮时间与数码管计时的一致性) ; 5.1.2.3 通过在发光二极管显示函数中的参数延时函数的利用实现黄 灯闪烁和蜂鸣器警报的一致; 5.1.2.4 通过两个外部中断函数实现周期切换和暂停继续。 5.2 程序流程图
南北红东西绿 一周期结束,黄灯伴随 蜂鸣器响三次而闪三次
step 6
step 1 INTO 中 断 响 应
step 5
INT1 中 断 响 应
中断请求 数码管计数一周期 ( 定 时 器 T0参 与 ) 暂停与继续 若一次中断执 行暂停 则下次中断执 行继续 中断返回
中断请求
中断返回 step 2 step 4 切换周期 若一次中断中 周 期 赋 值 为 15s 则 下 一 次 赋 30s
step 3 南北绿东西红
一周期结束,黄灯伴随 蜂鸣器响三次而闪三次
(1.6)
六 测试方案与测试结果 6.1 软件测试—仿真 工具:PROTEUS 软件 结果:利用 PROTEUS 软件测试如下:
C1
30pF
C3
10u
C2
30pF
X1 U1 R1 Y1 G1 R18
10k 19 XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17
RP1
1 2 3 4 5 6 7 8 9 RESPACK-8
18
XTAL2
R5
220
R16
220
R6
220 9 RST
G2
R7
220
R10
220
G4
29 30 31
PSEN ALE EA
R17
1k
Y2
R8
220
R11
220
Y4
1 2 3 4 5 6 7 8
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 80C51
R2
R9
220
R12
220
R4
R13
220
R14
220
R15
220
Q1
2N3904
R3
Y3
G
LS1
SPEAKER
BUZZ
情况正常,可测知程序大致无错。 6.2 硬件测试—是否虚焊断路短路,电路实物是否与电路原理图逻辑 一致 工具:万用表和可调直流学生电源 经调试无错,电路原理图见附录。 6.3 联调测试 工具:PROTEUS 软件, 51 开发板,万用表,5v 直流电源 经调
试,作品功能正常 七 参考文献 《新概念 51 单片机 C 语言教程》 电子工业出版社 《C 程序设计(第四版) 》 清华大学出版社 郭天祥 谭浩强
《单片机原理及接口技术》
北京航空航天大学出版社 李朝青
《基于 Proteus 和 Keil C51 的单片机设计与仿真》 电子工业出版社 杜树春 八 附录 8.1 C 源程序代码 #include //定义使用的 IO 口 #define GPIO_CODE P0 #define GPIO_LED sbit K1=P3^2; sbit K2=P3^3; sbit wela0=P2^0; sbit wela1=P2^1; sbit beep=P2^2; //定义全局变量 unsigned char code DIG_CODE[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, //共阴极数码管段选显示 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; unsigned char code DIG_LED[]={ //LED 的亮暗状态 0x82,0x44,0x00,0x28}; //“红-绿,黄,全暗,绿-红”四个状态 //共阴极数码管的显示数字 //有源蜂鸣器 控制 IO 口的声明 //两个位选 IO 口的声明 P1 //定义控制数码管段选的 IO 口 //定义控制 LED 灯的 IO 口 //两个外部中断按键的声明
unsigned char int1=0xff; unsigned char int0=0xff; unsigned char end=0xff; unsigned char sub_end=0xff; char judge1=0; char judge2=0; char num=30; char tens=3; char single=0; char second=30; //声明全局函数 void delay(unsigned int); void intconfiguration(); void display(); void led(); /********************************************************** 函数名:main 功能:主函数 **********************************************************/ void main () { GPIO_CODE=0;
GPIO_LED=0; wela0=1; wela1=1; K1=1; K2=1; intconfiguration(); while(1) { display(); led(); } } /**************************************************** 函数名:delay 功能: 实现精度要求不高的延时 ****************************************************/ void delay(unsigned int xms) { unsigned int i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } // 中断设置函数的调用 //对数码管和 LED 不断的扫描
/*************************************************** 函数名:intconfiguration 功能: 两个外部中断和定时器设置 ***************************************************/ void intconfiguration() { TMOD=0x01; TH0=0x3c; TL0=0XB0; IE=0x87; IT0=1; IT1=1; TR0=1; PT0=0; PX0=1; PX1=1; } /****************************************************** 函数名:display 功能 :数码管的动态显示 ******************************************************/ void display() //中断优先级设置
{ wela1=1; GPIO_CODE=DIG_CODE[single]; wela0=0; delay(5); GPIO_CODE=0x00; delay(5); wela0=1; GPIO_CODE=DIG_CODE[tens]; wela1=0; delay(5); } /********************************************************** 函数名:led 功能 : 红绿灯切换及其之间的黄灯闪烁和蜂鸣器响声 //5~10ms
**********************************************************/ void led() { //控制黄灯闪烁和蜂鸣器 if(sub_end!=end) { int i, j, k; //判断黄灯是否需要闪烁
TR0=0; wela0=0; wela1=1; for(i=0;i
DE = 0; delay(5); GPIO_CODE = DIG_CODE[3-i]; //关上定时器
delay(5); GPIO_LED = DIG_LED[1]; for(j = 16; j > 0; j--) { for(k = 17; k > 0; k--) { beep = 1; delay(1); beep = 0; delay(1); } } GPIO_LED = DIG_LED[2];
delay(550); } TR0 = 1; } //控制红绿灯切换 if(end==0xff) { GPIO_LED=DIG_LED[0]; sub_end=end; } else { GPIO_LED=DIG_LED[3]; sub_end=end; } } /************************************************** 函数名:Timer_0 功能 : 定时功能 //打开定时器
**************************************************/ void Timer_0() interrupt 1 {
TH0=0x3c; TL0=0xb0; judge1++; if(judge1==20) { judge1=0; judge2++; num=(second-judge2); //num 加一 if(judge2==second) { judge2=0; num=second; end=~end; } tens=num/10; single=num%10; } } /********************************************************* 函数名:int_1 功能 :切换周期 *********************************************************/ //获取十位个位数字 //取反 //初始化 //判断是否已经一周期 //判断是否已达一秒
void int_1() interrupt 2 { delay(10); if(K2==0) { TR0=0; GPIO_CODE=0x00; wela0=1; wela1=1; GPIO_LED=DIG_LED[2]; if(int1==0xff) { second=15; tens=second/10; single=second%10; judge2=0; num=second; int1=~int1; } else { second=30; //重新赋周期 //相关变量的初始化 //关闭定时器
tens=second/10; single=second%10; judge2=0; num=second; int1=~int1; } TH0=0x3c; TL0=0xb0; TR0=1; } } /********************************************************** 函数名:int_0 功能 :暂停与继续 **********************************************************/ void int_0() interrupt 0 { delay(10); if(K1==0) { if(int0==0xff) { //定时器的赋初值和打开
TR0=0; int0=~int0; } else { TR0=1; int0=~int0; } } } 8.2 电路原理图
//一次按下,暂停定时器
//下次按下,打开定时器
范文四:单片机课设交通灯
单片机课程?设计
《单片机课程?设计》说明书
--- 交通灯控制? 系统
学 号: 10121?314
姓 名: 芦金洋
班 级: 10计Y
指导教师: 王建农
2013年?12月23?日- 2014年?1 月3日
- 1 -
单片机课程?设计
目录
一、引言.............................................................................................................................. 错误~未定义书签。 1.1系统设计?的意义与目?的 ........................................................................................错误~未定义书签。 1.2系统设计?的基本要求?和内容 ...............................................................................错误~未定义书签。 二、工作原理 ..................................................................................................................... 错误~未定义书签。 2.1系统框图?...................................................................................................................错误~未定义书签。 2.2 程序原理 ..................................................................................................................错误~未定义书签。 2.3 选题方案论?证 .........................................................................................................错误~未定义书签。
2.3.1 供电方式 .........................................................................................................错误~未定义书签。
2.3.2 显示方案 .........................................................................................................错误~未定义书签。 三、硬件设计 ..................................................................................................................... 错误~未定义书签。 3.1 单片机 ......................................................................................................................错误~未定义书签。
3.1.1单片机的概述?..................................................................................................错误~未定义书签。
3.1.2单片机的特点?..................................................................................................错误~未定义书签。 3.2芯片介绍?...................................................................................................................错误~未定义书签。
3.2.1 STC89?C52芯片特性? ......................................................................................错误~未定义书签。
................................................................................. 3.4.2 交通灯的状?态显示错误~未定义书签。四、软件设计 ..................................................................................................................... 错误~未定义书签。 4.1程序设计?语言..........................................................................................................错误~未定义书签。 4.2程序设计?软件..........................................................................................................错误~未定义书签。
4.2.1编程软件?...........................................................................................................错误~未定义书签。
4.2.2烧录软件?...........................................................................................................错误~未定义书签。 4.3程序流程?图 ..............................................................................................................错误~未定义书签。 五、调试测试 ..................................................................................................................... 错误~未定义书签。 5.1调试 ...........................................................................................................................错误~未定义书签。 。5.2测试过程? ..............................................................................................................错误~未定义书签。
5.2.1通电测试?...........................................................................................................错误~未定义书签。
5.2.2基本测试?...........................................................................................................错误~未定义书签。
5.2.3复位测试?...........................................................................................................错误~未定义书签。 六、结论.............................................................................................................................. 错误~未定义书签。 6.1特点 ...........................................................................................................................错误~未定义书签。 6.2存在的问?题 ..............................................................................................................错误~未定义书签。 七、结束语 ......................................................................................................................... 错误~未定义书签。 参考文献............................................................................................................................错误~未定义书签。3 附录.....................................................................................................................................错误~未定义书签。4 图.....................................................................................................................................错误~未定义书签。4 程序代码 .........................................................................................................................错误~未定义书签。
- 2 -
单片机课程?设计
一、引言
1.1系统设计?的意义与目?的
(1)加强对单片?机和C51?语言的认识?,充分掌握和?理解设计各?部分的工作?原理、
设计过程、选择芯片器?件、模块化编程?等多项知识?。
(2)用单片机模?拟实现具体?应用,使个人设计?能够真正使?用。 (3)把理论知识?与实践相结?合,充分发挥个?人能力,并在实践中?锻炼。 (4)提高利用已?学知识分析?和解决问题?的能力。
(5)提高实践动?手能力。
1.2系统设计?的基本要求?和内容
任务:设计一个能?够控制十二?盏交通信号?灯的模拟系?统
要求:利用单片机?的定时器定?时,令十字路口?的红绿灯交?替点亮和熄?灭,并用LED?灯显示倒计?时间。1、东西绿灯亮?,南北红灯亮?2、黄灯亮3、东西红灯亮?,南北绿灯亮?
- 3 -
单片机课程?设计 二、工作原理
2.1系统框图?
2.2 程序原理
- 4 -
单片机课程?设计
1、首先了解实?际交通灯的?变化情况和?规律。假设一个十?字路口如上?图所示,为东南西北?走向。初始状态0?:为东西绿灯?亮,南北红灯亮?;然后转状态?1:东西绿灯亮?黄灯亮,南北红灯亮?黄灯亮;过后转状态?2:东西红灯亮?,南北绿灯亮?;再转状态3?:东西红灯亮?黄灯亮,南北绿灯亮?黄灯亮。一段时间后?,又循环至状?态0。中间可通过?中断按钮产?生中断,跳入中断程?序执行中断?。列出交通信?号灯的状态?表如下:(其中,1代表灯亮?,0代表灯灭?)
对于交通信?号灯来说,应该有东西?南北共四组?灯,但由于同一?道上的两2、
组?的信号灯的?显示情况是?相同的,所以只要用?两组就行了?,因此,采用单片机?内部的I/O口上的P?1口中的6?个引脚即可?来控制6个?信号灯。
3、通过编写程?序,实现对发光?二极管的控?制,来模拟交通?信号灯的管?理。每延时一段?时间,灯的显示情?况都会按交?通灯的显示?规律进行状?态转换。
4、通过延时时?间送显,可以在原有?的交通信号?灯系统的基?础上,增添其倒计?时间的显示?功能,实现其功能?的扩展。
5、通过脉冲中?断编写中断?程序,可实现中断?。
2.3 选题方案论?证
2.3.1 供电方式
连接单片机?控制芯片板?和笔记本设?备的USB?接口,使用笔记本?的电源,打开芯片板?总开关正常?通电。本方案的优?点是系统简?明扼要,节约成本;缺点是输出?功率不高,笔记本要保?持在通电的?状态。
- 5 -
单片机课程?设计
2.3.2 显示方案
采用LED?数码管与L?ED有色发?光二极管相?结合的方法?因为程序设?计既要求倒?计时数字显?示输出,又要求有状?态灯的亮灭?等,为方便观看?并考虑到现?实情况,用LED数?码管与LE?D灯分别显?示时间与灯?的亮灭情况?。
三、硬件设计
3.1 单片机
3.1.1单片机的?概述
单片微型计算机?简称单片机?,是典型的嵌?入式微控制器(Micro?contr?oller? Unit),常用英文字?母的缩写M?CU表示单?片机,单片机又称?单片微控制?器,它不是完成?某一个逻辑?功能的芯片,而是把一个?计算机系统?集成到一个芯片?上。单片机由运算器、控制器、存储器、输入输出设?备构成,相当于一个?微型的计算?机(最小系统),和计算机相?比,单片机缺少了外围?设备等。概括的讲:一块芯片就成了一台?计算机。它的体积小?、质量轻、价格便宜、为学习、应用和开发?提供了便利?条件。同时,学习使用单片机是了解计算?机原理与结?构的最佳选?择。 3.1.2单片机的?特点
1.特点:
(1)体积小巧,携带方便
USB接口?通讯及供电?,通讯速度快?,无须外接电?源
(2)活动自锁4?0Pin锁?紧座
(3)有电源和烧?写状态指示?灯,可直观了解?编程器当前?状态
(4)只需要US?B供电,无需使用外?部电源。周密的自保?护方式,有效保证不?损毁用户器?件或编程器?本身。
2、USB供电?系统,直接插接到?电脑USB?口即可提供?电源,不需另接直?流电源。 3、8位数码管?(可做数码管?的静态扫描?以及动态扫?描显示实验?. 如:0-999 计数器实验?, 18B20?温度检测实?验,遥控解码实?验等都可以?用数码管显?示)。 ZX100?实验板做8?位电子钟实?验图:
8位LED?发光二极管?(做 跑马灯实验? 交通灯实验? )。
4、一路继电器?控制(通过继电器?可以控制其?他电器设备?的工作低压?控制高压等?实验 ,不过为了安?全, 建议不要控?制电压超过?30V的设?备)
5、蜂鸣器(做单片机发?声实验 播放音乐实?验 报警实验等?声响实验) 6、AT24C?08外部E?EPROM?存储芯片(IIC总线?元件实验)
7、SPI串行?实时时钟 DS130?2(熟悉SPI?总线 用DS13?02可以做?一个万年历?电子
- 6 -
单片机课程?设计
时钟 ,比定时器做?的精确很多?哦)
8、 板上集成一?体化红外接?收头(方便学习红?外遥控接收?, 解码实验.) 9、MAX23?2芯片RS?232通讯?接口(可以做为与?计算机通迅?的接口,同时也可做?为STC单?片机下载程?序的接口及?仿真调试的?接口)
10、字符液晶1?602LC?D接口, 采用接插件?方式方便插?拔(可显示两行?,每行16个?,共计32任?意 ASCII?码字符,它的功能应?用比数码管?丰富很多 显示的信息?量更大 实验板16?02液晶显?示实物图:
11、图形点阵液?晶1286?4接口,采用接插件?方式方便插?拔(可显示任意?汉字和图形?,是目前单片?机 图文显示最?常用的显示?器件,我们实验板?支持带字库?的1286?4液晶,开发程序更?方便.
3.2芯片介绍?
本设计选用?了市面上较?为常见的S?TC89C?52单片机?,STC89?C52 是一种低功?耗、高性能CM?OS8位微?控制器,具有 8K 在系统可编?程Flas?h 存储器。使用高密度?非易失性存?储器技术制?造,与工业80?C51 产品指令和?引脚完全兼?容。片上Fla?sh允许程?序存储器在?系统可编程?,亦适于常规?编程器。在单芯片上?,拥有灵巧的?8 位CPU 和在线系统?可编程Fl?ash,使得STC?89C52?为众多嵌入?式控制应用?系统提供高?灵活、超有效的解?决方案。
3.2.1 STC89?C52芯片?特性
主要性能:
- 7 -
单片机课程?设计
(1)与MCS-51单片机?产品兼容 、8K字节在?系统可编程?Flash?存储器、 1000次?擦写周期、全静态操作?:0Hz,33Hz 、三级加密程?序存储器 、 32个可编?程I/O口线、三个16位?定时器/计数器八个?中断源、全双工UA?RT串行通?道、 低功耗空闲?和掉电模式? 、掉电后中断?可唤醒 、看门狗定时?器 、双数据指针?、掉电标识符? 。 功能特性描?述
(2) STC89?C52 是一种低功?耗、高性能CM?OS8位微?控制器,具有 8K 在系统可编?程Flas?h 存储器。使用高密度?非易失性存?储器技术制?造,与工业80?C51 产品指令和?引脚完全兼?容。片上Fla?sh允许程?序存储器在?系统可编程?,亦适于常规?编程器。在单芯片上?,拥有灵巧的?8 位CPU
3.4.2 交通灯的状?态显示
简单的十字?路口交通灯?基本拥有四?个状态,依次循环显?示这些状态?,构成基本的?交通灯控制?系统。
交通灯基本?状态表
S1 S2 S3 S4
东西向红灯?时长东西向红灯?时长南北向红灯?时长南北向红灯?时
20s? 5s 10s? 长5s
南北向绿灯?时长南北向黄灯?时长东西向绿灯?时长东西向黄灯?时
15s? 5s 15s? 长5s
- 8 -
单片机课程?设计
四、软件设计
4.1程序设计?语言
在本次设计?中,采用了C语?言作为程序?编程的语言?。
4.2程序设计?软件
4.2.1编程软件?
程序设计选?择了Kei?l μVisi?on 2.0编程环境?的软件。这款软件支?持众多不同?公司的MC?S51架构?芯片,它集编辑、编译、仿真为一体?,同时还支持?PLM、汇编和C语?言的程序设?计,界面友好、简单易学,在调试程序?。软件仿真方?面都有很强?大的功能。在初期的软?件调试阶段?,Keil μVisi?on会提供?非常便利的?环境。
4.2.2烧录软件?
程序设计还?使用了单片?机烧录软件?STC_I?SP_V4?83.exe软件?。由于STC?89系列的?单片机具有?系统可编程?特性(ISP),省去购买通?用编程器。把程序烧录?进IC芯片?,无须将单片?机从已生产?好的拆下,通过编程器?将程序代码?烧录单片机?内部。直接下载到?单片机中显?示程序结果?,若现实结果?与预期不一?致,再返回Ke?il软件修?改程序,再次进行调?试显示结果?。有些程序尚?未定型的产?品可以一边?生产,一边完善,加快了产品?进入市场的?速度,减小先产品?由于软件缺?陷带来的风?险。
- 9 -
单片机课程?设计
4.3程序流程?图
五、调试测试
5.1调试
1、接硬件图接?线,为了确保东?西南北红黄?绿灯能够对?应显示,实验时,对P1口的?接线做了调?整。即,P1.0接绿灯,P1.1接黄灯,P1.2接红灯,P1.3接绿灯,P1.4接
?灯 黄灯,P1.5接L3红
2、从0100?H单元开始?连续运行,观察六个L?ED灯是否?与交通显示?情况对应,如果有偏差?,则单步运行?或断点运行?,进行调试,直至满足设?计要求。 3、调试完灯的?显示后,从0100?H开始连续?运行,观察数码管?显示的是否?正常,如果不正常?,则运用单步?运行或断点?运行进行分?析和调试,直至满足要?求。 4、整体运行,观察灯显示?和时间显示?是否都符合?要求,如果不符合?,则再调试。直至满足要?求。
- 10 -
单片机课程?设计
。5.2测试过程?
5.2.1通电测试?
编写程序之?前检测硬件?电路板是否?有短路或设?备连接不稳?固等隐患。通电后打开?电路板开关?,LED数码?管显示12?34的字样?。应为我的程?序设计中仅?用到了数码?管和发光二?极管,通过烧录软?件将磁盘中?的LED循?环左移程序?烧录芯片中?运行,结果显示L?ED发光二?极管电路连?接良好,未发生短路?状况。
5.2.2基本测试?
编写好的程?序通过Ke?il μVisi?on 2.0编译生成?.hex文件?,再用烧录软?件将.hex文件?烧录到芯片?中,通电后程序?运行:初始状态为?东西红灯亮?,南北绿灯亮?,双位数码管?显示倒计时?为20和1?5。状态2东西?红灯亮,南北黄灯闪?烁,数码管显示?都为5。状态3东西?绿灯亮,南北红灯亮?,数码管显示?15和20?。状态4东西?黄灯闪烁,南北红灯亮?,都是5s。程序依次循?环显示这四?个状态。 5.2.3复位测试?
程序运行时?,若在状态2?、3、4显示的途?中,按复位键R?ES_51?键,程序立刻回?转初始状态?运行。反复测试成?功。
六、结论
6.1特点
系统采用了?STC89?C52芯片?的硬件设计?,简便、实用性强、操作简单、程序设计简?便;同时采用了?C语言作为?程序编程的?语言,可读性和可?移植性高于?汇编语言。
采用STC?89C52?芯片I/O:P1.0~P1.7口做LE?D有色发光?二极管来显?示东西南北?向的红绿灯?;红绿灯亮灭?显示:0为点亮,1为熄灭;黄灯闪烁显?示:P1.1=~P1.1;四位LED?数码管动态?显示倒计时?,前两位显示?东西向,后两个显示?南北向的倒?计时。
- 11 -
单片机课程?设计
6.2存在的问?题
程序设计过?程中东西南?北时间为固?定值,若考虑到车?流高峰时,固定设置的?红绿灯时间?可能会造成?交通更加堵?塞,易发生交通?事故。
程序过于简?单,只能适用于?一些车流简?单的小路段?使用。
七、结束语
本设计能够?实现对十字?路口人车通?行的指示,提高通行质?量,主要适用于?通流量较小?的十字路口?,适合普通通?行方式的十?字路口。对于一些复?杂的通流量?大的十字路?口效果就差?了,它对于转弯?没有指示,需要改进的?是,在各个方向?加上一个指?示转弯的指?示灯。再通过程序?实现对定时?的改变,便可使此交?通灯系统实?现全方位的?指示。由于时间有?限,在此就不做?此项扩展。
参考文献
[1]王建农:用单片机实?现多路电量?脉冲测量的?接口设计.微计算机信?息,2005,
9(2):133~135.
[2]谭浩强:C程序设计?(第三版)北京:清华大学出?版社, 2005-7:95~104
- 12 -
单片机课程?设计
[3]温欣玲 张玉叶: 基于单片机?交通灯智能?控制系统研?究,微计算机信?息1999
?:90-91
[4]周美珍,江志华:单片机控制?交通灯的硬?件与软件设?计,家庭电子,2005:
9(20):20-21
- 13 -
单片机课程?设计 附录
图
交通灯程序?控制线路图?
十六进制数?形转换表
交通灯电路?显示图
- 14 -
单片机课程?设计
- 15 -
单片机课程?设计
程序代码
0x99, 0x49, 0x41, 0x1f, 0x01, 0x09}; //写入头文件?AT89S?52.H
/**************延时子函#inclu?de"AT89S?52.H"
/****************初始变量设?定数?**************/ *****************/ delay?(int t) //延时子函数? sbit p1_0=P1^0; //定义P1口?的8位 {
while?(t--); sbit p1_1=P1^1;
sbit p1_2=P1^2; }
sbit p1_3=P1^3; /***************显示倒计sbit p1_4=P1^4; 时?**********************************/
sbit p1_5=P1^5; void displ?ay(int ew_ti?me,int ns_ti?me) sbit p1_6=P1^6; {
sbit p1_7=P1^7; char qian_?bit,bai_b?it,shi_b?it,ge_bi?t; bit flag=0; //定义显示状?态控制位 qian_?bit=ew_ti?me/10; int ns_ti?me; //定义东西,南北红黄绿?各自的 P0=led_d?iscod?e[qian_?bit];
时间?初值分别为?20,15,5秒 //显示东西十?位
int ew_ti?me; P3=P3&0x0f; int ns_ti?me_re?d=20; P3=P3|0xe0; int ns_ti?me_gr?een=15; delay?(500); int ns_ti?me_ye?llow=5; bai_b?it=ew_ti?me%10; int ew_ti?me_re?d=20; P0=led_d?iscod?e[bai_b?it];
int ew_ti?me_gr?een=15; //显示东西个?位
int ew_ti?me_ye?llow=5; P3=P3&0x0f; char point?=20; //定时的控制?次数初值设?定 P3=P3|0xd0;
delay?(500); int a=0; //南北,东西两方向?切换状态
shi_b?it=ns_ti?me/10; 标?志初值设定?
P0=led_d?iscod?e[shi_b?it]; char code
//显示南北十?位 led_d?iscod?e[]={0xc0,0xf9,0xa4,0xb0,0x99,
P3=P3&0x0f; 0x92,0x82,0xf8,0x8
P3=P3|0x70; 0,0x90,
delay?(500); 0x88,0x83,0xc6,0xa
ge_bi?t=ns_ti?me%10; 1,0x86,0x8e}; //共阳
P0=led_d?iscod?e[ge_bi?t]; 极显示?0-F对应的字?
//显示南北个?位 型码
P3=P3&0x0f; char code table?[10] = {0x03, 0x9f, 0x25, 0x0d,
P3=P3|0xb0;;
- 16 -
单片机课程?设计
delay?(500); 绿灯时间?赋值
} ew_ti?me=ew_ti?me_re?d; /**************t0中断定?时子函数 ew_ti?me_re?d=ns_ti?me_gr?een+ns_ti?me_ye?*****************/ llow;
int tint()inter?rupt 1 using? 2 //t0中断(定时 if(!a) //a=0,东西显示2?0开始倒计?时,南器0中?断)子函数 北15开?始倒计时
{ {
ew_ti?me=ns_ti?me_re?d; TH0=0x3c; //定时50m?s初值设定?
ns_ti?me=ew_ti?me_gr?een+ew_ti?me_ye?llo TL0=0xb0;
w; point?--; //20次T0?定时次数控?制
} if(point?==0) //如果20次?到了,改变显示
while?(!a) //a=0,进入循环 的?东西南北方?向的时间
{ {
if(ns_ti?me-5>0) //南北红灯,东西绿 flag=1;
灯 point?=20;
{ if(ns_ti?me!=0)
//while?(!flag); ns_ti?me--;
displ?ay(ns_ti?me,ns_ti?me-5); if(ew_ti?me!=0)
//flag=0,显示东西2?0s,南北15s? ew_ti?me--;
}
} p1_1=1;
p1_6=1; /*********************主函数
p1_7=0;//东西红灯亮? ******************/
void main(void) p1_4=0;//南北绿灯亮? { }
TMOD=0x01; //设置定时方?式1 if(ns_ti?me<=5)>=5)><>
TH0=0x3c; //定时初值5?0MS 东西红灯,南北黄灯闪?烁,
TL0=0xb0; {
TR0=1; //T0溢出中?断请求开启? while?(!flag);
EA=1; //总中断开启? displ?ay(ns_ti?me,ns_ti?me); //东
ET0=1; //T0中断开?启 西,南北均从5?开始倒计时?显示
displ?ay(ns_ti?me,ns_ti?me); EX0=1; //外部中断I?NT0开启?
displ?ay(ns_ti?me,ns_ti?me); IT0=1; //设置开关下?降沿有效
displ?ay(ns_ti?me,ns_ti?me); EX1=1; //外部中断I?NT1开启?
displ?ay(ns_ti?me,ns_ti?me); IT1=1; //设置开关下?降沿有效
displ?ay(ns_ti?me,ns_ti?me);
ns_ti?me=ns_ti?me_gr?een; //东西南北红?黄 displ?ay(ns_ti?me,ns_ti?me);
- 17 -
单片机课程?设计
displ?ay(ns_ti?me,ns_ti?me); ew_ti?me=ns_ti?me_gr?een+ns_ti?me_ye?llow
displ?ay(ns_ti?me,ns_ti?me); ;
displ?ay(ns_ti?me,ns_ti?me); }
displ?ay(ns_ti?me,ns_ti?me); while?(a) //a=1,进入循环
displ?ay(ns_ti?me,ns_ti?me); {
displ?ay(ns_ti?me,ns_ti?me); ti?me-5>0) //南北红灯,东西绿 if(ns_
displ?ay(ns_ti?me,ns_ti?me); 灯
displ?ay(ns_ti?me,ns_ti?me); {
displ?ay(ns_ti?me,ns_ti?me); while?(!flag);
displ?ay(ns_ti?me,ns_ti?me); displ?ay(ns_ti?me-5,ns_ti?me);
displ?ay(ns_ti?me,ns_ti?me); //flag=0,显示南北2?0s,东西15s?
displ?ay(ns_ti?me,ns_ti?me); p1_7=1; displ?ay(ns_ti?me,ns_ti?me); p1_4=1; displ?ay(ns_ti?me,ns_ti?me); p1_0=1; displ?ay(ns_ti?me,ns_ti?me); p1_6=0;//南北红灯显?示, displ?ay(ns_ti?me,ns_ti?me);
P1_5=0;//东西绿灯显?示 displ?ay(ns_ti?me,ns_ti?me);
displ?ay(ns_ti?me,ns_ti?me);
} displ?ay(ns_ti?me,ns_ti?me);
if(ns_ti?me-5<=0)>=0)><=5时 displ?ay(ns_ti?me,ns_ti?me);="">=5时>
南北红?灯,东西黄灯闪?烁 displ?ay(ns_ti?me,ns_ti?me);
displ?ay(ns_ti?me,ns_ti?me); {
p1_7=0; //东西红灯,南北 while?(!flag);
displ?ay(ns_ti?me,ns_ti?me); //黄灯一?亮一灭显示?
南北,均从东西5?开始倒计时?显示 P1_4=1;
displ?ay(ns_ti?me,ns_ti?me); p1_0=~p1_0; //南北黄灯所?在
displ?ay(ns_ti?me,ns_ti?me); 位,对应取反,实现亮灭
displ?ay(ns_ti?me,ns_ti?me); }
displ?ay(ns_ti?me,ns_ti?me); if(ew_ti?me==0) //如果东西时?间为
displ?ay(ns_ti?me,ns_ti?me); 0,赋值a为1?,以实现方向?转变 displ?ay(ns_ti?me,ns_ti?me);
a=1; displ?ay(ns_ti?me,ns_ti?me);
} displ?ay(ns_ti?me,ns_ti?me);
if(a) //a=1,南北显示2?0开始倒计?时,东 displ?ay(ns_ti?me,ns_ti?me); 西15开?始倒计时 displ?ay(ns_ti?me,ns_ti?me);
{ displ?ay(ns_ti?me,ns_ti?me);
ns_ti?me=ew_ti?me_re?d; displ?ay(ns_ti?me,ns_ti?me);
displ?ay(ns_ti?me,ns_ti?me);
- 18 -
单片机课程?设计
displ?ay(ns_ti?me,ns_ti?me);
displ?ay(ns_ti?me,ns_ti?me);
displ?ay(ns_ti?me,ns_ti?me);
displ?ay(ns_ti?me,ns_ti?me);
p1_6=0;//南北红灯亮?,东西黄灯一?亮一灭显示?
p1_5=1;
p1_7=1;
p1_4=1;
p1_0=1;
p1_1=~p1_1; //东西黄灯P?1.1位取反,以实现黄灯?亮灭变化显?示
}
if(ns_ti?me==0) //如果南北时?间为0赋值?a为0
a=0;
}
}
- 19 -
范文五:单片机交通灯控制
中国http://www.paper.edu.cn 基于单片机的多功能交通灯控制系统的设计与仿真实
现
马春城,郭循钊,邝帆
长安大学交通信息工程及控制系,西安 (710064)
E-mail:
摘 要:本文介绍了一种基于AT89C52单片机的交通灯信号控制系统。该系统除具有基本交通灯功能外,还具有相位可以变换、控制参数可以调整、紧急车强行通过、“黄闪”控制等功能。利用Proteus与Keil联调对此交通灯控制系统进行仿真,可实现上述功能。该系统能够简单、有效地疏导交通,提高交叉口的通行能力。
关键词:交通灯;单片机;控制系统;Proteus;Keil
中图分类号:TP368.1 文献标识码: A
1.引言
交通灯是城市交通的重要指挥系统,与人们的日常生活密切相关。随着经济的快速发展,城市中的车辆逐渐增多,交通拥挤和堵塞现象日趋严重,引起交通事故频发、环境污染加剧等一系列的问题[1]。因此设计一个稳定、灵活、便捷的多功能交通灯控制系统具有必要性和现实性。本文介绍的交通灯控制系统与目前国内一般的交通灯控制系统相比较,具有一定的优势,具体体现在以下几个方面:
1)控制参数可以灵活调整。目前,城市交叉口大多采用定周期控制方式,一旦周期和绿信比选定之后就不再变化,这样就有可能造成信号灯控制信号与实际的交通流量不适应。因此,只有周期、红灯时间、绿灯时间等控制参数可根据交通流的实际情况来调整,才能更好地控制交叉口的交通,减少车辆延误和提高交叉口的通行能力。
2) 相位可以变换。针对一个实际的十字路口,两相位控制交通流简单,效率高,但冲突点比较多,安全性较低。而四相位由于消除了左转车辆造成的冲突,安全性很高,但在小交通流的情况下,交通效率低,因此,如果能根据交通流量的大小和车辆的转向比例来进行相位变换,交叉口交通会更有秩序,控制效果也会更好。
3)紧急车辆通行控制。当紧急车辆执行紧急任务通过某个交叉口时,不管原来交通灯的时序怎么样,2车道都应禁行,让紧急车通过。紧急通行的控制可以通过紧急通行按钮来实现。
4)“黄闪”控制。在夜晚特别是午夜时分人流和车流较少的情况下,可以对此交通信号灯执行“黄闪”控制,以提高通路口通行效率,减少不必要的等候时间。此时,交通灯由原来的多相位变为单一的黄灯闪烁。
2.系统硬件设计
2.1硬件
本系统主要由单片机控制系统、按键模块、串口通信模块、LED显示模块、交通灯显示模块等组成,如图1所示。其中,单片机系统为系统的主控制器,用以控制其他模块协调工作;按键模块采用外部中断INT0的方式;串口通信模块采用RS-485接口; LED显示模块用以显示交通灯控制参数;交通灯显示模块用以显示各车道的通行情况。
中国
http://www.paper.edu.cn
图1 系统硬件
2.2单片机控制系统及基本电路
本系统采用AT89C52芯片作为核心控制器件。它的P0、P2口用于数码管显示控制,P1口用于交通灯显示控制,按键处理主要用中断的方式进行,特别加入了“看门狗”电路以保证该系统的稳定性。单片机基本外围电路如图2
所示。
图2 单片机基本电路及按键控制电路
2.3 按键控制模块
按键控制模块由AT89C52芯片的P3口控制,电路如图2所示。当某个键按下时,产生的负脉冲通过编码器74LS148的GS致使INT0中断,单片机响应这个中断,并读入74LS148的编码信息,从而根据按下不同键进行相应处理[2]。
2.4 LED显示模块
LED显示模块包括控制参数调整显示模块和交叉口倒计时显示模块2部分,此2部分的8位LED均采用动态显示方式,即将所有数码管的段码线相应段并联在一起,接到P0口,用P2口的各位对各个LED进行控制,从而实现对LED的定时选通[3]。
2.5 交通灯显示模块
交通灯显示模块由单片机的P1口进行控制,用32个发光二极管模拟此交叉口的车道交通灯(交叉口四个方向的直行绿灯、左转绿灯、红灯和黄灯),以及各路口人行道的交通灯
[4]。
2.6 串口通信模块
在该模块中,采用RS-485接口完成上位机或相邻交通灯控制系统与单片机的通信,从而实现该系统的控制、调试与报警。RS-485接口具有良好的抗噪声干扰性,较长的传输距
中国离和多站能力,其串行口电路图如图3所示。
http://www.paper.edu.cn
图3 串行口电路图
3.系统软件设计
3.1 主程序
主程序流程图如图4
所示。
图4 主程序流程图
该程序主要完成交通控制参数的初始化,中断的触发方式,定时器T0的初始化,开中断和开定时器,信号相位状态的控制,然后循环调用显示子程序的工作,从而实现对交通灯的控制。
3.2 按键中断程序
按键采用中断的工作方式,当按下某个键时,单片机响应中断,进行相应的处理,其程序流程如图5所示。
中国
http://www.paper.edu.cn
图5 中断程序流程图
3.3 按键中断程序
按键采用中断的工作方式,当按下某个键时,单片机响应中断,进行相应的处理,其程序流程如图5所示。
图5 中断程序流程图
3.4 LED显示程序
8位LED显示采用动态显示方式。在某一段时间,单片机P2口控制只让某一个LED处于选通状态,通过P0口输出相应位置要显示的字符段码。同样在下一段时间,可以让下
LED显示的时间非常短,使得人的眼睛感觉LED是同时显示的[5]。 一个LED显示需要显示的字符,如此循环,可使每一个LED显示需要显示的字符。每一个
3.5 相位控制程序
本系统可以进行两相位和四相位的控制,四相位控制流程如图6所示。两相位控制即给东西方向(左转、直行、右转)一个相位,南北方向(左转、直行、右转)一个相位,控制
流程较为简单,限于篇幅,两相位流程在此不予列出。
图6 四相位交通控制流程图
4.系统Proteus仿真
Proteus软件(英国Labcenter Electronic公司的EDA工具软件)的ISIS是电路分析实物仿真系统,支持单片机软件、各种电路和IC的仿真。先用ISIS搭建系统的硬件电路,然后用keil软件编写C51程序,编写好源程序后,对其进行编译,使其生成.hex文件,再把此文件导入ISIS单片机AT89C52中对系统进行仿真,其仿真画面如图7所示
[7]。
图7 系统的Proteus仿真画面
5.结语 基于单片机的多功能交通灯控制系统充分利用AT89C52单片机芯片,提高了系统的可靠性和稳定性。系统设计简便、实用性强、操作简单、程序可靠。应用此系统可以简便灵活地调整十字路口的控制参数,使紧急车辆及时顺利通过,更重要的是,可以根据十字路口的实际情况(交通流量的大小、左转车辆的比例等)灵活选择简单的两相位控制或保证安全的四相位控制,这对于灵活有效地利用交通灯控制行车安全、车辆分流、减少交通事故的发生有一定现实意义。另外,还可在此系统基础上进一步完善和改进,如加入左、右转车辆的检测,语音提示功能等,以使交通灯控制系统更趋于智能化和人性化。
参考文献
[1]
[2]
[3]
[4]
[5]
[6]
杨兆升,城市交通流诱导系统[M].北京:中国铁道出版社,2004. 边春元,李文涛等.C51单片机典型模块设计与应用[M].北京:机械工业出版社,2008. 张毅刚.单片机原理及应用[M].北京:高等教育出版社,2004. 张飞舟,范耀祖.交通控制工程[M].北京:中国铁道出版社,2005 袁涛.单片机C高级语言程序设计及其应用[M].清华大学出版社,2001.10 求是科技,勒达.单片机应用系统开发实例导航[M].北京:人民邮电出版社,2003.10.
Design and Simulation of Multi-functional Traffic Signal
Controller Based on Single-chip Processor
Ma Chuncheng,Guo Xunzhao,Kuang Fan
Department of Electronic and Control Engineering,Chang’an University, Xi’an, PRC,
(710064)
Abstract
This paper introduces a multi-functional traffic signal control system based on AT89C52. In addition to basic traffic signal function, the system has some other functions such as phase changing, control parameters regulating, urgent vehicle passing and yellow flashing. Finally, it is simulated with Proteus and Keil to realize the above-mentioned functions. The system has been proved to be simple and effective in easing traffic congestion and improve traffic junction capacity.
Keywords: The traffic lights; Single-chip processor; Control system; Proteus; Keil
作者简介:
马春城,男,1988年生,山东济南人,长安大学交通信息工程及控制专业硕士研究生,主要研究方向是智能交通、智能车和交通控制与管理。
郭循钊,男,1985年生,河南濮阳人,长安大学交通信息工程及控制专业硕士研究生,长安大学交通信息工程及控制研究生,主要研究方向是智能车和交通控制与管理。
邝帆,女,1986年生,陕西安康人,长安大学交通信息工程及控制专业硕士研究生,主要研究方向是智能交通和交通控制与管理。