资源描述
- -
长江学院课程设计报告
课程设计题目:交通信号灯控制系统
制作设计
2011年 06月 06日
单片机控制交通灯控制系统设计
摘要
十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本设计是根据我所学习的单片机课程,按照大纲要求对我进展的一次课程检验,是进展单片机课程训练的必要任务,也对我们掌握单片机应用有很大的帮助。掌握单片机技术是一门不可或缺的技术,对我将来的工作以及生活和学习都有很密切的联系。当今世界的开展是以科学技术为根底的,微控技术在生产中所占的比重也越来越大。单片机的出现是近代计算机技术开展史上的一个重要里程碑。近年来,随着电子技术和微机计算机的迅速开展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。
目 录
1.引言................................................................................................4
2.原件型号及参数............................................................................5
2.1 MSC-51芯片简介 ….................................................................5
2.2双色发光二极管…....................................................................5
2.3双色灯与数码显示的对应关系………………..……………….....5
2.4交通灯的状态………………...……………………………….....6
2.5硬件连线……………………………………..……………….....6
2.68279使用简介................................................................................6
3 CAD电路原理图与说明....................................................................84件设计流程图与源程序清单............................................................9
5实验心得与体会...............................................................................20
6参考文献...........................................................................................21
1引言
当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。大多红绿灯由红绿黄三色圆形投光器组成:“红〞灯表示“停顿〞,“黄〞灯表示“注意〞,“绿〞灯表示“通行〞。本电路设计了一个简易的交通灯控制系统,利用51单片机的定时器产生秒信号,控制十字路口的红绿黄灯交替点亮和熄灭,并且用4只LED数码管显示十字路口两个方向的剩余时间。并运用按键设置两个方向的通行时间〔绿灯点亮的时间〕,使系统的工作符合一般交通灯控制要求。
2元器件的型号及参数
2.1 MSC-51芯片简介
AT89S52是MCS-51系列单片机的典型产品,我们以这一代表性的机型进展系统的讲解。AT89S52单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:
2.2双色发光二极管
双色发光二极管是将一个红色LED管芯和一个绿色LED管芯封装在一起、公用负端的一个集成器件。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。实验中,采用4只双色发光二极管〔DLED)分别模拟安装在东、西、南、北4个路口上的4只交通灯,每只双色发光二极管由74LS240反向驱动器驱动,74LS240输入控制端为DR和DG,分别控制DLED红灯和黄灯的工作。具体控制如下:
发光二极管的控制: R 0 G 1 红色
R 1 G 0 绿色
R 0 G 0 黄色
R 1 G 1 不发光
2.3双色灯与数码管显示的对应关系
3号数码管〔DR4〕 北
2号数码管〔DR3〕 西
1号数码管〔DR2〕 南
0号数码管〔DR1〕 东
2.4交通灯的状态
〔1〕正常状态:
状态
数值
持续时间
工作状况
1
01101010(5AH)
20秒
东西红灯南北绿灯
2
00001010(0AH)
1秒
东西红灯南北黄灯闪烁
3
10100110 (A5H)
20秒
东西绿灯南北红灯
4
00000110(05H)
1秒
南北红灯东西黄灯闪烁
〔2〕紧急状态
状态
数值
持续时间
工作状况
1
00001111(OFH)
10秒
东西南北全部红灯
2.5硬件连线
〔1〕采用P1口输出,P1.0~P1.7分别与DG1,DR1,DG2,DR2,DG3,DR3,DG4,DR4相连;
〔2〕P3.2和P3.3分别与按键开关K1、K2相连,K1的优先级高于K2;
〔3〕在爱迪克实验教学机上,数码管和8279部已经连接好,不需再连线。
2.6 8279使用简介
8279可按其功能分为:键盘功能块;显示功能块;控制功能块;与CPU接口功能块控制功能块包括控制和定时存放器,定时和控制,扫描计数器三局部。
它主要用来控制键盘和显示功能块工作.控制和定时存放器:用于存贮来自CPU的编程命令,CPU对8279编程以确定键盘与显示器工作方式和其它工作条件时,先把命令控制数据放到数据总线上,然后使A0=1,WR=0CS=0,并在WR上升沿把命令键存在控制和定时存放器中,并经译码,建立适当的功能.
定时和控制:它含根本的定时计数器,第一个计数器是一个分频系数为2-31的前置定时器,分频系数可由程序预置,使部频率为100KHz,从而能给出5.1ms键盘扫描时间和10.3ms反跳时间,其它计数器将此根本频率分频后,提供适当的按键扫描.行扫描.键盘阵列扫描.以及显示器扫描次数.
本图片为8279引脚图
[1]
8279 在键盘工作方式时,可设置为双键互锁方式和 N 键循回方式。
双键互锁方式:假设有两个或多个键同时按下时,不管按键先后顺序如何,只能识别最后一个被释放的键,并把该键值送入FIFO RAM 中。
N 键循回方式:一次按下任意个键均可被识别,按键值按扫描次序被送入 FIFO RAM 中。
2.5.2显示方式
显示功能块包括:显示存放器,16X8显示RAM,显示地址存放器.
显示RAM和显示存放器8279部有16X8的显示RAM,通过显示存放器和两个四位端口0UT A0-3,0UT BO-3来刷新显示,显示器可以是白炽灯,也可以是8段数码管,显示RAM可以是16X8的形式,也可以构成两个16x4 的RAM形式,显示RAM可由CPU进展读写,被读写的RAM字节地址由显示地址存放器指示.
显示地址存放器保存当前CPU读或写的那个RAM地址,以及正显示着的那两个4位半字节的地址,读写地址由CPU命令编程,也可置为每次读写后地址自动加1的工作方式,在设置了正确的工作方式后,显示RAM可直接由CPU读出,半字节A和半字节B地址自动由8279更新,以适应由CPU送入的数据,A和B半字节可独立送入,也可作为一个字送入,随CPU所设置的工作方式而定
3 CAD电路原理图与说明
4软件设计流程图与源程序清单及注解
4.1主程序流程图
主程序
程序注入
返回
4.2源程序清单及注解
Z8279 EQU 08701H ;8279 状态/命令口地址
D8279 EQU 08700H ;8279 数据口地址
LEDMOD EQU 00H ;左边输入八位字符显示
;外部译码键扫描方式,双键互锁
LEDFEQ EQU 2FH ;扫描速率
LEDCLS EQU 0C1H ;去除显示 RAM
LEDWR0 EQU 80H ;设定的将要写入的显示RAM地址
ORG 0000H
AJMP START
ORG 0003H ;INT 0 中断入口地址
LJMP INT_0
ORG 000BH ;INT T0 入口地址
AJMP INT_T0
ORG 001BH ;INT T1 入口地址
AJMP INT_T1
ORG 0040H
START:
MOV SP,#60H
LCALL INIT8279 ;初始化8279
MOV R6,#00H
MOV R1,#0H ;南北
MOV R2,#0H ;东西
MOV 32h,#10
MOV 33h,#8
MOV TMOD, #10H ;置T1为方式1
SETB EX0 ;INT 0 中断有效
SETB IT0
SETB PX0
MOV TMOD,#11H
MOV TL0,#00H ;50 mS 的时间常数
MOV TH0,#04CH
MOV TL1,#00H ;50 mS 的时间常数
MOV TH1,#04CH
MOV R0,#20H
SETB TR0
SETB TF1
SETB ET0
SETB TR1
SETB ET1
SETB EA ;开总中断
LCALL ST0 ;置初始状态南北东西全红
WAIT0: MOV A,R1
MOV R2,A
MOV R3,A
LCALL DISPLAY
CJNE R1,#00,WAIT0
CIRCLE: LCALL ST1
WAIT1: MOV A,R1
MOV R2,A
LCALL DISPLAY
CJNE R1,#02,WAIT1
FLASH:
LCALL ST2
MOV A,R1
MOV R2,A
LCALL DISPLAY
CJNE R1,#00,flash
LCALL ST3
WAIT3: MOV A,R1
MOV R3,A
LCALL DISPLAY
CJNE r1,#02,WAIT3
FLASH1:
LCALL ST4
MOV A,R1
MOV R3,A
LCALL DISPLAY
CJNE R1,#00,FLASH1
LJMP CIRCLE
ST0:
MOV DPTR,#8300h
MOV a,#0FH ;东西南北全红
MOVX DPTR,a
MOV R1,#05
RET
ST1: MOV DPTR, #8300H ; 东西绿灯南北红灯
MOV A, 32h
MOV R1, A
MOV A, #5AH
MOVX DPTR, A
RET
ST2: MOV DPTR,#8300H
;绿灯闪3次
MOV A,#5FH
MOVX DPTR,A
LCALL DELAY ;调用延时
LCALL DELAY
LCALL DELAY
MOV A,#5AH
MOVX DPTR,A
LCALL DELAY ;调用延时
LCALL DELAY
LCALL DELAY
RET
ST3: MOV DPTR,#8300H ;南北绿灯东西红灯
MOV A,33h
MOV R1,A
MOV A,#0A5H
MOVX DPTR,A
RET
ST4: MOV DPTR,#8300H ;绿灯闪3次
MOV A,#0AFH
MOVX DPTR,A
LCALL DELAY ;调用延时
LCALL DELAY
LCALL DELAY
MOV A,#0A5H
MOVX DPTR,A
LCALL DELAY ;调用延时
LCALL DELAY
LCALL DELAY
RET
INT_0:
PUSH PSW ;保护现场
PUSH 2
PUSH 90H
CLR EX0
MOV P1, #0FH ;南北,东西都亮红灯
MOV R2, #100 ;延时10秒
LCALL DISPLAY
SETB EX0
POP 90H ;恢复现场
POP 2
POP PSW
RETI
DELAY: ;延时子程序
PUSH 8 ;保存现场
PUSH 9
MOV 8,#0H
DELAY1: MOV 9,#0H
DJNZ 9,$
DJNZ 8,DELAY1
POP 9 ;恢复现场
POP 8
RET
INIT8279: ;8279初始化子程序
PUSH DPH ;保存现场
PUSH DPL
PUSH ACC
LCALL DELAY ;延时
MOV DPTR ,#Z8279
MOV A,#LEDMOD ;置8279工作方式
MOVX DPTR,A
MOV A,#LEDFEQ ;置键盘扫描速率
MOVX DPTR,A
MOV A,#LEDCLS ;去除 LED 显示
MOVX DPTR,A
LCALL DELAY ;延时
POP ACC ;恢复现场
POP DPL
POP DPH
RET
;显示字符子程序
;输入: R4,位置 R5,值
DISLED: PUSH DPH ;保存现场
PUSH DPL
PUSH ACC
MOV A,#LEDWR0 ;置显示起始地址
ADD A,R4 ;加位置偏移量
MOV DPTR,#Z8279
MOVX DPTR,A ;设定显示位置
MOV DPTR,#LEDSEG ;置显示常数表起始位置
MOV A,R5
MOVC A,A+DPTR ;查表
MOV DPTR,#D8279
MOVX DPTR,A ;显示数据
POP ACC ;恢复现场
POP DPL
POP DPH
RET
INT_T0: ;INT_T1中断效劳子程序
PUSH DPH ;保护现场
PUSH DPL
PUSH ACC
PUSH PSW
CLR TR0
MOV TL0,#00H ;50mS 定时常数
MOV TH0,#4CH
SETB TR0
LCALL KEYCAN ;8279键盘扫描
MOV A, R6
CJNE R6,#00H,LOOP9
SJMP EXIT0
LOOP9: CJNE A,#30H,NEXT ;判断是否南北绿灯时间重置
CLR TR1
LOOP8: MOV R6,#00H ;加计数子程序
LCALL KEYCAN
MOV A,R6
CJNE A,#31H, LOOP
MOV A,32H
ADD A,#01
DA A
MOV 32H, A
MOV R2, A
LCALL DISPLAY
SJMP LOOP8
LOOP: CJNE A,#32H,EXIT1
MOV A,32H
SUBB A,#01 ;减计数子程序
MOV 32H,A
MOV R2,A
LCALL DISPLAY
SJMP LOOP8
EXIT1: CJNE A,#35H,LOOP8
SJMP EXIT0
NEXT: CJNE A,#37H,EXIT0 ;判断是否东西绿灯时间重置
CLR TR1
LOOP7: MOV R6,#00H
LCALL KEYCAN
MOV A, R6
CJNE A,#31H,LOOP1
MOV A,33H ;加计数子程序
ADD A,#01
DA A
MOV 33H,A
MOV R3,A
LCALL DISPLAY
SJMP LOOP7
LOOP1: CJNE A,#32H,EXIT2
MOV A,33H ;减计数子程序
SUBB A,#01
MOV 33H,A
MOV R3,A
LCALL DISPLAY
SJMP LOOP7
EXIT2: CJNE A,#35H, LOOP7
EXIT0: SETB TR1
MOV R6, #00
POP PSW ;恢复现场
POP ACC
POP DPL
POP DPH
RETI ;中断返回
INT_T1: ;INT_T1中断效劳子程序
PUSH DPH ;保护现场
PUSH DPL
PUSH ACC
PUSH PSW
CLR TR1
MOV TL1,#00H ;50mS 定时常数
MOV TH1,#4CH
SETB TR1
DJNZ R0,EXIT ;判断是否到1000毫秒
MOV R0,#20 ; 判断是否到1秒
DEC R1
EXIT: POP PSW ;恢复现场
POP ACC
POP DPL
POP DPH
RETI ;中断返回
DISPLAY: MOV B, #10
MOV A, R2
DIV AB ;除法指令
MOV R4,#1
MOV R5,A ;商放在高位
LCALL DISLED ;显示秒高位
MOV R4,#0
MOV R5,B ;余数放在低位
LCALL DISLED ;显示秒低位
MOV B, #10
MOV A, R3
DIV AB
MOV R4,#7
MOV R5,A ;商放在高位
LCALL DISLED ;显示秒高位
MOV R4,#6
MOV R5,B ;余数放在低位
LCALL DISLED ;显示秒低位
RET
KEYCAN: PUSH DPH ;保存现场
PUSH DPL
PUSH PSW
MOV DPTR,#Z8279
MOVX A,DPTR ;读8279状态
ANL A,#07H ;屏蔽D7-D3
JNZ RD_KB ;判断是否有键输入
MOV A,#0H ;置标志(无键输入)
SJMP EXIT3
RD_KB: MOV A,#40h ;读 FIFO RAM 命令
MOVX DPTR,A
MOV DPTR,#D8279
MOVX A,DPTR ;读键
ANL A,#3FH ;屏蔽 SHIFT 和 CTRL 键
MOV DPTR,#KEYCODE ;键码表起始地址
MOVC A,A+DPTR ;查表
MOV R6,A
EXIT3: POP PSW ;恢复现场
POP DPL
POP DPH
RET
LEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4,5,6,7'
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;'8,9,A,B,C,D,E,F'
DB 6DH,40H,08H,00H,59H,0FH,76H ;'U,-,_, ,I,O,P, '
KEYCODE:DB 30H,31H,32H,33H,34H,35H,36H,37H ;'1,2,Q,W,A,S,+,Z'
DB 38H,39H,3AH,3BH,3CH,3DH,3EH,3FH ;'3,4,E,R,D,F,X,C'
END
5实验心得与体会
本次实习设计了交通灯控制系统,设计了一个简易的交通灯控制系统,利用51单片机的定时器产生秒信号,控制十字路口的红绿黄灯交替点亮和熄灭,并且用4只LED数码管显示十字路口两个方向的剩余时间。并运用按键设置两个方向的通行时间〔绿灯点亮的时间〕和暂缓通行时间〔黄灯点亮的时间〕,使系统的工作符合一般交通灯控制要求。
通过这次单片机实习,让我们明白了一个单片机开发系统的整个流程,使我和组成员得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我们在单片机的根本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧〔特别是C语言〕的掌握方面都能向前迈了一大步,以后遇到单片机的系统开发,可以以此为依据,为单片机的开发扫除一点障碍,同时也让我接触到和初步了解了一些我以前没有遇到过的软件。
总之,学校安排这次实习,让我和组员受益匪浅!
6 参考文献
1. 伟人编著.单片微型计算机原理及其应用.:清华大学,1989
2. 何立民编著.单片机应用系统设计.:航空航天大学,1995
3.王建校等编著.51系列单片机及C51程序设计.,科学,2002
4.维成 加国 编著 单片机原理与应用及C51程序设计 :清华大学,2006.8
5.余锡存,编著.单片机微机原理及接口技术[M].:电子科技,2000.12
6.付家才 编著 单片机控制工程实践技术 :化学工业
7.德营 志霞. 单片机原理及接口技术,中国水利水电 , 2006
8.广弟 朱月秀.单片机根底,航空航天大学 ,2007.6
- word.zl
展开阅读全文