微机原理课设-带数码管显示的交通灯模拟控制系统设计
- 格式:doc
- 大小:1.59 MB
- 文档页数:17
成绩南京工程学院课程设计说明书(论文)题目带数码管显示的交通灯模拟控制系统设计课程名称微机原理及应用院系专业班级学生姓名学号设计地点指导教师设计起止时间:2013年12月23日至2017年12月27日目录一、方案说明 (2)1、硬件设计 (2)1.1、硬件接线图 (2)1.2、主机接线说明 (3)2、软件设计 (3)2.1、程序流程图 (4)二.源程序清单 (5)三、调试现象 (10)四、心得体会 (12)1.课程设计应达到的目的通过课程设计加深理解课堂教学内容,掌握微机原理的基本应用方法。
通过实验熟悉微机基本接口芯片的外型、引脚、编程结构,掌握汇编语言程序设计和微机基本接口电路的设计、应用方法,做到理论联系实际。
2.课程设计题目及要求题目:交通信号灯模拟控制系统的设计利用STAR ES598PCI实验仪的硬件资源设计一个“带时间显示的交通信号灯模拟控制系统”。
所有输入该装置信号采用STAR ES598PCI实验仪上的状态输入开关,东西、南北方向的红绿黄灯采用实验仪上的LED发光二极管模拟,东西、南北方向的信号灯变化,通行倒计时时间用数码管显示。
1、功能要求:1)假设在一个A道(东西方向)和B道(南北方向)交叉的十字路口安装有自动信号灯。
当A道和B道均有车辆要求通过时,A道和B道轮流放行。
A道放行10秒钟,B道再放行10秒钟,依次轮流。
绿灯转换红灯前黄灯亮4秒钟。
2)夜间工作时A道(东西方向)和B道(南北方向)的黄灯闪烁,绿灯和红灯不亮(实验时用开关K8控制)。
3)开关K8=0,则工作在以上功能(1);开关K8=1,则工作在以上功能(2)。
2、难度要求:1)基本要求:采用8255 PA口输出控制信号灯,8255 PC0输入K8控制开关信号,用循环程序软件定时实现功能要求;(60分)2)中级要求:采用8255 PA口输出控制信号灯,8255 PC0输入K8控制开关信号,用8253硬件定时,软件查询方式实现功能要求;(80分)3)高级要求:在中级要求的基础上,增加用8255 PB口动LED数码显示器显示绿灯倒计时秒数,从9倒计数到0,倒计数到4时黄灯亮。
(100分)一、设计说明硬件方面:8253产生1HZ的方波,脉冲到8259的IR1端,产生中断,调中断服务子程序。
在加入紧急车道后,单脉冲()连到8259的IRO端,产生一个高级的中断请求信号。
软件方面:主程序先对各个硬件初始化,在开CPU中断,然后空操作,等待中断。
执行低级中断(IR1)时,8255的PA口负责选数码管,PB口负责显示数字,用查表法可查到0~9的数码管编码。
采用循环扫描方法,人眼即可看到连续的二位数。
当倒计时减到零时,对红绿灯取反。
若手动上下拨动单脉冲()一次,则产生一个高级中断(IR0),程序转而执行此中断处理程序,处理完后返回继续执行低级中断(IR1)。
1、硬件设计1.1、硬件接线图1.2连线说明:C5区:CS、A0、A1 ————A3区:CS3、A0、A1C5区:OUT0 ————C5区:CLK1C5区:GATE0、GATE1 ————C1区:VCCC5区:CLK0 ————B2区:2MC5区:OUT1 ————B3区:IR1B3区:CS、A0 ————A3区:CS2、A0B3区:INT、INTA ————ES8688:INTR、INTAB3区:IR0 ————B2区:单脉冲()B4区:CS、A0、A1 ————A3区:CS1、A0、A1B4区:PA口、PB口————G5区:C口、B口B4区:PC口————G6区:JP65(LED灯)1.3实物连线图2、软件设计1、程序流程图8255初始化红灯亮延时1秒红灯灭CX=0?8253初始化给8253赋初值调8259初始化程序调写中断向量表子程序红绿灯初始化(东西方向通行)写入计数值(十六进制)CPU 开中断是否有中断?(IR 1,低级中断)计数值减1调整循环值入栈保护选高位数码管查表并显示高位数值调1ms 延时高位管熄灭选低位数码管查表并显示低位数值调1ms 延时低位管熄灭SCAN=0?计数值是否到零?红绿灯取反并输出中断服务子程序循环值出栈返回YYYYNNNN循环4次循环385次2.设计思路①8255交通信号灯的灯光变化和数码显示通过8255实现控制。
8255是一种具有多种功能的可编程并行通信接口电路芯片。
芯片包括A、B、C三个数据端口、A 组控制部件、B组控制部件、读写逻辑控制电路、数据总线缓冲器。
8255有三种工作方式,其中方式0是基本输入/输出方式,适用于无条件传送和查询方式的接口电路。
本设计中,PA口用于输出信号控制灯光的变化(D6D5=00,D4=0),PB口用于输出信号控制数码管的显示(D2=0,D1=0),PC0用于输入K8的控制开关信号,PC1用于输入用于硬件延时的方波信号(D0=1)。
PC7用于输出控制数码管工作/不工作的信号(D3=0)。
故写入方式控制字为10000001B=81H。
8255A输入/输出信号接线方案如下表所示:8255-PB输出方式PCH输出方式8255-PA输出方式PCL输入方式引脚输出信号引脚输出信号引脚输出信号引脚输入信号PB7 PB7—DP段PB6—G段PB5—F段PB4—E段PB3—D段PB2—C段PB1—B段PB0—A段PC7数码管的位码选择PC7=0,则该位选中PA7 不用(灭)PB6 PA6 南北红灯PB5 PA5 南北黄灯PB4 PA4 南北绿灯PB3 PA3 不用(灭)PC3PB2 PA2 东西红灯PC2PB1 PA1 东西黄灯PC1 8253-OUT0PB0 PA0 东西绿灯PC0 开关K8输入a.灯光显示:送低电平则灯亮,送高电平则灯灭。
东西绿灯,南北红灯:PA0~PA7应输出01111101B=7DH东西闪灯,南北红灯:黄灯亮,红灯亮PA0~PA7应输出10111101B=0BDH黄灯灭,红灯亮PA0~PA7应输出11111101B=0FDH东西红灯,南北绿灯:PA0~PA7应输出11010111B=0D7H东西红灯,南北黄闪:红灯亮,黄灯亮PA0~PA7应输出11011011B=0DBH红灯亮,黄灯灭PA0~PA7应输出11011111B=0DFH②8253交通信号灯亮、灭的时间及数码管的倒计时间隔都通过8253控制。
8253可编程定时/计数器是Intel公司生产的通用外围接口芯片,它有三个独立的16位计数器,计数范围为0~2MHz。
8253有6种工作方式,其中方式三是方波发生器方式。
本设计中选用通道0,CLK0接1953HZ的时钟信号,GATE0接高电平VCC,OUT0接8255的PC1。
因为需要产生周期为0.5s的方波,即产生2Hz的方波而固有频率为1953Hz,故分频系数N=1953/2=976。
由于选用了通道0(SC1 SC0=00),工作在方式3(M2 M1 M0=011),对计数器进行读写/操作时,先送低8位,再送高8位(RW1 RW0=11),计数器的数值采用10进制(BCD=1),故初始化时命令字为00110111B=37H。
4、运行情况和结论(1)实际情况运行时的图片(2)结论①本设计基本完成了任务书中所要求的功能。
a.白天模式:①东西方向和南北方向各放行10秒。
绿灯转红灯前黄灯闪烁4秒。
②LED 数码显示器显示倒数计时,从9倒数到0;倒数到4时黄灯亮。
②有待改进之处:a.夜间模式能在1s内切换到白天模式。
但在白天模式必须等一个循环结束后才能切换。
b.1s延时程序不精确,最大存在0.5s的误差。
C.东西南北放行时间不准确,数码管显示时间存在误差5、系统调试中的问题和解决办法遇到的问题:不能立刻从白天模式切换到夜晚模式解决的方法:修改了代码,在白天每次灯闪烁的后面判断是否切换,如果切换就跳到黄灯循环模式,由于程序长度限制,需要每隔一段设置一个中间点jmp.二.源程序清单.MODEL TINYCOM_ADDR EQU 0B003HT0_ADDR EQU 0B000HT1_ADDR EQU 0B001HT2_ADDR EQU 0B002HCOM_ADD EQU 0F003HPA_ADD EQU 0F000HPB_ADD EQU 0F001HPC_ADD EQU 0F002H.STACK 300.DATALED_DATA DB 10111101BDB 11101011BDB 11011011BDB 10111110BDB 00111011BDB 10111011BSHUMA DB 01111111BDB 00000110BDB 01011011BDB 01001111BDB 01100110BDB 01101101BDB 01111101BDB 00000111BDB 01111111BCNT0 DB ?CNT3 DB ?.CODESTART: MOV AX,@DATAMOV DS,AXMOV DX,COM_ADDMOV AL,88HOUT DX,ALMOV DX,COM_ADDRMOV AL,0B0HOUT DX,ALMOV DX,PC_ADDIN AL,DXAND AL,0FEHOR AL,01HOUT DX,ALMOV CNT0,0MOV CNT3,0LP: CALL DL500msMOV DX,PC_ADDIN AL,DXTEST AL,80HJZ K7JMP JMP1 K7: MOV CH,CNT3CMP CH,0JZ RRSRRM: MOV AL,5XLATMOV DX,PA_ADDOUT DX,ALJMP LAST0RRS: MOV AL,4XLATMOV DX,PA_ADDOUT DX,ALCALL DL500msMOV AL,5XLATMOV DX,PA_ADDOUT DX,ALLAST0: MOV DX,PB_ADDMOV AL,00HOUT DX,ALXOR CH,0FFHMOV CNT3,CHMOV CNT0,0JMP LPJMP1: MOV DX,PC_ADDIN AL,DXTEST AL,20HJNZ J MP2MOV DX,PC_ADDIN AL,DXTEST AL,40HJNZ K5JMP JMP3K5: MOV AL,1XLATMOV DX,PA_ADDOUT DX,ALMOV DX,PB_ADDMOV AL,00HOUT DX,ALMOV CNT0,0MOV CNT3,0JMP LPJMP2: MOV DX,PC_ADD IN AL,DXTEST AL,40HJZ K6JMP JMP3K6: MOV AL,3XLATMOV DX,PA_ADDOUT DX,ALMOV DX,PB_ADDMOV AL,00HOUT DX,ALMOV CNT0,0MOV CNT3,0JMP LPLP1: JMP LPJMP3: MOV CNT3,0MOV CH,CNT0SHR CH,1LEA BX,LED_DataCMP CH,0JZ RYCMP CH,8JB GRCMP CH,8JZ YRJMP RGRG: MOV AL,3XLATMOV DX,PA_ADDOUT DX,ALPUSH BXLEA BX,SHUMAMOV AL,14SUB AL,CHXLATMOV DX,PB_ADDOUT DX,ALPOP BXLAST: INC CNT0CMP CNT0,28JNZ LP1MOV CNT0,0JMP LP1RY: MOV AL,0XLATMOV DX,PA_ADDOUT DX,ALMOV DX,PB_ADDMOV AL,00HOUT DX,ALJMP LASTGR: MOV AL,1XLATMOV DX,PA_ADDOUT DX,ALPUSH BXLEA BX,SHUMAMOV DX,PB_ADDMOV AL,8SUB AL,CHXLATMOV DX,PB_ADDOUT DX,ALPOP BXJMP LASTYR: MOV AL,2XLATMOV DX,PA_ADDOUT DX,ALMOV DX,PB_ADDMOV AL,00HOUT DX,ALJMP LASTDL500ms PROC NEARMOV DX,T2_ADDRMOV AL,24HOUT DX,ALMOV AL,0F4HOUT DX,ALDELAY: MOV DX,PC_ADDIN AL,DXTEST AL,10HJZ DELAYRETDL500ms ENDPEND START三、调试现象1.调试现象程序调试时,交通信号灯系统初始状态为所有红灯闪烁4次,数码管此时不显示;系统初始状态之后东西向车行道绿灯亮,南北向车道红灯亮;当数码管数字减为0时,东西向、南北向红绿灯交换亮,即南北向车行道绿灯亮,东西向车道红灯亮,数码管数字减为0秒后,红绿灯再次交换,如此循环重复。