微机原理课程设计交通灯

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

微机原理课程设计1一、课程设计题目交通灯控制二、课程设计目的综合运用《微机原理与应用》课程知识,利用集成电路设计实现一些中小规模电子电路或者完成一定功能的程序,以复习巩固课堂所学的理论知识,提高程序设计能力及实现系统、绘制系统电路图的能力,为实际应用奠定一定的基础。掌握8255A方式0的使用与编程方法PC机及配套的接口电路实验装置IC芯片:8255A应用和8253三、课程设计内容采用8255A设计交通灯控制的接口方案采用8253设计延时电路插接电路编写控制程序四、课程设计过程1、设计原理82558255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。其内部与引脚图如图所示:微机原理课程设计28255有三个端口A、B、C端口,3种不同的工作方式,在其控制字的作用下使某一个端口工作于某一种工作状态下。8253intel8253是NMOS工艺制成的可编程计数器/定时器,其内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同,如图所示:微机原理课程设计3每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立,采用减1计数方式。控制字如图所示:在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。当计数脉冲是已知周期的时钟信号时,计数就成为定时。各通道可有6种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。在这里我们主要采用方式0:计数结微机原理课程设计4束产生中断(由低电平变为高电平)。其波形图如图所示:a.写CW后:OUT=0,直到计数到0b.写N后:下1个CLK脉冲下降沿开始计数c.计数过程中,可重写N,重写N后,同b.d.GATE的作用:GATE=1计数、=0暂停计数e.计数到0:OUT=1,直到再写CW或N2、方案设计考虑普通十字路口,交通灯的控制可分东西向和南北向两组,每组可用红、黄、绿三个灯进行交通管理,所以本方案要点是至少对六个交通灯进行控制。由于灯光控制只需要开、关两个状态,所以可以采用开关量实施控制。开关微机原理课程设计5量的输出可以采用8255A的端口,由于开关量有6位,所以采用8位端口,又因为灯光控制不需要联络信号,所以按照方式0输出即可。由于题目要求时间的控制精确,所以我们在这里运用8253芯片定时控制。首先我们确定使用8255端口A与交通灯的连接方式,如下表所示(假定发光状态为高电平有效):由上表可知状态变换流程为:其中状态1和4持续30秒,其它状态持续0.5秒;又状态2各状态3,没用NS(南北)WE(东西)码字GYRGYR状态PA7PA6PA5PA4PA3PA2PA1PA0PA状态说明00000000000关灯10001010014NS:R;WE:G20001001012NS:R;WE:Y30001000010NS:R;WE:N40100000141NS:G;WE:R50010000121NS:Y;WE:R60000000101NS:N;WE:R说明:NS:南北;WE:东西;R:红;G:绿;Y:黄;N:关微机原理课程设计6状态5和状态6之间各循环5次。整个控制过程,要按照上面的流程,依次把相应的控制码输出到8255的端口A,时间由8253定时控制,6个交通灯就能够按照要求实现交通管理了。3、电路插接4、编程与运行datasegmentout_codedb14h,5dup(12h,10h),41h,5dup(21h,01h),0dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,ax微机原理课程设计7movdx,307h;8255控制端口地址moval,80h;100000008255端口A工作于0方式下outdx,almovdx,304h;8255端口A地址loop0:leasi,out_codeloop1:moval,[si]andal,al;al=aljzloop0;al=0,zf=1,跳转到loop0outdx,alincsitestal,44h;al和44h相与的结果去影响标志位ZFjzl1delay10,00;编译的时候,这里有点问题。delaymacroa,bpushdxpushaxmovdx,383h;8253控制端口地址moval,31h;001100018253工作于计数器0的工作方式0下的BCD计数,先写低字后写高字。outdx,almovdx,380h;选中8253计数器0,然后向其内依次写入数据。微机原理课程设计8moval,boutdx,almovah,aoutdx,alpopaxpopdxendml1:nopnopnopnopmovah,0bh;检测键盘有无输入int21handal,al;al=aljzloop1xoral,al;关灯outdx,almovah,4chint21hcodeendsendstart微机原理课程设计9五、课程设计小结交通灯是一个很熟悉的课题,因为在数电的课程设计的时候研究过类似的问题,不过那是一些相关芯片来完成的。当然,本次课程有它自己的独特之处,我个人认为那就是他的灵便性,因为只需要改一些相关程序就可以使其工作在不同的状态下,也许这里体现了寻么一点点的循环利用,当然了这有点牵强。怎么说呢?通过本次课程设计,加深了对书本相关知识点的了解的同时,也还有很多疑惑的地方。比如说在8253定时结束,是如何返回程序的,这一点还不是完全了解,也就是说中断这块还有待理解提高。前面提到的了数电的课设,所以在做这个课设的时候也曾尝试过用555定时器来做定时功能,不过后来想了想它的精准度和稳定性不是很高。还有就是在程序中,用到了汇编的宏,有些地方查了蛮多资料还是不很完全理解。在课设中我用到的石英振荡器构成的时钟发生电路,主要是想为后来用单片机来设计交通灯的时钟模块提前预习下。当然了,我们现在所知道的也仅仅只是皮毛而已,还有很多的地方值得我们去深研。

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功