交通灯设计论文Word文档格式.docx
《交通灯设计论文Word文档格式.docx》由会员分享,可在线阅读,更多相关《交通灯设计论文Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
3.6.2功能介绍10
第四章软件编程设计10
4.1设计思想10
4.2源程序11
4.3源程框图11
第五章设计心得12
参考文献14
附录I硬件原理图15
附录II源程序16
第一章绪论
1.1概述
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。
本系统采用单片机stc-10f04xe为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。
本设计就是采用单片机模拟十字路口交通灯的各种状态显示以及倒计时时间。
本设计系统由单片机I/O口扩展系统、交通灯状态显示系统、LED数码显示系统、紧急情况中断系统、复位电路等几大部分组成。
系统除基本的交通灯功能外,还具有倒计时、紧急情况处理等功能,较好的模拟实现了十字路口可能出现的状况。
1.2设计目的
(1)加强对单片机和汇编语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。
(2)用片机模拟实现具体应用,使个人设计能够真正使用。
(3)把理论知识与实践相结合,充分发挥个人能力,并在实践中锻炼。
(4)提高利用已学知识分析和解决问题的能力。
(5)提高实践动手能力。
1.3设计任务和内容
1.3.1设计任务
结合教材及参考资料,用STC-10F04XE单片机模拟实现十字路口的交通灯亮灭、倒计时显示、紧急情况处理等功能。
1.3.2设计内容
(1)填写设计任务书。
(2)进行总体设计,画出原理图。
(3)用Protel软件画出PCB板并制板。
(4)焊接器件和芯片。
(5)编写并调试程序。
第二章总体设计及核心器件简介
2.1总体设计
整个设计以STC-10F04XE单片机为核心,由I/O口扩展,LED数码管显示,紧急情况中断电路,watchdog复位电路等组成。
硬件模块如图。
图2-1硬件模块
2.2STC单片机
2.2.1stc芯片简介
STC单片机是由美国设计,国内宏晶公司贴牌生产的,该系列芯片设计的时候就吸取其它51系列单片很容易被破解的教训,改进了加密机制。
STC单片机出厂的时候就已经完全加密,用户程序是ISP/IAP机制写入,编程的时候是一边校验一边写,无法读出命令,这个增加了解密难度。
而在STC10、11系列单片机推出之初,STC10系列单片机被认为是无法破解的。
芯谷科技应众多客户的实际需求,针对STC10、11等系列高难度解密芯片进行技术研究,目前已经成功破解STC全系列单片机,能够为广大客户提供STC10单片机解密、STC11芯片解密、STC12解密、STC90单片机解密等众多STC解密技术服务。
以下是目前芯谷科技可解的STC10系列单片机典型型号,供参考查询。
STC10F04
STC10F04XE
STC10F06
STC10F06XE
STC10F08
STC10F08XE
STC10F10
STC10F10XE
STC10F12
STC10F12XE
IAP10F14X
STC10L04
STC10L04XE
STC10L06STC10L06XE
STC10L08
STC10L08XE
STC10L10
STC10L10XE
STC10L12
STC10L12XE
IAP10L14X
2.2.2.管脚功能
图2—2管脚图
2.3看门狗定时器
看门狗定时器的作用是通过监视WDI输入来监视微处理器是否激活。
由于微处理器必须周期性的触发CS/WDI引脚以避免RESET信号激活而使电路复位,所以CS/WDI引脚必须在看门狗超时时间终止之前受到由高至低信号的触发。
表2-1WD0、WD1(WatchdogTimer)位用于选择看门狗的超时周期
第三章单元电路模块设计
3.1十字路口交通灯控制设计
显示:
采用共阳极LED的动态显示方式,用P0.0~P0.7做段选,P1.0~P1.3作位选。
如图所示。
图3-1动态方式
图3-2LED指示图
图3-2位LED指示灯,Y方向的右转:
红—P2.3黄—P2.4绿—P2.5
Y方向的直行:
红—P2.0黄—P2.1绿—P2.2
X方向的右转:
红—P3.3黄—P3.4绿—P3.5
X方向的直行:
红—P3.0黄—P3.1绿—P3.2
控制输出为低电平点亮。
3.2晶振电路
图3-3 晶振模块原理图
选取原则:
传统做法,但能够实现所需,即最简单也最是实用。
电容选取22uF,晶振为11.0592Hz。
3.3LED数码管显示电路
在单片机应用系统中,数码管显示常用两种方法:
静态显示和动态扫描显示。
所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。
这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小,可以提供单独锁存的I/O接口电路很多
图3-4数码管显示静态驱动电路
3.4复位电路
图3-5复位电路
在设定的定时时间内,相应引脚产生一个由高到低的电平变化,以清内部定时器,即“喂狗”,否则将产生一个复位信号。
3.5交通灯状态显示电路
十字路口的交通灯分布示意图如图3-6所示,将这12个交通灯进行编号。
图3-6十字路口交通灯分布示意图
这12个交通灯共有四个状态:
状态1(S1):
东西红灯(4、10)亮,南北绿灯(3、9)亮
状态2(S2):
南北黄灯(2、8)亮,东西仍为红灯(4、10)亮
状态3(S3):
南北红灯(1、7)亮,东西绿灯(6、12)亮
状态4(S4):
东西黄灯(5、11)亮,南北仍为红灯(1、7)
表3-1二极管端口控制表
PB5
PB4
PB3
PB2
PB1
PB0
PA5
PA4
PA3
PA2
PA1
PA0
西红
西绿
西黄
南红
南绿
南黄
东红
东绿
东黄
北红
北绿
北黄
东西红灯亮
南北绿灯亮
1
1D1DH
南北黄灯亮
1E1EH
东西绿灯亮
南北红灯亮
2B2BH
东西黄灯亮
3333h
红灯全亮
1B1BH
3.6总体设计原理图及功能介绍
3.6.1整个设计原理图见附录
3.6.2功能介绍
用单片机控制LED灯模拟指示,用2位数码管显示倒计时剩余时间。
模拟XY方向的十字路口交通信号控制情况。
红、绿黄灯时间可通过键盘进行设定调整。
本项目为典型的LED显示和中断定时电路。
利用定时器T0产生每10ms一次的中断,每100次中断为1s。
对两个方向分别显示红、绿、黄灯,及相应的剩余时间即可。
值得注意的是需要意识到,X方向红灯时间=Y方向绿灯时间+黄灯缓冲时间这一常识。
用4个按键,结合红、黄、绿灯显示,设置红绿灯的倒计数的时间。
4个按键的功能分配可以自行设定,也可以按如下方法设定。
K1—功能键,每按下一次对应的LED灯亮,表示要设置该灯的倒计时时间。
同时,十位数码管闪烁。
K2—移位键,每按下一次向后移一位。
K3—加1键。
K4—减1键。
第四章软件编程设计
4.1设计思想
4.2源程序
本设计系统由单片机I/O口扩展系统、交通灯状态显示系统、LED数码显示系统、复位电路等几大部分组成。
系统除基本的交通灯功能外,还具有倒计时功能,较好的模拟实现了十字路口可能出现的状况。
软件上采用汇编语言编程,主要编写了主程序,LED数码管显示程序。
经过整机调试,实现了对十字路口交通灯的模拟。
具体源程序见附录。
4.3程序框图
图4-1程序框图
第五章设计心得
参考文献
[1]李广弟,朱月秀,王秀山编著.单片机基础.北京:
北京航空航天大学出版社,2001
[2]何立民编著.MCS-51系列单片机应用系统设计系统配置与接口技术.北京:
北京航空航天大学出版社,1999
[3]蔡美琴等编著.MCS-51单片机系统及应用.北京:
高等教育出版社.1992
[4]李朝青.单片机原理及接口技术(第3版).北京:
北京航空航天大学出版社,2005
[5]马忠梅等.单片机的C语言应用程序设计.北京:
北京航空航天大学出版社,2007
[6]赵新民.智能仪器设计基础.哈尔滨:
哈尔滨工业大学出版社,1999
[7]何立民.单片机应用技术大全.北京:
北京航空航天大学出版社,1994
附录I硬件原理图
附录II源程序
课程设计程序:
HOLVEQU0DEH;
11011110
HOHUEQU0EEH;
11101110
LVHOEQU0F3H;
11110011
HUHOEQU0F5H;
11110101
HOHOEQU0F6H;
11110110
ORG0000H
AJMPMAIN
ORG000BH
AJMPT00K
ORG0030H
MAIN:
MOVSP,#60H
STRT:
MOVP1,#0FFH
MOVP2,#0FFH
MOVP3,#0FFH
MOVP0,#0FFH
MOVTMOD,#01H
MOVTH0,#0ECH;
12MHZ5MS的初值5000=1388H
MOVTL0,#78H
MOV14H,#100;
中断次数100*5=500MS
SETBTR0
SETBET0
SETBEA
MOV30H,#8;
显示缓冲单元
MOV31H,#8
MOV32H,#8
MOV33H,#8
;
初值设定为压缩BCD码
MOV28H,#10;
XZL,Y初值
MOV29H,#05;
XZH
MOV2AH,#10;
XLL
MOV2BH,#05;
XLH
MOV2CH,#10;
YZL
MOV2DH,#05;
YZH
MOV2EH,#10;
YLL
MOV2FH,#05;
YLH
MOV10H,#0FEH;
记录显示位置
MOV11H,#30H;
记录显示单元
MOV12H,#0;
功能键按下计数器
MOV13H,#4;
13H按键延时去抖
CLR00H;
按键标志
CLR01H;
500MS*2
CLR02H;
按键交替闪烁标志
CLR03H;
温度偏移量设定时的负号标志
CLR04H;
1秒时间到标志
CLR05H;
亮灯转换标志
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
HHH:
NOP;
开始
MOVA,28H
ADDA,29H
ADDA,2AH
ADDA,2BH
MOV42H,A;
Y显示单元
MOV41H,28H;
X显示单元
MOV43H,28H;
43H亮灯时间记录
MOVA,42H
MOVR1,#33H
ACALLBCDD;
二十转换送显示缓冲区
MOVA,41H
MOVR1,#31H
ACALLBCDD
MOVP3,#HOLV;
XL红XZ绿
MOVP2,#HOHO;
YZ红YL红
状态转换标志清零
HX0:
JNB05H,HX0;
时间没到继续查键盘
MOV41H,29H
MOV43H,29H
MOVP3,#HOHU;
XL红XZ黄
YL红YZ红
CLR05H
X2:
JNB05H,HX2;
MOV41H,2AH
MOV43H,2AH
MOVP3,#LVHO;
XL绿XZ红
HX4:
JNB05H,HX4
MOV41H,2BH
MOV43H,2BH
MOVP3,#HUHO;
XL黄XZ红
HX6:
JNB05H,HX6
MOVA,2CH
ADDA,2DH
ADDA,2EH
ADDA,2FH
MOV41H,A;
Y显示单元
MOV42H,2CH;
MOV43H,2CH;
MOVP2,#HOLV;
Y
MOVP3,#HOHO;
X
HY0:
JNB05H,HY0;
MOV42H,2DH
MOV43H,2DH
MOVP2,#HOHU;
HY2:
JNB05H,HY2;
MOV42H,2EH
MOV43H,2EH
MOVP2,#LVHO;
HY4:
JNB05H,HY4
MOV42H,2FH
MOV43H,2FH
MOVR1,#33H
MOVP2,#HUHO;
HY6:
JNB05H,HY6
AJMPHHH;
重新开始
BCDD:
把A分解送显示缓冲区
MOVB,#10
DIVAB
MOV@R1,A
DECR1
MOVA,B
RET
HBCD:
MOVA,@R0;
回存设定值
MOVR2,A
INCR0
MOVA,@R0
MULAB
ADDA,R2
T00K:
PUSHACC;
T00KT0中断子程序
PUSH00H
PUSHPSW
12MHZ时4MS
DJNZ14H,Z1
MOV14H,#100
JB00H,KSAN;
00H按键标志
CPL01H
JB01H,Z1
SETB04H;
1秒钟到标志
SJMPZ1
KSAN:
CPL02H;
02H交替闪烁标志
JNB02H,SAN1
MOVR0,35H
MOV@R0,#16
SJMPSAN2
SAN1:
MOV@R0,34H
SAN2:
NOP
Z1:
ORLP1,#0FFH;
灭
MOVA,11H
MOVR0,A
MOVDPTR,#DDB
MOVCA,@A+DPTR;
送段吗
MOVP0,A
MOVA,10H
ANLP1,A
RLA
MOV10H,A
INC11H
JBACC.4,TK1
MOV10H,#0FEH
MOV11H,#30H
TK1:
DEC13H;
健扫描延时
JNB04H,T0K1;
1S时间没到,直接返回
CLR04H
DEC43H
DEC41H
DEC42H
MOVA,43H
JNZT02
SETB05H
T02:
T0K1:
POPPSW
POP00H
POPACC
RETI
DDB:
DB0C0H,0F9H,0A4H,0B0H,99H;
段码表
DB92H,82H,0F8H,80H,90H;
0--9
DB88H,83H,0C6H,0A1H,86H,8EH,0FFH;
E,-,n,灭=16
T10MS:
MOVR2,#2;
10MS延时
SS2:
MOVR3,#200
SS1:
DJNZR3,SS1
DJNZR2,SS2