《微机原理与接口技术》课程设计-交通灯

合集下载

微机原理课程设计交通信号灯

微机原理课程设计交通信号灯

设计任务及要求交通信号灯的亮灭规律。

设有一个十字路口,1、3位南北方向,2、4位东西方向。

初态为4个红灯全亮,禁止通行;随后交通灯亮灭规律按下列步骤进行:(1)1、3路口绿灯亮,2、4路口红灯亮;(2)延时10秒后,1、3路口绿灯灭;(3)1、3路口黄灯闪烁(闪烁3次);(4)2、4路口绿灯亮,同时1、3路口红灯亮;(5)延时10秒后,2、4路口绿灯灭;(6)2、4路口黄灯闪烁(闪烁3次);(7)转向(1)循环执行。

要求:1.通过8255A并口来控制LED发光二极管的亮灭,A口控制红灯,B口控制黄灯,C口控制绿灯。

红灯(RLED),黄灯(YLED)和绿灯(GLED)分别接在8255的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4路口的红灯,B,C口类推。

2.发光二极管通过电阻接+5V,输出为0则亮,输出为1则灭。

3.通过软件延时,设CPU晶振频率为8M。

4.闪烁功能采用灯亮1秒后马上熄灭来实现。

硬件连接图(可打印)、设计说明8255共有40个引脚,其功能分别如下:D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。

RD:读信号线,当这个输入引脚为低电平时,即RD=0且CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。

CS:芯片选择信号线,当这个输入引脚为低电平时,即CS=0时,表示芯片被选中,允许8255与CPU进行通讯;CS=1时,8255无法与CPU做数据传输。

PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。

PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。

PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。

《微机原理与接口技术》课程设计-交通灯

《微机原理与接口技术》课程设计-交通灯

信息工程系计算机科学与技术12计本1班1214110214黄 福朱 茜 2015年06月29日院 系: 专 业: 年级班级: 学 号: 姓 名: 指导教师: 设计日期:目录一.课程设计目的 (3)二.课程设计任务 (3)三.总体设计方案 (3)五.程序设计流程图 (4)六. 程序连接图 (5)七.程序清单 (5)八.实验结果 (8)九.课程设计总结和体会 (8)一.课程设计目的用汇编语言和微机原理实验箱完成实现双方向交通信号灯控制系统,以达到熟练运用汇编语言编程以及实验箱上各个芯片的灵活运用。

⒈了解交通灯管理的基本工作原理⒉熟悉8253定时计数器的工作方式和编程应用⒊熟悉8255A并行接口的工作方式和编程应用二.课程设计任务本次课程设计的内容为双方向交通信号灯的控制和管理。

具体要求如下:1.东西方向车辆放行20秒钟。

即东西方向的绿灯和南北方向的红灯同时点亮25秒钟和黄灯点亮3秒钟。

2.南北方向车辆放行20秒钟后,转为南北方向的黄灯点亮3秒钟,以警示将切换红绿灯。

此时东西方向仍维持红灯点亮。

3.循环重复执行1和2两步骤。

三.总体设计方案1、用实验系统8255A实现对信号灯的控制(B端口),A端口的PA6、PA7口用来和8253共同控制信号灯点亮的时间。

2、实验中,8255选用(10010000)方式选择字,A组工作0方式,A端口输入,PC4-PC7输出,B组0方式,B端口输出,PC3-PC0输出3、实验中,8253采用两个计数器级联的方式达到定时的效果,8253计数器0的CLK0输入1MHZ的时钟脉冲,工作在模式3即方波发生器,理论设计OUT0 输出周期为0.01S的方波,则计数器0的初值为10000;OUT0输出的方波分别作为计数器1、计数器2的CLK1和CLK2的输入时钟脉冲,计数器1和计数器2工作方式为模式1,计数器1的初值为2500,即OUT1输出25秒,控制红绿灯的时间;计数器2初值为300,即OUT2输出3秒,控制黄灯的时间。

《微机原理与接口技术》课程设计实验报告-交通灯控制功能设计

《微机原理与接口技术》课程设计实验报告-交通灯控制功能设计
7
微机课程设计——交通灯控制系统
中断子程序模块是通过扩充中断源实现的,主要是通过设置 8259 的工作模 式,开放 TR1 和 TR0 的中断,按上开关 K 后,TR0 就发生中断,在 TR0 中断没有 触发的情况下,从 OU1 口输出一个上升沿脉冲,TR1 就中断一次, 程序如下所示:
QUERY: MOV DX,MY8259_OCW3 MOV AL,0CH OUT DX,AL IN AL,DX ;读出查询字 ;判断中断是否已响应 ; 没有响应则继续查询 ; 向 8259 的 OCW3 发送查询命令
《微机原理与接口技术》 课程设计实验报告
题目:交通灯控制功能设计
指导老师:
专业:
班级:
目录
微机课程设计——交通灯控制系统
ห้องสมุดไป่ตู้
一、设计思想和实施方案论述,硬件原理图及分析 1.1、课程设计名称 1.2、课程设计要求 1.3、课程设计目的 二、设计思想和实施方案论述,硬件原理图及分析 2.1、设计思想和实施方案 2.2、硬件原理图 三、典型模块以及典型编程技巧分析 3.1、8086 典型模块分析 3.2、编程技巧分析 四、设计中遇到的问题及解决方法 五、程序清单和程序注释,相关流程图 5.1 程序清单和注释 5.2、实验室及流程图 六、收获与体会 七、参考文献
微机课程设计——交通灯控制系统
MOV OUT 器输出 1HZ 的方波
AL,2 DX,AL ;1.041667MHZ/2000/1000=1HZ, 即计数
数码管的显示是通过调用显示函数实现的, 通过设置 8255 的工作模式, 选择数码管的高位工作, 然后将计数的高位送到数码管, 再选择数码管的低位工 作,然后将计数的低位送到数码管,在 1s 钟内多次扫描就可以消除闪烁,从而 达到理想的计数效果,它的程序如下所示:

微机原理与接口技术交通灯设计

微机原理与接口技术交通灯设计

《微机原理和接口技术》课程设计姓名:*******班级学号:*******任课老师:*******一、实验课题《交通信号灯控制系统》二、实验目的在熟悉8086/8088指令系统的基础上,掌握8086/8088汇编语言程序设计方法;掌握8259可编程中断控制器,8255可编程并行接口、8253可编程定时/计数器的使用三、实验要求1、模拟交通信号灯(分A、B两组)的红、黄、绿灯(实验箱中的发光二极管)交替变换的过程。

2、在实验箱的LED显示器上显示当前剩余时间(每秒更新一次,倒计时)。

A组、B组之间时间关系如下:A组B组绿灯26秒红灯30秒四、 实验设备机一台、PC实验箱一个(8086、8259、8255、8253芯片及相关电路、发光二极管六只)及导线若干。

五、 设计 1、 设计思路(1)分析问题——各端口使用——代码实现(2)具体使用(8255的B 口做灯信号的输出,A 口做位选码的输出,C 口做LED 的输出。

)(3)实验内容1、系统中,8259采用初始化命令字ICW1、ICW2、ICW4和操作命令字OCW1,允许内部中断IRQ0和外部中断IRQ1 2、系统中,8255选用(10000000)方式选择字,A 组工作0方式,A 端口输出,PC3-PC7输出,B 组0方式,B 端口输出,PC3-PC0输出3、系统中,8253选用(00110101)选择零号端口读写两个字节,工作方式2(频率发生器)二十进制2、程序流程黄灯 4秒 红灯 30秒 绿灯 26秒 黄灯 4秒3、电路原理图4、初始化8259 初始化8255设置中断向量显示时间启动计数器开始设置交通灯初态结束初始化8253STACK ENDSDATA SEGMENTTIMER DB 00H,30H;IRQ0中断次数,通行剩余时间(A道30秒,B道30秒)初始设为B道通行TAB DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;七段码,用于显示时间,顺序不可调换DISOFF DB 00H,00H,00H,00H;LED显示器缓冲区,数字(剩余时间)的个位和十位ROD DB 00H ;当前道路通行状态(00:为A通行道;01为B通行)LIGHT DB 0D7H ;信号灯的输出信号(11010111)KK1 DB 00H ;暂停开关KK1计数LIGHTZT DB 00HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,0000H ;数据段清零MOV DS,AX;填写中断向量表MOV AX,OFFSET IRQ0 ;提取IRQ0的中断处理程序的偏移地址ADD AX,2000H ;加载时IP=2000H(绝对地址) MOV SI,0020H ;中断号0的矢量地址为(20H-23H) MOV [SI],AX ;填写中断处理程序的偏移地址写进中断向量表MOV AX,0000HMOV SI,0022HMOV [SI],AX ;填写中断处理程序的段地址写进中断向量表MOV AX,OFFSET IRQ1ADD AX,2000HMOV SI,0024H ;中断号1的矢量地址为(24H-27H) MOV [SI],AXMOV AX,0000HMOV SI,0026HMOV [SI],AX;加载数据段MOV AX,DATAMOV DS,AX;8259初始化MOV AL,13H ;8259初始化ICW1(00010011)单片方式需写ICW4OUT 20H,AL ;端地址A0=0MOV AL,08H ;ICW2(00001000)中断向量号的高五位(000001)OUT 21H,ALMOV Al,01H ;ICW4(00000001)一般全嵌套,非缓冲,非自动中断结束,十六位机系统OUT 21H,AL ;特征位:D7-D5=000MOV AL,0FCH ;OCWl允许IRQ0、IRQ1中断OUT 21H,AL;8255初始化MOV AL,80H ;(10000000)方式选择字,A组工作0方式,A端口输出,PC3-PC7输出,B组0方式,B端口输出,PC3-PC0输出OUT 63H,AL;初始化8253MOV AL,35H ;(00110101)选择零号端口读写两个字节,工作方式2(频率发生器)二十进制OUT 43H,ALMOV AX,380 ;定时(频率乘以时间)OUT 40H,AL ;低字节MOV AL,AHOUT 40H,AL ;高字节STI ;开中断(允许CPU接收中断)M:CALL DISP2CMP KK1,1JZ ZT ;调用时间显示函数CMP TIMER+1,04H ;判断是否到了最后4秒,到了则跳转JZ R1CMP TIMER+1,00H ;判断通行时间是否结束,到了则跳转JZ R2JMP DISP1 ;如时间大于五秒,则直接按当前方式显示信号灯R1: CMP ROD,00H ;如到了最后五秒,则判断是A 道通行否? ROD=00H为A道JZ R12 ;如是A道通行,则改变状态R11:MOV LIGHT,7BH ;(01111110)改变为A道红,B道黄JMP DISP1 ;信号输出R12:MOV LIGHT,0B7H ;(10110111)改变为A道黄,B道红JMP DISP1R2: CMP ROD,00H ;改变通行状态JZ R22R21:MOV LIGHT,0D7H ;如果当前B道通行结束,则切换为A道MOV ROD,00HMOV TIMER+1,30H ;A道通行时间30秒JMP DISP1R22:MOV ROD,01H ;如果当前A道通行结束,则切换为B道ROD=01H为B道MOV LIGHT,7DHMOV TIMER+1,30HJMP DISP1 ;B道通行时间30秒ZT:JMP MDISP1: ;灯信号输出函数MOV AL,LIGHT ;将灯信号输出到8255的B口OUT 61H,ALSTIJMP MIRQ0:PUSH AX ;现场保护PUSH CXPUSHFMOV AL,TIMER ;取80次中断请求为一秒INC ALMOV TIMER,ALCMP AL40H ;1秒判断?JNE M1 ;不到则跳转MOV AL,00H ;毫秒数清零MOV TIMER,ALMOV AL,TIMER+1 ;剩余时间减1 SUB AL,01HDAS ;调整为压缩BCD码MOV TIMER+1,ALM1: MOV AL,20H ;中断复位OUT 20H,ALPOPFPOP CXPOP AXSTIIRETIRQ1: ;暂停(恢复)PUSH AXPUSHFMOV AL,KK1CMP AL,00H ;判断当前的状态:00为通行,01为暂停JNE M2INC AL ;改变当前状态MOV KK1,ALMOV AL,0FDH ;(11111101)关IRQ0中断,开IRQ1中断OUT 21H,ALMOV AL,LIGHTMOV LIGHTZT,AL;///////////////////////////////////////////////////////////MOV AL,77H ;(01110111)大、小道均为红灯OUT 61H,ALJMP M3M2: ;恢复MOV AL,00HMOV KK1,ALMOV AX,LIGHTZT;//////////////////////////////////////////////////////////////////OUT 61H,ALMOV AL,0FCH ;(11111100)开IRQ0、IRQ1中断OUT 21H,ALSTIM3:MOV AL,20HOUT 20H,ALPOPFPOP AXSTIIRETDISP2: ;时间显示函数MOV AL,TIMER+1 ;AL=30H AX=?30HAND AL,0FH ;AX=0000HMOV DISOFF+3,AL ;DISOFF+3=00HDISOFF DB 03H,00H,03H,00HMOV DISOFF+1,AL ;DISOFF+1=00HMOV AL,TIMER+1 ;AL=30HMOV CL,04H ;CL=04HSHR AL,CL ;AL=03HMOV DISOFF+2,AL ;DISOFF+2=03HMOV DISOFF,AL ;DISOFF=03HMOV SI,OFFSET DISOFF ;缓冲区的偏移地址MOV DL,0F7H ;(11110111)将位选码初值送DLMOV AL,DL ;AL=0F7HAGAIN:OUT 60H,AL ;从A口输出位选码MOV AL,[SI]MOV BX,OFFSET TAB ;七段码的偏移地址AX=0003H BX=TABAND AX,00FFHXLAT ;MOV AL,BX+[AX] ;将显示七段码送ALOUT 62H,AL ;将AL转换成七段码从B口输出CALL DALLY ;调用延时1ms子程序INC SI ;SI=SI+1MOV AL,DLTEST AL,01H ;4位显示完否?JZ M4ROR AL,01H ;DL循环右移一位MOV DL,ALJMP AGAINM4: RETDALLY: ;循环256次MOV CX,0010H ;延时子程序T1: MOV AX,0010HT2: DEC AXJNZ T2LOOP T1RETCODE E NDSEND START六、心得体会这周关于交通灯的设计是对我来说就是一次挑战,虽然说代码并非是我自己写的,可以说我是参考别人的,但是理解所有的设计代码我确实也花了不少时间,我除了要熟悉8259、8255、8253这些芯片,还得将它们合理的利用起来,由于之前对汇编知识的掌握相当差,理解起来是相当的困难,但是庆幸的事,我向同学和老师咨询中吸收了不少知识。

微机原理课程设计交通信号灯正文3

微机原理课程设计交通信号灯正文3

1设计任务描述1.1设计题目:交通信号灯1.2设计内容利用微机原理试验箱,采两组红,黄,绿发光二极管来模拟A,B两路交差路口的信号灯控制。

1.2.1设计目的通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。

通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。

为以后学生结合专业从事微机应用设计奠定基础。

1.2.2设计要求一、基本要求:1.(1)按实际交通灯控制规程控制;(2)当路口发生交通事故时,能强制A、B两路禁行;(3)K0-K7为开关,K7来模拟紧急情况,K1-K6来模拟车辆多少;D11-D8为黄灯;D7-D0分别为4红4绿。

2.也可以选择具有一定难度的其他题目,但要经过指导老师的同意。

3.认真查阅资料,理解题目要求。

4.按时上机,认真调试程序。

5.运行程序,检查结果是否和设计要求一致。

6.记录出现的问题及现象,并对问题进行分析,思考解决方法。

7.遵守课程设计时间安排。

8.独立思考,认真设计。

9.认真书写课程设计说明书,避免相互抄袭。

二、对设计说明书撰写内容、格式、字数的要求1.课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。

2.学生应撰写的内容为:目录、正文、参考文献等。

课程设计说明书(论文)的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。

应做到文理通顺,内容正确完整,书写工整,装订整齐。

3.说明书(论文)手写或打印均可。

手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。

4. 课程设计说明书(论文)装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。

三、设计完成后应提交成果的种类、数量、质量等方面的要求提交课程设计说明书一份。

在说明书中要有设计原理、硬件电路接线图、设计的程序及必要注释等。

微型计算机原理与接口技术课程设计报告智能交通灯控制系统设计

微型计算机原理与接口技术课程设计报告智能交通灯控制系统设计

摘要根据十字路口交通灯的控制要求,采用PLC 设计实现正常交通的时序控制,通过传感器完成对交通异常状况的智能判别及处理。

在系统的设计中,主要使用了PLC 可编程序控制器和传感器相结合的一种智能控制方法,使用压轴式传感器采集车辆脉冲,用PLC 高速计数器对脉冲进行计数,根据取得的数据运用一定的智能控制原则自动调节红绿灯的时间长度,最大限度地减少车辆滞留现象,较好地解决了车流量不均衡、不稳定问题。

仿真结果表明,该系统设计方案可以达到预期目标。

关键词:可编程控制器,交通灯,智能控制系统目录摘要 (Ⅰ)Abstract (Ⅱ)第1章设计要求 (1)1.1课题背景 (1)1.2 控制要求 (1)第2章总体框图 (3)2.1方案的确定 (3)2.2 原理框图 (3)2.3 元件简介 (3)第3章智能交通灯的实现 (7)3.1 车辆的检测 (7)3.2P L C具体设计 (7)3.3 I/O引脚分配及接口电路 (10)3.4 PLC故障防范 (11)3.5 PLC程序与编写 (13)总结 (21)参考文献 (22)致谢 (23)附录 (24)第1章 设计要求1.2 控制要求一、 信号灯及显示时间的数码管受开关控制,一个启动按钮控制其启动,一个停止按钮控制其停止。

二、 信号灯分为东西向直通红灯、直通黄灯、直通绿灯、左转红灯、左转黄灯、左转绿灯各两个;南北向直通红灯、直通黄灯、直通绿灯、左转红灯、左转黄灯、左转绿灯各两个。

三、 工作过程。

初始状态:信号灯全部灭;显示某方向信号灯工作的时间用数码管来显示,初始显示为0,以表示等待时间控制信号的输入。

工作状态:信号灯及数码管由一个启动按钮控制其启动,启动后信号灯及数码管自动循环运行;按下停止按钮后,回到初始状态。

特殊情况由五个按钮控制不同情况的应对程序启动,当车辆行驶数量回到正常时,通过一个按钮使其停止,程序执行正常工作时的程序。

正常工作:1、周期前半段。

南北向直通道与左转道红灯亮,并维持63s 。

微机原理及机电接口技术课程设计红绿灯

微机原理及机电接口技术课程设计红绿灯

微机原理及机电接口技术课程设计第五组题目十字路口交通灯控制系统一.明确任务1.任务要求1)、模拟十字路口交通灯变化规律能实现通行时间的倒计时显示;当特种车(消防、警车等)通过时,中断保护现场并使四个口红灯全亮,中断消除后恢复现场。

2)、用开关控制中断信号2.任务分析1)南北东西道路有信号灯显示2)2位7段数码管显示通行和禁行倒计时3)针对特种车经过要设计相应的中断程序,并且中断返回后能信号灯按原来的状态继续进行道路控制。

二.总体设计1. 设计方案十字路口有南北方向和东西方向,每个方向都设有红、黄、绿三色交通信号灯12盏,并配有相应的亮灯倒计时显示4组。

当南北为绿灯或黄灯时,东西向一定是红灯,即南北绿灯时间加南北黄灯时间应等于东西红灯时间。

系统开始工作,南北路口绿灯亮,南北方向数码管进行绿灯50S倒计时显示,东西路口的红灯亮,东西方向数码管进行红灯55S倒计时显示。

当东西禁行方向剩5S时,南北通行方向的绿灯灭黄灯亮,同时数码管进行5S黄灯倒计时显示,5S后黄灯熄灭红灯亮,并进行南北红灯倒计时,同时东西方向红灯55S计时时间到红灯灭绿灯亮,东西向开始通行南北向禁行。

同样东西向绿灯50S计时时间到后转为黄灯,黄灯5S计时时间到再转为红灯,之后重复上述过程。

另设有点动按钮用来发出特种车经过时的中断信号2.单片机选型选择89C51系列单片机3.划分系统软、硬件功能数码管采用共阴极七段码动态显示4.确定系统结构组成时钟电路,复位电路,红绿黄灯指示电路(采用各色发光二极管代替),动态显示电路和简单按键电路三.硬件电路设计P0示位选控制。

P3.3作为外部中断输入口P1.0:南北向红灯,高电平点亮P1.1:南北向黄灯,高电平点亮P1.2:南北向绿灯,高电平点亮P1.3:东西向红灯,高电平点亮P1.4:东西向黄灯,高电平点亮P1.5:东西向绿灯,高电平点亮P2.7:南北向十位数码管位选信号P2.6:南北向个位数码管位选信号P2.5:东西向十位数码管位选信号P2.4:东西向个位数码管位选信号P0.0:数码管aP0.1:数码管bP0.2:数码管cP0.3:数码管dP0.4:数码管eP0.5:数码管fP0.6:数码管gP3.3:中断按钮,点动南北东西全部禁行,特种车通过四.软件设计1.片内RAM的定义A_BIT EQU 20H :用于存放南北十位数B_BIT EQU 21H :用于存放南北个位数C_BIT EQU 22H :用于存放东西十位数D_BIT EQU 23H :用于存放东西个位数TEMP1 EQU 24H :南北方向要显示的时间TEMP2 EQU 25H :东西方向要显示的时间SEC EQU 30H:1S计时标志2.程序设计由设计方案描述交通灯的显示可以分为以下4种状态:状态一:南北绿灯亮并从50S开始倒计时显示,东西红灯亮并从55S开始倒计时显示状态二:南北黄灯亮并从5S开始倒计时显示,东西红灯亮并继续55S倒计时显示状态三:南北红灯亮并从55S开始倒计时显示,东西绿灯亮并从50S开始倒计时显示状态四:南北红灯亮并继续55S 倒计时显示, 东西黄灯亮并从5S 开始倒计时显示3.设计流程图主程序流程图INT1中断程序流程图4.源程序:A_BIT EQU 20H ;用于存放南北十位数B_BIT EQU 21H ;用于存放南北个位数C_BIT EQU 22H ;用于存放东西十位数D_BIT EQU 23H ;用于存放东西个位数TEMP1 EQU 24HTEMP2 EQU 25HSEC EQU 30H ;1S计时标志ORG 0000HAJMP MAINORG 0013HAJMP INTORG 0100HMAIN:MOV SP,#45HMOV IE,#84H ;开INT0中断SETB IT1 ;下降沿触发MOV TMOD,#01H ;定时器初始化MOV TH0,#3CH ;50ms定时初值MOV TL0,#0B0HSETB TR0 ;启动定时器T0MOV SEC,#20 ;1S循环常数MOV R7,#50 ;绿灯时间MOV R6,#5 ;黄灯时间MOV R5,#55 ;红灯时间MOV R4,#10 ;全部红灯的时间STA1:MOV P1,#00001100B ;南北绿灯东西红灯ST1:MOV TEMP1,R7MOV TEMP2,R5ACALL CONVERT ;调用BCD码转换子程序STLOP1: ACALL DISPLAY ;调用显示子程序JNB TF0,STLOP1 ;50MS定时未到,转到STLOP1 CLR TF0DEC SECMOV A,SECCJNE A,#0,STLOP1 ;1S定时未到转到STLOP1 MOV SEC,#20DEC R5 ;东西倒计时数减一DJNZ R7,ST1 ;南北倒计时数减一MOV R7,#50STA2:MOV P1,#00001010B ;南北黄灯东西红灯ST2:MOV TEMP1,R6MOV TEMP2,R5ACALL CONVERT ;调用BCD码转换子程序STLOP2: ACALL DISPLAY ;调用显示子程JNB TF0,STLOP2CLR TF0DEC SECMOV A,SECCJNE A,#0,STLOP2MOV SEC,#20DEC R5DJNZ R6,ST2MOV R6,#5MOV R5,#55STA3:MOV P1,#00100001B ;南北红灯东西绿灯ST3:MOV TEMP1,R5MOV TEMP2,R7ACALL CONVERT ;调用BCD码转换子程序STLOP3: ACALL DISPLAY ;调用显示子程JNB TF0,STLOP3CLR TF0DEC SECMOV A,SECCJNE A,#0,STLOP3MOV SEC,#20DEC R5DJNZ R7,ST3MOV R7,#50STA4:MOV P1,#00010001B ;南北红灯东西黄灯ST4:MOV TEMP2,R6MOV TEMP1,R5ACALL CONVERT ;调用BCD码转换子程序STLOP4: ACALL DISPLAY ;调用显示子程JNB TF0,STLOP4CLR TF0DEC SECMOV A,SECCJNE A,#0,STLOP4MOV SEC,#20DEC R5DJNZ R6,ST4MOV R6,#5MOV R5,#55AJMP STA1INT: ;中断子程序PUSH 90H ;存入46H中PUSH PSWPUSH 00HPUSH 01HPUSH 02HPUSH 05HPUSH 06HPUSH 07HPUSH 20HPUSH 21HPUSH 22HPUSH 23HPUSH 24HPUSH 25HPUSH 30HPUSH TH0PUSH TL0MOV P1,#09H ;全部红灯CLR TF0MOV TH0,#3CHMOV TL0,#0B0HMOV SEC,#20L3:MOV TEMP1,R4MOV TEMP2,R4ACALL CONVERT ;调用BCD码转换子程序L4:ACALL DISPLAY ;调用显示子程JNB TF0,L4CLR TF0DEC SECMOV A,SECCJNE A,#0,L4MOV SEC,#20DJNZ R4,L3MOV R4,#10POP TL0POP TH0POP 30HPOP 25HPOP 24HPOP 23HPOP 22HPOP 21HPOP 20HPOP 07HPOP 06HPOP 05HPOP 02HPOP 01HPOP 00HPOP PSWPOP 90HRETI转换子程序CONVERT:MOV A,TEMP1 ;将南北要显示的数存放到A MOV B,#10DIV AB ;A除以B商存A,余数存B MOV A_BIT,A ;将A放到20HMOV B_BIT,B ;将B放到21HMOV A,TEMP2 ;将东西要显示的数存放到A MOV B,#10DIV AB ;A除以B商存A,余数存B MOV C_BIT,A ;将A放到22HMOV D_BIT,B ;将B放到23HRETDISPLAY: MOV DPTR ,#TAB ;显示子程序DPLOP1: MOV A,A_BIT ;将南北要显示的10位数送A MOVC A,@A+DPTR ;查表MOV P0,ACLR P2.7 ;显示南北10位数ACALL D1MS ;延时1MSSETB P2.7 ;灭南北10位数MOV A,B_BIT ;将南北要显示的个位数送A MOVC A,@A+DPTR ;查表MOV P0,ACLR P2.6 ;显示南北个位数ACALL D1MS ;延时1MSSETB P2.6 ;灭南北个位数MOV A,C_BIT ;将东西要显示的10位数送A MOVC A,@A+DPTR ;查表MOV P0,ACLR P2.5 ;显示东西10位数ACALL D1MS ;延时1MSSETB P2.5 ;灭东西10位数MOV A,D_BIT ;将东西要显示的个位数送A MOVC A,@A+DPTR ;查表MOV P0,ACLR P2.4 ;显示东西个位数ACALL D1MS ;延时1MSSETB P2.4 ;灭东西个位数RETD1MS:MOV R3,#250 ;1MS延时子程序D2:NOPNOPDJNZ R3,D2RETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END。

微机系统接口课程设计——交通灯

微机系统接口课程设计——交通灯

微机系统接口课程设计题目:交通灯系部名称:计算机系班级:学号:指导教师:学生姓名:时间2009-6-1—2009-6-12微机系统接口课程设计一实习的目的本次实习是基于微机原理与微机接口技术的实践课程设计。

1,通过实习熟悉并掌握接口芯片8253、8255、8259的原理、功能和应用2,对微机原理知识的熟悉和巩固,了解微机工作基本原理。

二硬件课程设计题目1,十字路口交通信号灯控制系统设计三对题目的简单分析(用到哪些芯片及作用)(1)十字路口交通信号灯控制系统设计8253 计数控制,用于交通信号灯的时间控制8255 数码管显示,用于倒计时时间的显示8259 突发事件的控制及信号灯的切换四以下是三个题目分别的实习报告(一)十字路口交通信号灯控制系统设计一硬件课程设计题目交叉路口交通信号灯控制系统设计二设计任务编写一个交通灯控制程序,实现东西路口与南北路口状态灯的转换,并设置紧急键,能使交通灯实现紧急处理。

利用中断程序实现多次循环调用电风扇工作子程序,并在显示器上提示进入中断服务程序的信息。

具体实现如下:1.用试验台提供的发光二极管(红绿黄各两支,共六支)作为南北路口(红绿黄各一支)和东西路口(红绿黄各一支)的模拟交通灯。

如图:D7,D5,D3作为南北路口的交通灯与A7,A5,A3相连,D6,D4,D2作为东西路口的交通灯与A6,A4,A2相连。

编程使六个灯按交通灯变化规律燃灭B7 B6 B5 B4 B3 B2 B1 B0A7 A6 A5 A4 A3 A2 A1 A0C3C2C1C0C4C58255AA B C D E F G DP X2X1LED OUT0 CLK0GATE0 CSCS8254红 红 绿 绿 黄 黄 白 白D7 D6 D5 D4 D3 D2 D1 D0二极管K3(东西紧急)K1(夜间紧急)K2(南北紧急)IOY01KHZ +5V IOY2硬件连接图:2.用可编程并行接口芯片8255A 控制模拟交通灯的亮与灭和数码管的倒计时显示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

.
信息工程系 计算机科学与技术 12计本1班 1214110214 黄 福 朱 茜 2015年06月29日
院 系: 专 业: 年级班级: 学 号: 姓 名: 指导教师:
设计日期:
目录
一.课程设计目的 (3)
二.课程设计任务 (3)
三.总体设计方案 (3)
五.程序设计流程图 (4)
六. 程序连接图 (5)
七.程序清单 (6)
八.实验结果 (9)
九.课程设计总结和体会 (9)
一.课程设计目的
用汇编语言和微机原理实验箱完成实现双方向交通信号灯控制系统,以达到熟练运用汇编语言编程以及实验箱上各个芯片的灵活运用。

⒈了解交通灯管理的基本工作原理
⒉熟悉8253定时计数器的工作方式和编程应用
⒊熟悉8255A并行接口的工作方式和编程应用
二.课程设计任务
本次课程设计的容为双方向交通信号灯的控制和管理。

具体要求如下:
1.东西方向车辆放行20秒钟。

即东西方向的绿灯和南北方向的红灯同时点亮25秒钟和黄灯点亮3秒钟。

2.南北方向车辆放行20秒钟后,转为南北方向的黄灯点亮3秒钟,以警示将切换红绿灯。

此时东西方向仍维持红灯点亮。

3.循环重复执行1和2两步骤。

三.总体设计方案
1、用实验系统8255A实现对信号灯的控制(B端口),A端口的PA6、PA7口用来和8253共同控制信号灯点亮的时间。

2、实验中,8255选用(10010000)方式选择字,A组工作0方式,A端口输
入,PC4-PC7输出,B组0方式,B端口输出,PC3-PC0输出
3、实验中,8253采用两个计数器级联的方式达到定时的效果,8253计数器0的CLK0输入1MHZ的时钟脉冲,工作在模式3即方波发生器,理论设计OUT0 输出周期为0.01S的方波,则计数器0的初值为10000;OUT0输出的方波分别作为计数器1、计数器2的CLK1和CLK2的输入时钟脉冲,计数器1和计数器2工作方式为模式1,计数器1的初值为2500,即OUT1输出25秒,控制红绿灯的时间;计数器2初值为300,即OUT2输出3秒,控制黄灯的时间。

四.部分电路设计及功能解说
本程序设置的是东西车道亮路灯20秒,黄灯亮3秒,同时南北车道红灯23秒,接下来是东西车道红灯23秒,南北车道绿灯20秒,黄灯亮3秒。

8253计数器1的OUT1连接8255A的PA7,计数器2的OUT2连接PA6,通过判断PA6和PA7的高低电平来控制信号灯亮的时间。

五.程序设计流程图
开始
初始化8255A
初始化8253
东西路口绿灯亮,南北路口红灯亮,延时20秒后,东西路口黄灯亮并延时3秒
东西路口红灯亮,南北路口绿灯亮,延时20秒后,南北路口黄灯亮并延时3秒
结束
七.程序清单
CODE SEGMENT ASSUME CS : CODE ORG 2000H
START :MOV DX ,0FF2BH
MOV AL,90H
OUT DX,AL ;初始化8255A ,A 口输入,B 口、C 口输出 MOV DX,0043H MOV AL,36H
MOV DX,AL ;初始化8253计数器0,工作方式为模式3 MOV AL,72H
OUT DX,AL ;初始化8253计数器1,工作方式为模式1 MOV AL,0B2H
OUT DX,AL ;初始化8253计数器2,工作方式为模式1 MOV DX,0FF29H
L:MOV AL,7DH
OUT DX,AL ;东西路口绿灯亮,南北路口红灯亮
CALL TIMER_G ;调用延时20秒子程序
MOV AL,7EH
OUT DX,AL ;东西路口黄灯亮,南北路口红灯亮
CALL TIMEY ;调用延时3秒子程序
MOV AL,0DBH
OUT DX,AL ;东西路口红灯亮,南北路口绿灯亮
CALL TIMER_G ;调用延时20秒子程序
MOV AL,0EBH
OUT DX,AL ;东西路口红灯亮,南北路口黄灯亮
CALL TIMEY ;调用延时3秒子程序
JMP L ;跳转到东西路口绿灯亮,南北路口红灯亮TIMER_G PROC
PUSH DX
PUSH AX ;将寄存器AX,DX压栈
MOV DX,0040H
MOV AX,10000
OUT DX,AL
MOV AL,AH
OUT DX,AL ;给8253计数器0赋初值
MOV AX,2000
MOV DX,0041H
OUT DX,AL
MOV AL,AH
OUT DX,AL ;给8253计数器1赋初值
MOV DX,0FF28H
P:IN AL,DX ;取8255A中A口的数据
CMP AL,80H ;若PA7为1则CPU继续检测PA7,直到PA7为0
JNZ P ;则继续执行程序,延时完成
POP AX
POP DX
RET
TIMEY PROC
PUSH DX
PUSH AX
MOV DX,0040H
MOV AX,10000
OUT DX,AL
MOV AL,AH
OUT DX,AL ;给8253计数器0赋初值
MOV DX,0042H
MOV AX,300
OUT DX,AL
MOV AL,AH
OUT DX,AL ;给8253计数器2赋初值
MOV DX,0FF28H
Q:IN AL,DX ;若PA6为1则CPU继续检测PA6,直到PA6为0 CMP AL,40H ;则继续执行程序,延时完成
JNZ Q
POP AX
POP DX
RET
CODE ENDS
END START
八.实验结果
1.东西方向车辆放行20秒钟。

即东西方向的绿灯和南北方向的红灯同时点亮25秒钟和东西方向黄灯亮5秒。

2.南北方向放行20秒钟后,转为南北方向的黄灯亮5秒钟,以警示将切换红绿灯。

此时东西方向仍维持红灯点亮。

3.循环重复执行1和2两步骤。

九.课程设计总结和体会
本次实验,收获颇多,更形象地熟悉了8253定时计数器的6种工作方式的
使用及其特点,包括每种方式的控制字、启动方式、输出波形的特点等;也熟悉了8255A的三种工作方式以及A口、B口、C口各自工作的特点,熟练的对8255A 进行初始化操作,和编程应用。

通过动手接硬件电路,熟悉了8086CPU的结构和硬件连线,以及各类芯片的综合使用。

通过本次实验中汇编代码的编写,巩固了汇编代码编写的基础,对汇编语法有了进一步认识,并且学会了编写和使用汇编子程序。

在这一过程中,我们充分发挥我们的主观能动性,想象创造性,攻克了很多之前都没有想过的难关,真的受益匪浅。

这次设计不仅仅耗时耗力,而且还要整天对着电脑进行仿真且不停的调试、修改,这次课程设计对我们理论和实验都有很大的提升,我想这些对于我们今后的学习生活都有很重要的意义,这将是我们在程序设计以及大学学习过程中的宝贵经验和财富。

相关文档
最新文档