微机原理与接口技术交通灯控制系统设计_第1页
微机原理与接口技术交通灯控制系统设计_第2页
微机原理与接口技术交通灯控制系统设计_第3页
微机原理与接口技术交通灯控制系统设计_第4页
微机原理与接口技术交通灯控制系统设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理和接口技术课程设计姓名: *班级学号: *任课老师: *一、 实验课题交通信号灯控制系统二、 实验目的在熟悉8086/8088指令系统的基础上,掌握8086/8088汇编语言程序设计方法;掌握8259可编程中断控制器,8255可编程并行接口、8253可编程定时/计数器的使用三、实验要求1、模拟交通信号灯(分A、B两组)的红、黄、绿灯(实验箱中的发光二极管)交替变换的过程。2、在实验箱的LED显示器上显示当前剩余时间(每秒更新一次,倒计时)。A组、B组之间时间关系如下:A组B组绿灯26秒红灯30秒黄灯4秒红灯30秒绿灯26秒黄灯4秒四、 实验设备PC机一台、实验箱一个(8086、8259、8255、8253芯片及相关电路、发光二极管六只)及导线若干。五、 设计1、 设计思路(1)分析问题各端口使用代码实现(2)具体使用(8255的B口做灯信号的输出,A口做位选码的输出,C口做LED的输出。)(3)实验内容1、系统中,8259采用初始化命令字ICW1、ICW2、ICW4和操作命令字OCW1,允许内部中断IRQ0和外部中断IRQ12、系统中,8255选用(10000000)方式选择字,A组工作0方式,A端口输出,PC3-PC7输出,B组0方式,B端口输出,PC3-PC0输出3、系统中,8253选用(00110101)选择零号端口读写两个字节,工作方式2(频率发生器)二十进制2、程序流程 开始初始化8259初始化8255初始化8253设置中断向量设置交通灯初态显示时间启动计数器结束3、 电路原理图1.193MHz 8253 GATE0 Clk0 OUT0IRQ08259IRQ1图1 系统硬件电路图位选码 PB0PB78255 PC4PC7 PC0PC3 PA0PA7KK1-发光二极管电路红灯绿灯adp数码管显示模块4、 设计代码STACK SEGMENT STACK DW 64 DUP(?)STACK ENDSDATA SEGMENTTIMER DB 00H,30H;IRQ0中断次数,通行剩余时间(A道30秒,B道30秒)初始设为B道通行TAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;七段码,用于显示时间,顺序不可调换DISOFF DB 00H,00H,00H,00H ;LED显示器缓冲区,数字(剩余时间)的个位和十位RODDB00H;当前道路通行状态(00:为A通行道;01为B通行)LIGHTDB 0D7H;信号灯的输出信号(11010111) KK1 DB 00H ;暂停开关KK1计数LIGHTZT DB 00HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART: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 IRQ1 ADD 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 DISP2 CMP 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,00H MOV TIMER+1,30H ;A道通行时间30秒 JMP DISP1R22:MOV ROD,01H ;如果当前A道通行结束,则切换为B道 ROD=01H为B道 MOV LIGHT,7DH MOV TIMER+1,30H JMP DISP1 ;B道通行时间30秒ZT:JMP M DISP1: ;灯信号输出函数MOV AL,LIGHT ;将灯信号输出到8255的B口OUT 61H,ALSTIJMP M IRQ0: PUSH AX ;现场保护 PUSH CXPUSHF MOV AL,TIMER ;取80次中断请求为一秒 INCALMOVTIMER,ALCMPAL40H ;1秒判断?JNEM1 ;不到则跳转MOV AL,00H ;毫秒数清零 MOV TIMER,AL MOVAL,TIMER+1 ;剩余时间减1SUB 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,AL MOV 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=00H DISOFF DB 03H,00H,03H,00H MOV DISOFF+1,AL;DISOFF+1=00H MOV AL,TIMER+1;AL=30HMOV CL,04H;CL=04HSHR AL,CL;AL=03HMOV DISOFF+2,AL;DISOFF+2=03H MOV DISOFF,AL;DISOFF=03H MOV SI,OFFSET DISOFF ;缓冲区的偏移地址 MOV DL,0F7H ;(11110111)将位选码初值送DL MOV AL,DL;AL=0F7HAGAIN:OUT 60H,AL ;从A口输出位选码 MOV AL,SI MOV BX,OFFSET TAB ;七段码的偏移地址 AX=0003H BX=TAB AND AX,00FFH XLAT ;MOV AL,BX+AX ;将显示七段码送ALOUT 62H,AL ;将AL转换成七段码从B口输出 CALL DALLY ;调用延时1ms子程序INC SI ;SI=SI+1 MOV AL,DL TEST AL,01H ;4位显示完否? JZ M4 ROR AL,01H ;DL循环右移一位 MOV DL,AL JMP AGAINM4: RETDALLY: ;循环256次MOV CX,0010H ;延时子程序T1: MOV AX,0010H T2: DEC AX JNZ T2 LOOP T1 RETCODE ENDS END START六、 心得体会这周关于交通灯的设计是对我来说就是一次挑战,虽然说代码并非是我自己写的,可以说我是参考别人的,但是理解所有的设计代码我确实也花了不少时间,我除了要熟悉8259、8255、8253这些芯片,还得将它们合理的利用起来,由于之前对汇编知识的掌握相当差,理解起来是相当的困难,但是庆幸的事,我向同学和老师咨

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论