微型计算机技术与应用课程设计_交通灯控制器_第1页
微型计算机技术与应用课程设计_交通灯控制器_第2页
微型计算机技术与应用课程设计_交通灯控制器_第3页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、石河子大学信息科学与技术学院微型计算机技术及应用课程设计题 目:交通灯控制器姓 名:学 号:院 系: 信息科学与技术学院专 业: 计算机科学与技术系班 级:指导教师:目录一、设计题目交通灯设计 2二、设计目的 2三、电路分析 23.1主要容 23.2设计要求 23.3具体分析 3四、方案设计 34.1模拟对象 34.2芯片选择及仿真连线图 44.3主要流程图 5五、心得体会 6六、参考文献 7八、实验程序 8、设计题目:交通灯设计要求:1. 能实现红绿灯交替点亮;2. 显示点亮时间3. 在绿灯要灭的前3秒钟变成黄灯闪烁扩展功能:可以进行手动控制切换二、设计目的1. 了解交通灯管理的基本工作原理

2、2. 熟悉8255A并行接口的各种工作方式和应用3. 熟悉8253计数器/定时器的工作方式及应用编程,掌握利用软硬件相结合定 时的方法4. 了解其它芯片例如74HC373 74HC139 74HC154的功能作用三、电路分析3.1主要容模拟十字路口交通灯(红、黄、绿三色)的显示控制3.2设计要求(1) 初始时东西方向南北方向都是红灯在亮,计数显示器上显示02/62来显示 东西南北方向交通灯时间。并且数字不断减一。(2)当02减为零时,62刚好变为60,此时02减到0立即变为55,然后55/60 递减一。(3) 然后当55/60减为01/06时,下一个数字显示的是 05/05用来显示原来为 绿灯

3、变为黄灯,持续时间为5秒。(4) 当黄灯灭后就又初始原来值,回到(1)重复此过程。3.3具体分析在仿真图中利用8255实现交通灯的控制,8253实现计数,并通过8086的 控制来在计数管上显示计数时间。用四个交通灯trafficlights来模拟四个路口的交通灯情况。四、方案设计4.1模拟对象OOO图4.1十字路口交通灯模拟图B25A图4.2实验仪器上的四个交通灯微机交通灯实时控制系统用于城市十字路口的交通管理。 南北和东西路口各 设红、黄、绿三个交通灯。南北向和东西向的交通灯定时 55秒交换一次。每次 交换前,最后5秒黄灯闪烁,供闪烁5次。4.2芯片选择及仿真连线图8253可编程定时器/计数

4、器,发放方波脉冲信号实现一秒计时。 8253与计数 显示器相连,来控制计数的显示。8255A并行接口三个芯片, 其中用A 口控制 显示道路交通灯信息。B口与计数显示器连接。图4.3主要芯片连接图4.3主要流程图图4.4主要流程图五、心得体会在这次的课程设计中,学到的知识有很多,收获也不小。可以从理论结合 实际,可以把身边的一些所涉及到的编程工具自己也能够体会和学习一下。比如这次所做的计程车计价器。由于能力有限不能拿单片机或仿真的工具来做,只是 用汇编基础的模拟了一下,其中也了解到了最基本的原理,锻炼了自己的基础知 识水平。可以用到将来的实际应用当中。能够体会到其中的乐趣。但是这次也有许多的问题

5、,首先是自己的编程水平不好,所以做起来速度很 慢,需要以后多多练习,实验。有些功能还没有能够实现,所以还需要进一步的 学习,要学的知识还有很多,还应该花更多的精力在这些方面, 这样才能够提高 自己的专业水平。汇编语言和微机接口原理也是最基层的计算机语言和最接近硬件的,只有 了解了这里的本质,才能更有效准确的运用其他工具。六、参考文献1 IBM-PC汇编语言程序设计美明 清华大学2001年8月第2版2 IBM-PC汇编语言程序设计例题习题集美明 清华大学1991年6月第1版3 微机系统和接口应用技术朱世鸿 著 清华大学2006年9月第1版八、实验程序CT_PORT EQU006HA_PORT E

6、QU000HB_PORT EQU002HC_PORT EQU004HMY8253_CT EQU19HCLOCK_0 EQU01H ;000000101CLOCK_1 EQU09H ;0000 1001CLOCK_2 EQU11H ;00010001DATA SEGMENTLED DB 0CH,09H,0AH,24H,14HTIME DB 02H,55H,05H,42H,07H;两个数字显示器上下对应显示TIME_2 DB 62H,60H,05H,35H,05HTAB DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHMM DW?MM_1 DW?MM_2 DW01

7、HMM_3 DB57MM_4 DB35N1 DB00N2 DB10TRY DB00HDTIME DW 50HDATA ENDSSTACK SEGMENT 'STACK'堆栈段DW 50 DUPTOP LABEL WORDSTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATA ;初始化MOVDS,AX;放数据段MOVAX,STACKMOVSS,AX;放堆栈段MOVSP,TOPMOVAL,88H ;MOVDX,CT_PORT;C口低四位输出,高四位输入OUTDX,AL;把控制字放到8255的控制口M

8、OV AL,0CH ;MOV DX,A_PORTOUT DX,AL;8253整个初始化过程MOVDX,MY8253_CT;8253初始化MOVAL,00110111B;计数器0工作在方式3时钟频率1.8432MHzOUTDX,AL;把al中数字放入端口号为 MY8253_CTMOVDX,CLOCK_0MOVAL,00H ;送计数初值的低8位OUTDX,ALMOVAL,10H ;送计数初值的高8位OUTDX,ALJMP BEGINONESECOND MACROMOVDX,MY8253_CTMOVAL,01110001BOUTDX,ALMOVDX,CLOCK_1MOVAL,00H ;OUTDX,A

9、LMOVAL,10H ;OUTDX,ALENDMHALFSECONDMACROMOVDX,MY8253_CTMOVAL,01110001BOUTDX,ALMOVDX,CLOCK_1MOVAL,50H ;OUTDX,ALMOVAL,00H ;OUTDX,ALENDMBUFFER MACROLOCALAGAINMOVDX,MY8253_CTMOVAL,10110001BOUTDX,AL计数器1工作在方式0送计数初值的低8位送计数初值的高8位计数器1工作在方式0送计数初值的低8位送计数初值的高8位计数器2工作在方式0MOVDX,CLOCK_2MOVAL,00H ;OUTDX,ALMOVAL,10H

10、;OUTDX,ALMOVDX,C_PORTAGAIN: INAL,DXTESTAL,20HJZAGAINENDM送计数初值的低8位送计数初值的高8位DELAY MACROLOCAL LOOPERMOV CXQTIMELOOPER: LOOP LOOPERENDMBEGIN: XORSI,SI;SIJMPGIVEEMERGENCY:INCTRYMOVDX,A_PORTMOVAL,0CHOUTDX,ALREP: MOVDX,C_PORTMOVAL,00HOUTDX,ALMOVDX,B_PORT ;清零选中数码管1从TAB中选中对应的东西方向倒计时LEABX,TABMOVAX,MMPUSHCXMOV

11、CL,04HSHRAL,CLXLATOUTDX,ALPOPCX;DELAYBUFFERMOVDX,C_PORTMOVAL,01HOUTDX,ALMOVDX,B_PORT个位数字,予以数码管显示MOVAX,MMANDAL,0FHXLATOUTDX,AL;DELAYBUFFERMOVDX,C_PORTMOVAL,02HOUTDX,ALMOVDX,B_PORT十位数字,予以数码管显示十位数字,予以数码管显示LEA BX,TAB选中数码管2从TAB中选中对应的东西方向倒计时选中数码管3从TAB中选中对应的南北方向倒计时MOVAX,MM_1PUSH CXMOVCL,04HSHRAL,CLXLATOUTD

12、X,ALPOPCX;DELAYBUFFERMOVDX,C_PORT ;选中数码管4MOVAL,03HOUTDX,ALMOVDX,B_PORT ;从TAB中选中对应的南北方向倒计时个位数字,予以数码管显示MOVAX,MM_1ANDAL,0FHXLATOUTDX,AL;DELAYBUFFER;意外事件MOVDX,C_PORTINAL,DXTESTAL,40HJZRESTOREJMPEMERGENCYRESTORE: SUB TRY,00HJZREP_DECSILEABX丄ED从LED表中取出各状态东西南北灯亮MOVAX,SIXLATMOVDX,A_PORTOUTDX,ALMOVTRY,00HINC

13、SIREP_: MOVAX,MM_1是则减去6PUSHCXMOVCL,12SHLAX,CLPOPCXSUBAH,0F0HJZSUB_6_1MOVAX,MM;是则减去6PUSHCXMOVCL,12SHLAX,CLPOPCXSUBAH,0F0HJZSUB_6XORAX,AXDECMM_2JNZNEXT的情况ONESECOND判断南北方向计时个位数是否为0,判断东西方向计时个位数是否为0,INAL,DXTESTAL,10HJNZDEC_1;变高说明时间到JMPREP;否则断续SUB_6: XORAX,AX;东西方向计时减6程序SUBMM,06HJMPREPSUB_6_1: XORAX,AX;南北方向

14、计时减6程序SUBMM_1,06HJMPREP_DEC_1: CMPSI,03H ;前二个状态通过东西方向的时间控制转换状态JADE_1;后两个状态通过南北方向的时间控制转换状态DE_0: DECMM_3;东西方向绿灯闪烁程序CMPSI,02H ;东西绿,南北红为第二状态JZNSJMPNORM_1NS: CMPMM_3,05H;判定是否已到计时最后5秒JNACHOJMPNORM_1CHO: MOVAL,MM_3 ;倒计时5秒,奇数码灭,偶数亮MOVBL,02HDIVBLCMPAH,00HJZHIGH_1NEXT: MOV DX,C_PORT测试outl的电平是否变高LOW_1: MOV DX,

15、A_PORT ;南北方向红灯亮,东西方向熄灭MOVAL,08HOUTDX,ALJMPNORM_1HIGH_1: MOVDX,A_PORT ;正常,状态2MOVAL,09HOUTDX,ALNORM_1:MOVMM_2,01H;这里DECMM_1DECMMCMPMM,00HJZGIVE;某状态计时结束,重新赋计数值JMPREP;否则继续计数DE_1: DECMM_4;南北方向绿灯闪烁程序CMPSI,04HJZEWJMPNORM_2EW: CMPMM_4,05H;判定是否已到计时最后5秒JNACHO_2JMPNORM_2CHO_2: MOV AL,MM_4 ;倒计时5秒,奇数码灭,偶数亮MOVBL,

16、02HDIVBLCMPAH,00HJZHIGH_2LOW_2: MOVDX,A_PORT ;东西方向红灯亮,南北方向熄火MOVAL,04HOUTDX,ALJMPNORM_2HIGH_2: MOV DX,A_PORT ; 正常,状态 2MOVOUTJMPAL,24HDX,ALNORM_2NORM_2: MOVMM_2,01H;这里DECMMDECMM_1CMPMM_1,00HJZGIVE;某状态计时结束,重新赋计数值JMPREP;否则继续计数GIVE_1: XORSI,SI;一次循环结束,各状态复位MOVMM_3,57MOVMM_4,35GIVE: LEABX,TIME ;从TIME表中取出南北方向各状态灯亮的时间 把time地址给lea传送有效地址MOVAX,SIX

温馨提示

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

评论

0/150

提交评论