




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机原理及应用课程设计一、设计题目要求:设有一十字路口,1、3为南北方向,2、4为东西方向。每个路口均有红、黄、绿三个灯,初始状态为四个路口的红灯亮,2秒之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口通车;延时50秒后,1、3路口绿灯闪烁5秒,后绿灯灭,黄灯亮,5秒后,1、3路口的红灯亮,而同时2、4路口的绿灯亮,2、4路口开始通车;延时30秒后,2、4路口绿灯闪烁5秒后绿灯灭,黄灯亮,5秒后,2、4路口的红灯亮,同时1、3路口的红灯亮(即四个路口的红灯亮),2秒之后,1、3路口的绿灯亮,2、4路口的红灯亮,重复上面的过程。二设计提示: 注意6个交通灯变化规律:亮、灭、闪烁; 通过8
2、253计数器0和计数器1级联实现准确定时;用8255的某一输入输出口中的某些位控制东西、南北路口交通灯的状态;用8259A管理可屏蔽中断。三设计原理及过程:1、实验要求分析:北(1)西(2)东(4)南(3) 基本结构图一个周期通过读设计要求,可以得到1、3以及2、4路口上的三种灯随时间亮灭情况如下(1、3相同,2、4相同):红灯亮2s50s绿灯亮5s绿灯闪烁黄灯亮5s30s红灯亮1、3路口红灯亮绿灯亮绿灯闪烁5s黄灯亮红灯亮5s2s绿灯亮2、4路口2、设计所使用的芯片及功能:(1)8253A计数/定时器:其命令字格式如下,该芯片24脚双列直插式芯片,用+5V供电,芯片内有三个相互独立的16位定
3、时/计数器,分别为计数器0,计数器1,计数器2,最大计数初值65535,其端口号分别40-42H,控制端口号为43H,以下为其引脚图,该图利用PROTEL 99 SE查找并截图得到:由于所使用的时钟频率为4.77MHZ,为了满足设计要求,必须将计数器0和计数器1级联才能实现所要求的功能 (4.77M=5000*954) ,因此选择把OUT0和CLK1相连,按照设计要求,应使两计数器工作在方式0下。8253A的各引脚功能简介如下:数据引脚D7D0:数据线,双向三态,与系统数据总线连接。片选信号CS:输入信号,低电平时选中此片。由CPU输出的地址经地址译码器产生。地址线A0、A1:接到系统总线的A
4、0,A1上,当CS为低电平,即8253被选中时,用它们来选择内部的四个寄存器。读信号RD:输入信号,低电平有效。由CPU发出,用于控制被选中的内部寄存器读操作。写信号WR:输入信号,低电平有效。由CPU发出,用于控制被选中的内部寄存器写操作。时钟脉冲信号CLK0-CLK2:计数器0-计数器2的时钟输入端。门控信号GATE0-GATE2:计数器0-2的门控输入信号端,用于启动计数器工作。输出信号OUT0-OUT2:计数器0-2的输出端,当计数器计到0时,输出一个标志信号。(2)可编程并行接口芯片8255A,其工作方式选择控制字如下:为保证定时信号可以控制并行输出,将C口作为输出控制六个灯的亮暗情
5、况(紧急情况下还有一个扬声器,由PC6控制),A口和B口不用(可将其设置为输出口),以下为8255A的引脚结构图,利用protel 99 se 截图得到:共40个引脚,双列直插列装,由+5V供电。其中A、B、C口各有八条端口I/O线,即PA7PA0,PB7PB0,PC7PC0,8255A本身共24个引脚,用于8255A和外设之间数据(或控制、状态信号)的传送。D0D7:8为三态数据线,接至系统数据总线。A1A0:地址信号,片内译码产生A、B、C三个端口以及控制口接到系统总线上。CS:片选信号,由系统地址译码器产生,低电平有效。RD和WR:读写控制信号,低电平有效,决定数据传送的方向。RESET
6、:复位信号,高电平有效。复位后,三个端口均为输入方式。(3)8259A可编程中断服务控制器,其初始化涉及四个初始化命令字ICW1ICW4,和3个操作命令字OCW1OCW3.8259A采用28脚双列直插封装形式,其芯片管脚图如下所示:CS;片选信号,输入低电平有效,来自地址译码器的输出。RD和WR:读信号和写信号,输入,都为低电平有效,用于读取和通知8259A的命令字。D7D0:双向三态数据线,接系统总线数据线,用来传送控制字,状态字和终端类型号等。INT:8259A向CPU发出的中断请求信号,高电平有效。INTA:接受来自CPU处理的中断相应脉冲已通知8259A中断请求已被相应。3、设计思路:
7、利用8253的计数/定时功能,根据想得到的时间频率,确定一个计数初值,在计数完成后,输出信号会发生变化(若为方式0,则变化形式为从低电平变为高电平),把这一变化信号输入到8259A的中断请求端IR1(注:为体现其中断控制优先级问题,在IR0加入一个紧急情况中断请求,在情况下两路的红灯全亮),利用8259A的INT端向CPU发出相应的中断请求信号,经CPU处理后返回INTR端,若条件满足则会执行相应的中断服务子程序,在中断服务子程序中对8255A的各端口分别赋值,确定其工作方式和各位输出情况。下面简单介绍一下设计所需的基本条件:(1) 首先是各芯片的端口地址,8255A中A口地址为40H,B口地
8、址为41H,C口地址为42H,控制口为43H;8253中设其计数器0端口地址为50H,计数器1的端口地址为51H,计数器2的端口地址为52H,控制端口为53H;8259A中的奇地址为61H,偶地址为62H。(2) 为实现准确计数采用的方法:设计要求中涉及2S,5S,30S,50S,想到采用8253计时1秒而在N秒时采用N次循环的方式,可以做成一个子程序在循环方式下调用。计数器0和计数器1均工作在方式0下这样就可以实现在计数完成后,OUT1向外输送一个高电平,在这种情况下,该高电平通过8259A的中断请求端向CPU发出中断申请。(3) 关于优先级:为了实现紧急情况下中止正常情况进入特殊情况的要求
9、,特殊情况的中断申请优先级应高于正常情况下的中断申请,已知在全嵌套方式(默认方式)情况下IR0IR7的优先级顺序依次降低,故选择把紧急情况下的中断请求连入IR0,正常情况下的中断请求接入IR1,在有紧急情况需要中断时,设置为允许中断嵌套的情况下,当低级中断在处理时有高级中断,CPU会暂停低级服务专去执行高级服务程序(特殊情况),处理完成后才会再返回低级中断服务子程序(正常情况)。(4) 关于8255控制灯的亮灭情况:为实现交通灯的亮灭对应设计要求,选择8259的C端作为输出端(A、B端也为设置为输出,但用不到),用到的有PA0PA5,六个端口分别控制1、3路口的红绿黄灯和2、4路口的红绿黄灯,
10、灯的一侧接高电平,因此另一侧必须为低电平时才会亮,PC6接紧急状态下的扬声器SPEAKER,按照要求得到以下表,其中表中06个状态的扬声器均不响,只有状态7,即紧急情况下扬声器才响:交通灯状态对应的PA端口状态持续时间下一状态状态0(初始状态)1、3,2、4红灯亮111101102秒状态1状态11、3绿灯亮,2、4红灯亮1111010150秒状态2状态21、3绿灯闪烁,2、4红灯亮11110101111101115秒状态3状态31、3黄灯亮,2、4红灯亮111100115秒状态4状态41,3红灯亮,2,4绿灯亮1110111030秒状态5状态51、3红灯亮,2,4绿灯闪烁11101110111
11、111105秒状态6状态61、3红灯亮,2,4黄灯亮110111105秒状态1状态7(紧急情况)1、3红灯亮,2,4红灯亮,j加扬声器响10110110持续至开关断开为止结束前状态四、硬件线路图由以上设计思路可知,采用8253准确定时,采用8259A向CPU提出中断申请,并接收CPU处理后的结果,若相应中断,则执行中断服务子程序,子程序的内容即对8255A赋值,使其控制相应灯的亮灭。综合以上结果,可得到以下硬件连接图,采用protel 99 SE得到:五程序流程图:通过设计思路以及硬件连接可以得到以下程序流程图,其中在中断服务子程序中包含了计数时间1秒以及判断是否有紧急开关按下,以粗线示意。紧
12、急开关开否?初始化8253开始初始化8255转入状态1转入状态2转入状态3转入状态4转入状态5转入状态6是转入状态7否结束停止?是否各个状态的程序流程图以及中断服务子程序的程序流程图如下所示:对CX赋值对AL赋值,并输出至相应端口调用中断服务子程序循环次数减1CX为0?否是8259A初始化设置8253A工作方式计数器0,1赋初值查询IRR中断来源8255A赋初值输出至PC各端口返回主程序六、汇编程序代码:代码如下:CODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV DX, OFFSET ZICHENG ;求中断服务子程序的ZICHENG的偏移地址 MOV
13、AX, SEG ZICHENG ;求中断服务子程序ZICHENG的段地址MOV DS, AX MOV AH, 25H ;送功能号MOV AL, 21H ;送中断类型号INT 21H ;DOS功能调用MOV AL,10000000B ;设置 8255A的工作方式,A,B,C均为输出口,方式0 MOV DX,43H ;送8255A的控制口地址 OUT DX , ALLOOP: MOV AL, 11110110B ;红灯均亮 MOV DX, 42H OUT DX, AL MOV CX, 2L1: INT 60HDEC CX JNZ L1 MOV AL, 11110101B ;1、3绿灯亮,2、4红灯
14、亮 MOV DX. 42H OUT DX, AL MOV CX, 50 ;持续时间为50*1SL2: INT 60H DEC CX JNZ L2 INT 60H ;在原有基础上再亮一秒 MOV CX, 2 ;实现2*2+1=5秒 L3: MOV AL, 11110111B ; 1、3绿灯灭,2、4红灯亮 MOV DX, 42H OUT DX,AL INT 60H ;持续一秒 MOV AL, 11110101B ;1、3绿灯又亮 OUT DX, AL INT 60H ;持续一秒 DEC CX JNZ L3 MOV CX, 5 MOV AL,11110011B ;1、3黄灯亮,2、4红灯亮 MOV
15、 DX, 42H OUT DX.AL L4: INT 60H DEC CX JNZ L4 MOV CX,30 MOV AL,11101110B ; 2、4绿灯亮,1、3红灯亮 MOV DX, 42 H OUT DX, ALL5: INT 60H DEC CX JNZ L5 INT 60H ;在原有基础上,2、4绿灯再亮一秒 MOV CX,2 L6:MOV AL,11111110B ;闪烁2*2+1=5秒,先让绿灯灭 MOV DX,42H OUT DX,AL INT 60H MOV AL,11101110B ;绿灯又变亮 MOV DX,42H OUT DX, AL INT 60H JNZ L6
16、MOV CX,5 ;2、4黄灯亮5秒 L7: MOV AL,11011110B MOV DX, 42H OUT DX,AL DEC CX JNZ L7 JMP LOOP ; 返回出状态,实现循环 MOV AX, 4C00H ; 返回DOS INT 21HCODE ENDS END START ZICHENG PROC FAR PUSH AX ; 保存现场 PUSH CX MOV 60H, 00011110B ;设置8259A的工作方式 MOV 61H, 60H ;设置ICW2,送中断类型号为60HIN AL, 60H ;读入OCW1AND AL, 11111100B ;开放IR0和IR1的屏蔽
17、OUT AL, 61HMOV AL, 00100000B ;设置OCW2OUT 60H, ALMOV AL ,0AH ; 非查询方式下读IRR的值OUT 60H, ALIN AL,60HCMP AL, 11H ;确定是IR0和IR1到底是哪个中断申请,首先判断是否为同时有JE IR0CMP AL,01H ;是否为IR0中断申请JE IR0CMP AL,00HJE L1 ;若无中断申请,返回初始状态 MOV AL, 00110001B ;执行IR1,设置8253计数器0的工作方式0,十进制计数MOV DX, 53H OUT DX, AL :写入控制口MOV AX, 5000H ;为计数器0赋初值
18、5000MOV DX, 50H OUT DX, ALMOV AL, AHOUT DX, ALMOV AL, 01110001B ; 设置8253计数器1的工作方式0,十进制计数MOV DX, 53H OUT DX, ALMOV AX, 0954H 为计数器1赋初值954,分两次赋值 MOV DX 51H OUT DX, AL MOV AL, AH OUT DX, AL JMP EXITIR0: MOV AL, 10110110B ;紧急情况下,两个红灯亮持续进行 MOV DX,42H OUT DX,ALEXIT: MOV AL,20H ;结束中断服务子程序OUT 20H,AL POP AXPOP CX IRETZICHENG ENDP七、设计总结以及心得:微机原理及应用是一门十分注重理论和实践相结合的课程。在理论课上,经过反复的练习,我已经充分学习并基本掌握了各种芯片的工作原理、使用方法以及汇编语言的常用编写方法,然而这一切最终必须要应用到实践当中。本次课程设计通过设计一个交通信号灯的控制系统就提供了这样一个平台,使我更加熟悉对汇编语言的使用和各种芯片尤其是8253、8255A、8259A的认识和应用水平。设计过程中我采用8253实现设计要求中的准确定时,用8259A管理中断,用8255A负责控制交通灯的亮灭以及闪烁,另外
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 兽用器械管理办法
- 内江封闭管理办法
- 内部用餐管理办法
- 内页安全管理办法
- 军营超市管理办法
- 军队票据管理办法
- 农夫产品管理办法
- 农机职称管理办法
- 农村污泥管理办法
- 农村门牌管理办法
- 综合训练01集合与常用逻辑用语(18种题型60题专练)(原卷版)
- 治安纠纷谅解协议书
- 菜品委托开发合同协议
- TSG D7004-2010 压力管道定期检验规则 -公用管道
- Unit 5 Here and now 单元说课 课件 2024-2025学年人教版七年级英语下册
- 2025-2030中国护发素销售预测分析及市场产销供需现状研究报告
- 2025年安徽合肥庐阳国有资产投资控股集团招聘笔试参考题库附带答案详解
- 低压配电柜项目可行性研究报告范文参考
- 内蒙古荣信化工有限公司招聘笔试题库2025
- 基层工会经费收支管理
- 养生炖汤外卖服务行业深度调研及发展战略咨询报告
评论
0/150
提交评论