微机原理实验交通灯控制实验22872.pdf
《微机原理实验交通灯控制实验22872.pdf》由会员分享,可在线阅读,更多相关《微机原理实验交通灯控制实验22872.pdf(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-课 程 设 计 课程设计名称:交通灯控制实验 专 业 班 级:学 生 姓 名:*:指 导 教 师:课程设计时间:微机原理 专业课程设计任务书 学生 专业班级 *题 目 交通灯控制实验 课题性质 工程设计 课题来源 自拟课题 指导教师 同组 主要容 L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律亮灭。-任务要求 1:掌握并理解芯片 8255 和 8253 计时器工作原理 2:掌握并理解源程序和程序中的函数 3:熟悉 8255 部构造和与单片机的接口逻辑,掌握 8255 芯片的 3
2、种工作方式。4:了解单片机外围芯片 8255 的工作原理、初始化编程以及输入、输出程序设计方法 参考文献 微型计算机原理及运用 谭浩强 清华大学 16/32 位微机原理、汇编语言及接口技术涛 机械工业 微机接口技术应用 审查意见 指导教师签字:教研室主任签字:年 月 日 一:设计的目的和容 1 目的:通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。2 容:如图1,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东 西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律亮灭。图 1 二:设计思想:在选择循环的时间
3、上,教师上课时说过,长延时可以采用双层嵌套,-外层嵌套为 0FFFFH,层嵌套为 4000H,我在编程时外层送进了 0,相当于初值为 65536,层送进了 4000H。为了到达闪烁和延时的区别,我在编闪烁的程序时,给外层嵌套送入初值 3000H,层 0100H这是我通过实验的结果。人眼感觉闪烁的效果只是短延时的结果 此方案是通过并行接口芯片 8255A 和 8086 计算机的硬件连接,以及通过8253 延时的方法,来实现十字路口交通灯的模拟控制。如上图所示,红灯RLED,黄灯YLEDD和绿灯GLED分别接在8255 的 A,B,C 口的低四位端口,PA0,PA1,PA2,PA3 分别接南,东,
4、北,西路口的红灯,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 即方波发生器方式,理
6、论设计输出 周期为 0.01s 的方波。1MHZ的时钟脉冲其重复周期为 T=1/1MHZ=1s,因此通道 0 的计数初值为10000=2710H。由此方波分别作为 clock1和 clock2的输入时钟脉冲,所以通道 1 和通道 2 的输入时钟频率为 100HZ,通道 1 作计数器工作在方式 1,计数初值 3000=BB8H既30s,计数到则输出一个高电平到8255 的PA7口,8255将 A 口数据输入到 8086,8086 检测到高电平既完成30s 定时。通道 2 工作在方式 3 需输出一个 1HZ 的方波,通过一个或门和8086 共同控制黄灯的闪烁,因此也是工作在方波发生器方式,其计数初
7、值为 100=64H,将黄灯的状态反应到 8055 的端口 PB7 和 PC7,同样输入到 8086,8086 通过两次检测端口状态可知黄灯的状态变化,计 9 次状态变化可完成 5 次闪烁。三个通道的门控信号都未用,均接5V 即可。四:程序流程图 开场 设置 8255A 口输出 C 口输出 南北路口绿灯亮,东西路口红灯亮 长延时 长延时 南北路口黄灯亮,东西路口红灯亮 南北路口红灯亮,东西路口绿灯亮 南北路口绿灯亮,东西路口红灯亮 是否有键按下?-五:程序分析 1:源程序 data segment io8255a equ28ah io8255b equ28bh portc1 db24h,44h
8、,04h,44h,04h,44h,04h;六个灯可能 db81h,82h,80h,82h,80h,82h,80h;的状态数据 db0ffh;完毕标志 data ends code segment assumecs:code,ds:data start:mova*,data movds,a*movd*,io8255b moval,90h outd*,al;设置8255为C口输出 movd*,io8255a re_on:movb*,0 on:moval,portc1b*cmpal,0ffh 返回 DOS-jz re_on outd*,al;点亮相应的灯 incb*movc*,200;参数赋初值 t
9、estal,21h;是否有绿灯亮 jz de1 ;没有,短延时 movc*,2000;有,长延时 de1:movdi,9000;di赋初值9000 de0:decdi;减1计数 jnz de0 ;di不为0 loop de1 pushd*movah,06h movdl,0ffh int21h popd*jz on ;没有,转到on e*it:movah,4ch;返回 int21h code ends end start 可通过对c*的初始值设定来改变黄色灯亮的时间间隔来改变红灯亮的时间-长度。2:调用函数分析 中断-中断函数简介 1、EnableIntr;语法:BOOL EnableIntr(
10、);功能描述:将微机实验装置的中断输入设为有效,执行此函数后,PL*9054将承受微机 实验装置上的中断请求,然后根据该请求申请一个PCI中断。参数:无 返回值:如果成功,则返回True,否则返回False 备注:应用程序在调用该函数之前,必须先调用Startup函数。2、DisableIntr;语法:BOOL DisableIntr();功能描述:将微机实验装置的中断输入设为无效,执行此函数后,PL*9054将不相应微 机实验装置上的中断请求 参数:无 返回值:如果成功,则返回True,否则返回False 备注:应用程序在调用该函数之前,必须先调用Startup函数。3、RegisterIS
11、R;语法:BOOL RegisterISR(ISR_ROUTINE pfuncISR);功能描述:注册中断效劳程序,当微机实验箱上的中断输入有效时,且实验箱上-的中断 输入使能,程序将会执行该中断效劳程序。参数:pfuncISR:该参数即为中断效劳函数名 返回值:如果成功,则返回True,否则返回False 备注:应用程序在调用该函数之前,必须先调用 Startup 函数 六:调试记录及结果分析 1:本电路没有设置显示倒计时的七段 LED 数码管,如果应用到街道上,不利于司机、行人把握 2:在上机调试中发现,由于此软件延时的时间均为估算时间,不是特别准确,对于交通要求特别高的地方不宜采用。如果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验 交通灯 控制 22872
限制150内