课程设计定时器的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息工程学院
课程设计报告
设计题目: 定时器的设计
名称: 微机原理与接口课程设计
班级:
姓名:
学号:
设计时间: 12.09 至12.22
指导教师:
评语:
评阅成绩: 评阅教师:
一、课程设计的性质和目的
通过课程设计,进行硬件设计和程序设计的方法和技能训练,巩固在课堂上学到的有关软件程序设计和硬件电路设计的基本知识和基本方法,通过具体课题的训练,进一步熟悉汇编语言的结构和使用方法,掌握软硬结合的控制程序设计,达到能独立阅读、查阅资料、编制和调试完善特定功能的目的。
二、课程设计的要求
1、遵循硬件设计模块化。
2、要求程序设计结构化。
3、程序简明易懂,多运用输入输出提示,有出错信息及必要的注释。
4、要求程序结构合理,语句使用得当。
5、适当追求编程技巧和程序运行效率。
三、主要仪器设备及软件
PC机、MASM汇编软件、绘图软件及仿真等。
四、课程设计题目及要求
要求:采用8086系列CPU构建控制系统,采用定时器完成定时功能,延时控制LED灯的点亮与熄灭。
五、课题分析及设计思路
1.设计方法与步骤:
1.设计系统的硬件部分
(1)进行方案选择,采用中断方式,硬件中断
(2)选择设计可能用到的芯片,分析他们的工作特点
(3)按照各芯片的使用特点和系统设计逐步连接,画出硬件连接图
2.设计系统的软件部分
(1)将程序的编程方式决定是子程序调用
(2)确定本系统设计的源程序的各个模块,明确各个模块的系统功能
(3)画出各个模块的程序流程图
(4)依据流程图写出信号灯全部汇编程序
芯片选择:选择8086作为CPU,输入输出用8255,定时用8253,中断用8259,因为8086的地址线和数据线是分时复用的,即先传送地址,在传送数据。所以选用74LS373作为地址锁存器,然后用74LS138作为地址译码器来接到各个芯片的片选端。选用74LS245做数据缓冲器。
考虑到1HZ脉冲定时不精确,所以用1.19MHZ的脉冲,而且用查询方式来实现的话,CPU利用率不高,还是选择中断来实现!
2.设计思路:
要求通过8086控制定时器,来实现信号灯功能,将此设计分成几部分。首先通过8255的A端口输入八位二进制数,将A端口设置为1方式输入,通过开关拨动的高低电平将二进制送到8255内。B端口接输出的发光二极管,设置为1方式输出,用以显示定时的数据。当8253定时器没有启动时,没用中断请求,此时8255B端口没输出,C端口接的信号灯控制输出低电平,信号灯熄灭。定时启动时,通过开关电源下降沿触发,将信号通过D触发器,接非门输出24V电压,继电器的常开开关闭合,接到8253的GATE接口,使8253开始工作,8253接1M赫兹脉冲!每一秒后8253内的计数器会进行减一,将8253OUT输出接到8259的中断端IN0,向CPU申请中断,CPU响应后,转向处理中断服务程序,会控制8255的B端口输出的数减一,C端口继续输出高电平,,信号灯继续亮!表明正在计时。中断处理完后,8086返回断点,等待下一个中断.8253每减一都中断一次,使8255输出减一,当减到0时,C端口输出低电平,信号灯熄灭,定时过程结束。
硬件设计:
一.输入输出(8255实现)
8255A在使用前要写入一个方式控制字,选择A、B、C三个端口各自的工作方式,共有三种;
方式0 :基本的输入输出方式,即无须联络就可以直接进行的I/O方式。其中A、B、C口的高四位或低四位可分别设置成输入或输出。
方式1 :选通I/O,此时接口和外围设备需联络信号进行协调,只有A口和B 口可以工作在方式1,此时C口的某些线被规定为A口或B口与外围设备的联络信号,余下的线只有基本的I/O功能,即只工作在方式0.
方式2:双向I/O方式,只有A口可以工作在这种方式,该I/O线即可输入又可输出,此时C口有5条线被规定为A口和外围设备的双向联络线,C口剩下的三条线可作为B口方式1的联络线,也可以和B口一起方式0的I/O线。
此次设计的具体操作
首先将待输入的计数值通过开关以BCD码送到8255A端口中,A端口为0方式的输入,B端口为0方式的输出,接到发光二极管上。将8255的地址线与8066的低八位相连,通过地址锁存器74LS273接到8255,将片选端通过地址译码器接到8086上,C端口作为普通的输出端,接信号灯,即发光二极管。读写分别接到8086的读写上,8086的数据线通过锁存器后选择Q0,Q1接到8255的A0,A1上。
二、定时器(8253实现)
8253具有3个独立的计数通道,采用减1计数方式。在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。当计数脉冲是已知周期的时钟信号时,计数就成为定时。
(一)、8253内部结构
1.数据总线缓冲器数据总线缓冲器与系统总线连接,8
这是8253与CPU之间的数据接口,它由8
CPU与8253之间交换信息的必经之路。
读/写控制读/写控制分别连接系统的IOR#和IOW#,由CPU控制着访问8253的内部通道。接收CPU送入的读/写控制信号,A1A0:端口选择信号,由CPU输入。8253内部有3个独立的通道和一个控制字寄存器,它们构成8253芯片的4个端口,CPU可对3个通道进行读/写操作3对控制字寄存器进行写操作。这4个端口地址由最低2位地址码A1A0来选择。。
3.通道选择(1) CS#——片选信号,由CPU输入,低电平有效,通常由端口地址的高位地址译码形成。(2) RD#、WR#——读/写控制命令,由CPU输入,低电平有效。RD#效时,CPU读取由A1A0所选定的通道内计数器的内容。WR#有效时,CPU将计数值写入各个通道的计数器中,或者是将方式控制字写入控制字寄存器中。。
4.计数通道0~2 每个计数通道内含1个16位的初值寄存器、减1计数器和1个16位的(输出)锁存器。8253内部包含3个功能完全相同的通道,每个通道内部设有一个16位计数器,可进行二进制或十进制(BCD码)计数。采用二进制计数时,最大计数值是FFFFH,采用BCD码计数时。最大计数值是9999。与此计数器相对应,每个通道内设有一个16位计数值锁存器。必要时可用来锁存计数值。
(二)、8253定时器的工作步骤
①设置通道:向方式控制字寄存器端口写入方式选择控制字,用于确定要设置的通道及工作方式;
②计数/定时:向通道写入计数值,启动计数操作;
③读取当前的计数值:向指定通道读取当前计数器值时,8253将计数器值存入锁存器,从锁存器向外提供当前的计数器值,计数器则继续作计数操作。
④计数到:当计数器减1为0时,通过引脚OUTi向外输出“到”的脉冲信号。
(三)、具体的实现方法
将8253的数据线接在8086上,读写控制端也分别接在8086的读写上,CLK 接一个时钟脉冲,GATE接到开关电源控制的继电器上,OUT端接到8259的中断信号上,每一次减一都申请一次中断。