微机原理实验交通灯控制实验(共15页).doc

上传人:飞****2 文档编号:13558524 上传时间:2022-04-30 格式:DOC 页数:15 大小:137KB
返回 下载 相关 举报
微机原理实验交通灯控制实验(共15页).doc_第1页
第1页 / 共15页
微机原理实验交通灯控制实验(共15页).doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《微机原理实验交通灯控制实验(共15页).doc》由会员分享,可在线阅读,更多相关《微机原理实验交通灯控制实验(共15页).doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上课 程 设 计课程设计名称: 交通灯控制实验 专 业 班 级 : 学 生 姓 名 : 学 号 : 指 导 教 师 : 课程设计时间: 2014.12.22-2015.1.2 微机原理 专业课程设计任务书学生姓名专业班级学号题 目交通灯控制实验课题性质工程设计课题来源自拟课题指导教师同组姓名主要内容L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律亮灭。任务要求1:掌握并理解芯片8255和8253计时器工作原理2:掌握并理解源程序和程序中的函数3:熟悉8255内

2、部结构和与单片机的接口逻辑,掌握8255芯片的3种工作方式。4:了解单片机外围芯片8255的工作原理、初始化编程以及输入、输出程序设计方法参考文献微型计算机原理及运用 谭浩强 清华大学出版社16/32位微机原理、汇编语言及接口技术 陈涛 机械工业出版社微机接口技术应用审查意见指导教师签字:教研室主任签字: 年 月 日 一:设计的目的和内容1 目的:通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。2 内容:如图1,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化

3、规律亮灭。 图1二:设计思想:在选择循环的时间上,老师上课时说过,长延时可以采用双层嵌套,外层嵌套为0FFFFH,内层嵌套为4000H,我在编程时外层送进了0,相当于初值为65536,内层送进了4000H。为了达到闪烁和延时的区别,我在编闪烁的程序时,给外层嵌套送入初值3000H,内层0100H(这是我通过实验的结果)。人眼感觉闪烁的效果只是短延时的结果此方案是通过并行接口芯片8255A和8086计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。如上图所示,红灯(RLED),黄灯(YLEDD)和绿灯(GLED)分别接在8255的A,B,C口的低四位端口,PA0,PA

4、1,PA2,PA3分别接南,东,北,西路口的红灯,B,C口类推。8086工作在最小模式,低八位端口AD0AD7接到8255和8253的D0D7,AD8AD15通过地址锁存器8282,接到三八译码器,译码后分别连到8255和8253的CS片选端。8253的三个门控端接+5V,CLOCK0接由分频器产生的1MHZ的时钟脉冲,OUT0接到CLOCK1和CLOCK2,OUT1接到8086的AD18,8086通过检测此端口是否有高电平来判断是否30S定时到。OUT2产生1MHZ方波通过或门和8255的B口共同控制黄灯的闪烁。8255三个口全部工作在方式0既基本输入输出方式,红绿灯的转换由软件编程实现。三

5、:设计方案与硬件连接 设8253各口地址分别为:设8253基地址即通道0地址为04A0H;通道1为04A2H;通道2为04A4H;命令控制口为04A6H。黄灯闪烁的频率为1HZ,所以想到由8253产生一个1HZ的方波, 8255控制或门打开的时间,在或门打开的时间内,8253将方波信号输入或门使黄灯闪烁。由于计数值最大为65535,1MHZ/65536的值远大于2HZ,所以采用两个计数器级联的方式,8253通道0的clock0输入由分频器产生的1MHZ时钟脉冲,工作在方式 3即方波发生器方式,理论设计输出 周期为0.01s的方波。1MHZ的时钟脉冲其重复周期为T=1/1MHZ=1s,因此通道0

6、的计数初值为10000=2710H。由此方波分别作为clock1和clock2的输入时钟脉冲,所以通道1和通道2的输入时钟频率为100HZ,通道1作计数器工作在方式1,计数初值3000=BB8H既30s,计数到则输出一个高电平到8255的PA7口,8255将A口数据输入到8086,8086检测到高电平既完成30s定时。通道2工作在方式3需输出一个1HZ的方波,通过一个或门和8086共同控制黄灯的闪烁,因此也是工作在方波发生器方式,其计数初值为100=64H,将黄灯的状态反馈到8055的端口PB7和PC7,同样输入到8086,8086通过两次检测端口状态可知黄灯的状态变化,计9次状态变化可完成5

7、次闪烁。三个通道的门控信号都未用,均接5V即可。 四:程序流程图 开始 设置8255A口输出C口输出 南北路口绿灯亮,东西路口红灯亮 长延时 南北路口黄灯亮,东西路口红灯亮 南北路口红灯亮,东西路口绿灯亮 长延时 南北路口绿灯亮,东西路口红灯亮是否有键按下?返回DOS五:程序分析1:源程序data segmentio8255a equ 28ahio8255b equ 28bhportc1 db 24h,44h,04h,44h,04h,44h,04h ;六个灯可能 db 81h,82h,80h,82h,80h,82h,80h ;的状态数据 db 0ffh ;结束标志data endscode s

8、egment assume cs:code,ds:datastart: mov ax,data mov ds,ax mov dx,io8255b mov al,90h out dx,al ;设置8255为C口输出 mov dx,io8255are_on: mov bx,0on: mov al,portc1bx cmp al,0ffh jz re_on out dx,al ;点亮相应的灯 inc bx mov cx,200 ;参数赋初值 test al,21h ;是否有绿灯亮 jz de1 ;没有,短延时 mov cx,2000 ;有,长延时de1: mov di,9000 ;di赋初值9000

9、de0: dec di ;减1计数 jnz de0 ;di不为0 loop de1 push dx mov ah,06h mov dl,0ffh int 21h pop dx jz on ;没有,转到onexit: mov ah,4ch ;返回 int 21hcode endsend start可通过对cx的初始值设定来改变黄色灯亮的时间间隔来改变红灯亮的时间长度。2:调用函数分析中断-中断函数简介1、EnableIntr;语法:BOOL EnableIntr();功能描述:将微机实验装置的中断输入设为有效,执行此函数后,PLX9054将接受微机实验装置上的中断请求,然后根据该请求申请一个PC

10、I中断。参数:无返回值:如果成功,则返回True,否则返回False备注:应用程序在调用该函数之前,必须先调用Startup函数。2、DisableIntr;语法:BOOL DisableIntr();功能描述:将微机实验装置的中断输入设为无效,执行此函数后,PLX9054将不相应微机实验装置上的中断请求参数:无返回值:如果成功,则返回True,否则返回False备注:应用程序在调用该函数之前,必须先调用Startup函数。3、RegisterISR;语法:BOOL RegisterISR(ISR_ROUTINE pfuncISR);功能描述:注册中断服务程序,当微机实验箱上的中断输入有效时,

11、且实验箱上的中断输入使能,程序将会执行该中断服务程序。参数:pfuncISR:该参数即为中断服务函数名返回值:如果成功,则返回True,否则返回False备注:应用程序在调用该函数之前,必须先调用Startup函数六:调试记录及结果分析1:本电路没有设置显示倒计时的七段LED数码管,如果应用到街道上,不利于司机、行人把握2:在上机调试中发现,由于此软件延时的时间均为估算时间,不是特别准确,对于交通要求特别高的地方不宜采用。如果是放到一个大的交通灯系统中,会影响到各个交通灯的运行时间,可能整个系统对交通的指挥调度会大大偏离理论计算,不能有效地防止和消除交通堵塞现象;3:当出现紧急情况,在特种车(

12、如消防车、救护车)正要通过时,这种编程方式就不能完成; 但是,可以看到以上方案的一般性,只要将程序里的数据排列或规律稍加修改就可应用到任何一个路口的某一个方向上的交通灯上了,可移植性很强。 七:参考资料微型计算机原理及运用 谭浩强 清华大学出版社16/32位微机原理、汇编语言及接口技术 陈涛 机械工业出版社微机接口技术应用八:芯片资料18255 8255的内部结构8255A是一个40引脚的双列直插式集成电路芯片按功能可把8255A分为三个逻辑电路部分,即:口电路、总线接口电路和控制逻辑电路。(1)口电路 8255A共有三个8位口,其中A口和B口是单纯的数据口,供数据I/O使用。而C口则既可以作

13、数据口,又可以作控制口使用,用于实现A口和B口的控制功能。数据传送中A口所需的控制信号由C口高位部分(PC7PC4)提供,因此把A口和C口高位部分合在一起称之为A组;同样理由把B口和C口低位部分(PC3PC0)合在一起称之为B组。(2)总线接口电路总线接口电路用于实现8255A和单片微机的信号连接。其中包括: (a)数据总线缓冲器数据总线缓冲器为8位双向三态缓冲器,可直接和80C51的数据线相连,与I/O操作有关的数据、控制字和状态信息都是通过该缓冲器进行传送。(b)读/写控制逻辑与读写有关的控制信号有CS片选信号(低电平有效)RD读信号(低电平有效)WR写信号(低电平有效)A0、A1端口选择

14、信号。8255A共有四个可寻址的端口(即A口、B口、C口和控制寄存器),用二位地址编码即可实现选择。参见下表。RESET复位信号(高电平有效)。复位之后,控制寄存器清除,各端口被置为输入方式。读写控制逻辑用于实现8255A的硬件管理:芯片的选择,口的寻址以及规定各端口和单片微机之间的数据传送方向。(c)控制逻辑电路控制逻辑电路包括A组控制和B组控制,合在一起构成8位控制寄存器。用于存放各口的工作方式控制字8255A工作方式及数据I/O操作(1)8255A的工作方式 8255A共有三种工作方式,即方式0、方式1、方式2.(a)方式0 基本输入/输出方式 方式0下,可供使用的是两个8位口(A口和B

15、口)及两个4位口(C口高4位部分和低4位部分)。四个口可以是输入和输出的任何组合。方式0适用于无条件数据传送,也可以把C口的某一位作为状态位,实现查询方式的数据传送。(b)方式1 选通输入/输出方式 A口和B口分别用于数据的输入/输出。而C口则作为数据传送的联络信号。具体定义见表72。可见A口和B口的联络信号都是三个,如果A或B只有一个口按方式1使用,则剩下的另外13位口线仍然可按方式0使用。如果两个口都按方式1使用,则还剩下2位口线,这两位口线仍然可以进行位状态的输入输出。方式1适用于查询或中断方式的数据输入/输出。 (c)方式2 双向数据传送方式只有A口才能选择这种工作方式,这时A口既能输

16、入数据又能输出数据。在这种方式下需使用C口的五位线作控制线,信号定义如表72所示。方式2适用于查询或中断方式的双向数据传送。如果把A口置于方式2下,则B口只能工作于方式0.(2)数据输入操作用于输入操作的联络信号有:STB(StroBe)选通脉冲,输入,低电平有效。 当外设送来STB信号时,输入数据装入8255A的锁存器。IBF(Input Buffer Full) 输入缓冲器满信号,输出,高电平有效。IBF信号有效,表明数据已装入锁存器,因此它是一个状态信号。INTR(INTerrupt Request)中断请求信号,高电平有效,当IBF数据输入过程:当外设准备好数据输入后,发出信号,输入的

17、数据送入缓冲器。然后IBF信号有效。如使用查询方式,则IBF即作为状态信号供查询使用;如使用中断方式,当信号由低变高时,产生INTR信号,向单片微机发出中断。单片微机在响应中断后执行中断服务程序时读入数据,并使INTR信号变低,同时也使IBF信号同时变低。以通知外设准备下一次数据输入。(3)数据输出操作用于数据输出操作的联络信号有:ACK(ACKnowledge)外设响应信号输入,低电平有效。当外设取走输出数据,并处理完毕后向单片微机发回的响应信号为高,信号由低变高(后沿)时,中断请求信号有效。向单片微机发出中断请求。OBF(Output Buffer Full)输出缓冲器满信号,输出,低电平

18、有效。当单片微机把输出数据写入8255A锁存器后,该信号有效,并送去启动外设以接收数据。INTR中断请求信号,输出,高电平有效。数据输出过程:外设接收并处理完一组数据后,发回ACK信号。该信号使OBF变高,表明输出缓冲器已空。如使用查询方式,则OBF可作为状态信号供查询使用;如使用中断方式,则当ACK信号结束时,INTR有效,向单片微机发出中断请求。在中断服务过程中,把下一个输出数据写入8255A的输出缓冲器。写入后OBF有效,表明输出数据已到,并以此信号启动外设工作,取走并处理8255A中的输出数据。28253定时计数器8253内部可分为6个模块,每个模块的功能如下: 1. 数据总线缓冲器及

19、数据总线D0D72. 读/写控制逻辑及控制引脚CS* A1 A0I/O地址读操作RD*写操作WR*0 0 00 0 10 1 00 1 140H41H42H43H读计数器0读计数器1读计数器2无操作写计数器0写计数器1写计数器2写控制字3. 控制字寄存器在初始化编程时,CPU写入方式控制字到控制字寄存器中,用以选择计数通道及其相应的工作方式。8253的控制字:8253的工作方式也是有控制字来决定,其控制字意义如下4. 计数通道0、计数通道1、计数通道23个计数通道内部结构完全相同。每个计数通道都由一个16位计数初值寄存器、一个16位减法计数器和一个16位计数值锁存器组成计数初值存于预置寄存器,

20、在计数过程中,减法计数器的值不断递减,而预置寄存器中的预置不变。输出锁存器用于写入锁存命令时,锁定当前计数值。计数器的3个引脚说明:(1)CLK时钟输入信号在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1(2) GATE门控输入信号控制计数器工作,可分成电平控制和上升沿控制两种类型(3) OUT计数器输出信号当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号8253有6种工作方式,由方式控制字确定区分这6种工作方式的主要标志由3点:一是输出波形不同;二是启动计数器的触发方式不同;三是计数过程中门控信号GATE对计数器操作的控制不同。1.方式0-低电平输出(

21、GATE信号上升沿继续计数)2方式1-低电平输出(GATE信号上升沿重新计数)3方式2-周期性脉冲输出4方式3-周期性方波输出OUT输出低电平,装入计数值n后,OUT立即跳变为高电平。如果当前GATE为高电平,则立即开始减“1”计数,OUT保持为高电平,若n为偶数,则当计数值减到n/2时,OUT跳变为低电平,一直保持到计数值为“0”,系统才重新置入计数值n,实现循环计数。这时OUT端输出周期为nCLK周期,占空比为1:1的方波序列:若n为奇数,则OUT端输出周期为nCLK周期,占空比(n+1)/2 : (n-1)/2的近似方波序列。5方式4-单次负脉冲输出(软件触发)6方式5-单次负脉冲输出(

22、硬件触发)每种工作方式的设置过程类似: 设定工作方式 设定计数初值 硬件启动 计数初值进入减1计数器 每输入一个时钟计数器减1的计数过程 计数过程结束九:总结 这个实验是与现实生活是比较接近, 通过这个实验, 我大概知道了交通灯的工作原理, 也加深了以前学的知识,更进一步认识了 8255、8253 芯片,并且掌握了对并行接口的 使用。交通灯控制设计方面的东西,我了解的较少,只是大概的知道8255可编程并行接口芯片和8253可以用来定时。刚开始只是把实验箱的线连接,原理什么都不知道,只好大量的查资料像怎么样使用8253来定时及输出一定频率的脉冲,怎么样用8282这个地址锁存器来存储高位地址和低位地址以及交通有哪些规则,后来终于弄懂了,并且可以修改代码来得到自己需要的结果,对微机原理越加有兴趣,也想更深入的了解一些有关于这方面的知识。 专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁