首页 《微机原理与接口技术》课程设计实验报告-交通灯控制功能设计

《微机原理与接口技术》课程设计实验报告-交通灯控制功能设计

举报
开通vip

《微机原理与接口技术》课程设计实验报告-交通灯控制功能设计《微机原理与接口技术》 课程设计实验报告 题目:交通灯控制功能设计 指导老师: 专业: 班级: 目录 一、设计思想和实施方案论述,硬件原理图及分析 1.1、课程设计名称 1.2、课程设计要求 1.3、课程设计目的 二、设计思想和实施方案论述,硬件原理图及分析 2.1、设计思想和实施方案 2.2、硬件原理图 三、典型模块以及典型编程技巧分析 3.1、8086典型模块分析 3.2、编程技巧分析 四、设计中遇到的问题及解决方法 五、程序清单和程序注释,相关流程图 5.1程序清单和注释 5.2、实验室及流程图 六、收获与...

《微机原理与接口技术》课程设计实验报告-交通灯控制功能设计
《微机原理与接口技术》 课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 实验 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 目:交通灯控制功能设计 指导老师: 专业: 班级: 目录 一、设计思想和实施 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 论述,硬件原理图及分析 1.1、课程设计名称 1.2、课程设计要求 1.3、课程设计目的 二、设计思想和实施方案论述,硬件原理图及分析 2.1、设计思想和实施方案 2.2、硬件原理图 三、典型模块以及典型编程技巧分析 3.1、8086典型模块分析 3.2、编程技巧分析 四、设计中遇到的问题及解决方法 五、程序清单和程序注释,相关流程图 5.1程序清单和注释 5.2、实验室及流程图 六、收获与体会 七、参考文献 一、 设计课程名称及要求 1.1、课程设计名称:交通灯控制功能设计。 1.2、课程设计要求: (1)、分别用C语言和汇编语言编程完成硬件接口功能设计; (2)、硬件电路基于80x86微机接口; (3)、程序功能要求:小键盘给定、数码管(屏幕)显示; (4)、同时具备急救车应急响应功能和时间倒计时显示功能。 1.3、课程设计目的: 《微机应用系统设计与综合实验(实践)》课程设计是自动化专业本科生必修的一门技术基础课。通过本课程设计,让学生对微机系统有一个较全面的理解,对典型数字接口电路的应用技术有一个较深入的掌握,并对应用系统进行硬件原理和软件编程进行分析、设计和调试,达到基本掌握简单微型计算机应用系统软硬件的设计方法,提高项目开发能力的目的。要求同学独立完成课题,写出课程设计说明书,画出电路原理图,说明工作原理,画出电路印制板图, 编写设计程序及程序流程图。 二、设计思想和实施方案论述,硬件原理图及分析 2.1、设计思想和实施方案: 本设计使用了两种方案,一种是采用8086和8255A可编程并行接口实现了交通灯的设计,分别对主干道和支干道显示红灯和绿灯并且计时,采用8254定时器/计数器产生1HZ的脉冲,来控制8259产生中断,从而实现整个电路的设计。交通灯采用红绿两种发光二极管,主干道亮45s,支干道亮30s,计数的最后5s中绿灯闪烁,用数码管倒计时显示时间,在发生紧急情况时,可以认为用开关控制主干道和支干道红灯均亮,禁止任何车通行。另一种方案是采用单片机来实现的,达到的效果和上述方案相同。单片机采用定时器T0和T1来触发中断,根据中断优先级的不同,从而可以处理不同的情况,交通灯也是采用红绿两种发光二极管,主干道亮45s,支干道亮30s,计数的最后5s中绿灯闪烁,用数码管倒计时显示时间,在发生紧急情况时,可以认为用开关控制主干道和支干道红灯均亮,禁止任何车通行,在故障清除后,断开开关可以使红绿灯和数码管回到原来的状态继续正常工作。 2.2、硬件原理图: (a)图是基于8086的设计,(b)图是基于单片机的设计。在(a)图中,可编程并行接口芯片8255A用作输出口,控制红绿灯的亮暗和数码管的计时,定时器/计数器8254采用级联的方式产生1HZ的脉冲,并将此方波接到中断器8259的IR1上,即每秒钟让中断控制器产生依次中断,从而可以执行中断子程序。在(b)图中,P0口用于接数码管,P1口用于控制红绿灯的亮暗,P2口用于选通数码管,P32为定时器T0的控制端,当P32口为高电平时,定时器T0才会工作,并且T0的中断优先级高于T1,所以可以用于控制紧急情况。P37口接扬声器,在计数器T0工作时扬声器就会响。 三、典型模块以及典型编程技巧分析 3.1、8086典型模块分析:基于8086的设计主要由3个模块构成,其中8255是作为与外部显示电路的接口单元,8254和8259协同工作产生中断作为控制电路。可编程并行接口芯片8255A通过方式控制字设置成方式0工作模式,A、B、C口均为输出,可编程计数器/定时器8254通过控制字寄存器设置OU0和OU1均为方式3工作模式,通过级联产生1HZ的方波,中断控制器通过初始化命令字设置成边缘触发,8254的OU1口接到8259的IR1端,每秒钟就可以产生一次中断,每次执行中断子程序时使计数减1,从而可以实现倒计时功能,当计数到0时,重新给计数初值赋给,改变灯的状态。外部开关接8259的IR0端,它的中断优先级别高,设置成边缘触发,当按下开关,产生一个高电平的脉冲,就可以停止原来的状态来执行更高级别的中断子程序,这就可以处理紧急情况,让主干道和支干道都变成红灯。 单片机典型模块分析:基于单片机的设计主要是以51单片机为核心,通过变成开放T0和T1的中断,但T0要在INT0为高电平时计数器T0才会工作。计数器T1每50ms产生一次中断,每产生20次中断就令数码管的计数减1,当计数减到0时,重新设置数码管的计数初值,这样就可以依次循环工作了。当P32接高电平时,计数器T0开始工作,此时红灯都亮,扬声器发音,中断结束后还原原来的状态。 3.2、编程技巧分析:基于8086的设计编程语言是汇编语言,这里的几个编程模块就是方波产生模块,数码管显示模块和中断子程序模块。方波是通过8254级联产生的,设置8254的计时器0和计数器1工作在方式3,设置适当计数初值n即可,这个模块的程序如下所示: LOOP2:  MOV      DX,MY8254_MODE MOV      AL,0 OUT      DX,AL      ;计数器0,读写16位低高字节,工作方式3,BCD计数 MOV      AL,00H MOV      DX,MY8254_0 OUT      DX,AL MOV      AL,50 OUT      DX,AL MOV      DX,MY8254_MODE MOV      AL,77H OUT      DX,AL      ;计数器1,读写16位低高字节,工作方式3,BCD计数 MOV      AL,8 MOV      DX,MY8254_1 OUT      DX,AL MOV      AL,2 OUT    DX,AL      ;1.041667MHZ/2000/1000=1HZ,即计数器输出1HZ的方波 数码管的显示是通过调用显示 函数 excel方差函数excelsd函数已知函数     2 f x m x mx m      2 1 4 2拉格朗日函数pdf函数公式下载 实现的,通过设置8255的工作模式,选择数码管的高位工作,然后将计数的高位送到数码管,再选择数码管的低位工作,然后将计数的低位送到数码管,在1s钟内多次扫描就可以消除闪烁,从而达到理想的计数效果,它的程序如下所示: disp PROC NEAR C1:MOV DX,MY8255_C MOV AL,0FEH;选通高位数码管 OUT DX,AL SUB AH,AH MOV AL,COUNT MOV BL,0AH DIV BL;商寄存在AL中,余数在AH中 MOV BX,OFFSET TAB XLAT;通过查表找到对应的7段显示字符 MOV DX,MY8255_B OUT DX,AL CALL DELAY1ms MOV AL,0 OUT DX,AL MOV AL,0FDH;选通低位数码管 MOV DX,MY8255_C OUT DX,AL MOV AL,AH MOV BX,OFFSET TAB XLAT;通过查表找到对应的7段显示字符 MOV DX,MY8255_B OUT DX,AL CALL DELAY1ms MOV AL,0 OUT DX,AL MOV AH,1 INT 16H;有键按下则跳出                        JNZ QUIT disp ENDP 中断子程序模块是通过扩充中断源实现的,主要是通过设置8259的工作模式,开放TR1和TR0的中断,按上开关K后,TR0就发生中断,在TR0中断没有触发的情况下,从OU1口输出一个上升沿脉冲,TR1就中断一次,程序如下所示: QUERY: MOV DX,MY8259_OCW3        ;向8259的OCW3发送查询命令 MOV AL,0CH OUT DX,AL IN  AL,DX                  ;读出查询字 TEST AL,80H                ;判断中断是否已响应 JZ  QUERY                  ;没有响应则继续查询 AND AL,03H CMP AL,00H JE  IR0ISR                ;若为IR0请求,跳到IR0处理程序 JNE IR1ISR                ;若为IR1请求,跳到IR1处理程序 JMP EOI 基于单片机的编程语言是C语言,它主要有数码管显示程序和中断服务子程序。数码管的显示和上面汇编语言的原理一样,它的程序如下: void display(unsigned char t)//显示数码管函数 { P2=0xf5;选通两个高位数码管 P0=tab[t/10];取t的十位送到P0口显示 delay(); P2=0xF0;开通所有的数码管,避免闪烁 P2=0xfa;选通低位两个数码管 P0=tab[t%10];取t的个位送到P0口显示 delay(); P2=0xF0; } 中断服务子程序有计数器T0和计数器T1的子程序。T1的优先级低,它主要用于控制正常工作状态的红绿灯和数码管计数,而T0的优先级高,可以处理紧急情况,并且在处理紧急情况以后能返回原正常运行状态,这在汇编里面用的是栈保护,而在C语言中可以设置一个变量也存储原来的数据,可以达到同样保护数据的效果,这一点的实现代码如下: void Time0(void) interrupt 1 using 0 { t=0; count1=count;//寄存中断前count的值,以便中断结束后恢复 while(t!=125) { t++; sound=~sound; P10=0;//紧急情况绿灯全熄 P12=0; P11=1;//紧急情况红灯全亮 P13=1; P2=0xF0;//点亮两个数码管 count=88; display(count); TH0=(65535-921)/256; TL0=(65535-921)%256; } count=count1;//恢复原来count的值 if(a%2==0) {P10=1; P11=0; P12=0; P13=1;//返回主干道通行
本文档为【《微机原理与接口技术》课程设计实验报告-交通灯控制功能设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_036899
暂无简介~
格式:doc
大小:28KB
软件:Word
页数:0
分类:互联网
上传时间:2019-09-04
浏览量:56