课程设计定时器的设计_第1页
课程设计定时器的设计_第2页
课程设计定时器的设计_第3页
课程设计定时器的设计_第4页
课程设计定时器的设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、信 息 工 程 学 院 课 程 设 计 报 告设计题目: 定时器的设计 名 称: 微机原理与接口课程设计 班 级: 姓 名: 学 号: 设计时间: 12.09 至 12.22 指导教师: 评 语: 评阅成绩: 评阅教师: 一、课程设计的性质和目的通过课程设计,进行硬件设计和程序设计的方法和技能训练,巩固在课堂上学到的有关软件程序设计和硬件电路设计的基本知识和基本方法,通过具体课题的训练,进一步熟悉汇编语言的结构和使用方法,掌握软硬结合的控制程序设计,达到能独立阅读、查阅资料、编制和调试完善特定功能的目的。二、课程设计的要求1、遵循硬件设计模块化。2、要求程序设计结构化。3、程序简明易懂,多运用

2、输入输出提示,有出错信息及必要的注释。4、要求程序结构合理,语句使用得当。5、适当追求编程技巧和程序运行效率。三、主要仪器设备及软件PC机、MASM汇编软件、绘图软件及仿真等。四、课程设计题目及要求要求:采用8086系列CPU构建控制系统,采用定时器完成定时功能,延时控制LED灯的点亮与熄灭。五、课题分析及设计思路1.设计方法与步骤: 1.设计系统的硬件部分 (1)进行方案选择,采用中断方式,硬件中断 (2)选择设计可能用到的芯片,分析他们的工作特点 (3)按照各芯片的使用特点和系统设计逐步连接,画出硬件连接图 2.设计系统的软件部分 (1)将程序的编程方式决定是子程序调用 (2)确定本系统设

3、计的源程序的各个模块,明确各个模块的系统功能 (3)画出各个模块的程序流程图 (4)依据流程图写出信号灯全部汇编程序芯片选择:选择8086作为CPU,输入输出用8255,定时用8253,中断用8259,因为8086的地址线和数据线是分时复用的,即先传送地址,在传送数据。所以选用74LS373作为地址锁存器,然后用74LS138作为地址译码器来接到各个芯片的片选端。选用74LS245做数据缓冲器。考虑到1HZ脉冲定时不精确,所以用1.19MHZ的脉冲,而且用查询方式来实现的话,CPU利用率不高,还是选择中断来实现!2.设计思路:要求通过8086控制定时器,来实现信号灯功能,将此设计分成几部分。首

4、先通过8255的A端口输入八位二进制数,将A端口设置为1方式输入,通过开关拨动的高低电平将二进制送到8255内。B端口接输出的发光二极管,设置为1方式输出,用以显示定时的数据。当8253定时器没有启动时,没用中断请求,此时8255B端口没输出,C端口接的信号灯控制输出低电平,信号灯熄灭。定时启动时,通过开关电源下降沿触发,将信号通过D触发器,接非门输出24V电压,继电器的常开开关闭合,接到8253的GATE接口,使8253开始工作,8253接1M赫兹脉冲!每一秒后8253内的计数器会进行减一,将8253OUT输出接到8259的中断端IN0,向CPU申请中断,CPU响应后,转向处理中断服务程序,

5、会控制8255的B端口输出的数减一,C端口继续输出高电平,信号灯继续亮!表明正在计时。中断处理完后,8086返回断点,等待下一个中断.8253每减一都中断一次,使8255输出减一,当减到0时,C端口输出低电平,信号灯熄灭,定时过程结束。 开始 设定定时初始值开关电源触发,8253工作,减一8259收到中断8259向8086申请中断8255输出为0信号灯亮,定时返回断点8255输出减一处理中断服务程序CPU响应中断 否 定时结束C输出电平,信号灯熄灭 是硬件设计:一输入输出(8255实现) 8255A在使用前要写入一个方式控制字,选择A、B、C三个端口各自的工作方式,共有三种; 方式0 :基本的

6、输入输出方式,即无须联络就可以直接进行的 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端口中

7、,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

8、位双向,与CPU交换信息的通道。这是8253与CPU之间的数据接口,它由8位双向三态缓冲存储器构成,是CPU与8253之间交换信息的必经之路。 2.读写控制 读写控制分别连接系统的IOR#和IOW#, 由CPU控制着访问8253的内部通道。接收CPU送入的读写控制信号,A1A0:端口选择信号,由CPU输入。8253内部有3个独立的通道和一个控制字寄存器, 它们构成8253芯片的4个端口,CPU可对3个通道进行读写操作3对控制字寄存器进行写操作。 这4个端口地址由最低2位地址码A1A0来选择。 3.通道选择 (1) CS#片选信号,由CPU输入,低电平有效,通常由端口地址的高位地址译码形成。 (

9、2) RD#、WR#读写控制命令,由CPU输入, 低电平有效。RD#效时,CPU读取由A1A0所选定的通道内计数器的内容。WR#有效时,CPU将计数值写入各个通道的计数器中, 或者是将方式控制字写入控制字寄存器中。 4.计数通道02 每个计数通道内含1个16位的初值寄存器、减1计数器和1个16位的(输出)锁存器。8253内部包含3个功能完全相同的通道,每个通道内部设有一个16位计数器,可进行二进制或十进制(BCD码)计数。采用二进制计数时, 最大计数值是FFFFH, 采用BCD码计数时。 最大计数值是9999。与此计数器相对应, 每个通道内设有一个16位计数值锁存器。必要时可用来锁存计数值。

10、(二)、8253定时器的工作步骤 设置通道:向方式控制字寄存器端口写入方式选择控制字,用于确定要设置的通道及工作方式; 计数/定时:向通道写入计数值,启动计数操作; 读取当前的计数值:向指定通道读取当前计数器值时,8253将计数器值存入 锁存器,从锁存器向外提供当前的计数器值,计数器则继续作计数操作。 计数到:当计数器减1为0时,通过引脚OUTi向外输出“到”的脉冲信号。 (三)、具体的实现方法 将8253的数据线接在8086上,读写控制端也分别接在8086的读写上,CLK接一个时钟脉冲,GATE接到开关电源控制的继电器上,OUT端接到8259的中断信号上,每一次减一都申请一次中断。三、中断服

11、务(8059实现) (一)、8259工作原理 8259A通过发送一个INTR(Interrupt Request)信号给CPU,通知CPU有一个中断到达。CPU收到这个信号后,会暂停执行下一条指令,然后发送一个INTA(Interrupt Acknowledge)信号给8259A。8259A收到这个信号之后,马上将ISR中对应此中断请求的Bit设置,同时IRR中相应的bit会被reset。比如,如果当前的中断请求是IR3的话,那么ISR中的bit-3就会被设置,IRR中IR3对应的bit就会被reset。这表示此中断请求正在被CPU处理,而不是正在等待CPU处理。 CPU从Data Bus上得

12、到这个中断向量之后,就去IDT中找到相应的中断服务程序ISR,并调用它。如果8259A的End of Interrupt (EOI)通知被设定位人工模式,那么当ISR处理完该处理的事情之后,应该发送一个EOI给8259A。 (二)、具体实现过程 将8259的 数据线与8086相连,INT和INTA分别和8086的INTR和INTA相连,中断IR0与8253的OUT端口连接。读写控制端接到8086的读写上,片选通过译码后接到一个输出端4、 启动部分(继电器实现) 开关电源控制继电器 电气隔离 启动8253 整体框图开关 8255信号灯输出二极管74LS245825374LS13874LS373

13、8086 8259OUT启动装置 A0A1硬件电路连接图软件编程: 开始中断程序流程图AX,BX推入堆栈标志寄存器入栈调用子程序,使8255B端口输出减1标志寄存器出栈AX,BX出栈中断返回程序流程图: 开始 8255输出为0CX地址增加找到中断地址中断返回执行中断服务程序CPU响应中断 8259申请中断8253定时工作将计数输出到8255端口A中断服务程序设定8253的工作方式 建立中断地址入口表确定8259的各个中断的方式将8255置控制字确定退出 否 是六、程序主要代码与分析(关键代码要有注释):data segment aa db 0c3hdata endsstack1 segment

14、 stack dw 64 dup(?)stack1 endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax cli;关中断开始初始化;把中断服务程序的入口地址写入中断向量表中,使用的中断类型号为0FH push ds xor ax,ax mov ds,ax mov si,4*0fh;找到该中断类型号在中断向量表中的首地址 mov ax,offset irq7 add ax,2000h mov word ptr si,ax;把中断服务程序的偏移地址放入低字中 mov ax,0 mov word ptr si+2,ax

15、;把中断服务程序的段地址放入高字中 pop ds;8259A初始化,其中地址为20H和21H mov al,13h;设置ICW1,单片,上升沿触发,需要设置ICW4 out 20h,al;ICW1写入8259A的偶地址中 mov al,08h;设置ICW2,中断类型号的基值(即IR0的类型号)为08H out 21h,al;ICW2写入8259A的奇地址中;由于是单片8259,所以不需要设置ICW3 mov al,09h;设置ICW4,非自动结束,缓冲方式,完全嵌套 out 21h,al;ICW4写入8259A的奇地址中 mov al,6fh;设置OCW1,开放4和7的中断请求口 out 21

16、h,al;OCW1写入8259A的奇地址中;8255A初始化,其中地址A口:60H,B口:61H,C口:62H,控制口:63H mov al,80h;设置8255A工作方式控制字,A、B口都为方式0,输出 out 63h,al mov al,0ffh out 61h,al;B口屏蔽;8253初始化,其中地址为通道0:40H,通道1:41H,通道2:42H,控制寄存器:43H mov al,35h;设置8253控制字,通道0为工作方式2,BCD计数,先读写低字节,后读写高字节(方式2不用写初值) out 43h,al mov al,00h;设置计数通道0的计数初值,先送低字节 out 40h,a

17、l mov al,50h;计数通道0的计数初值高字节 out 40h,al mov al,0b1h;设置8253控制字,通道2为工作方式0,BCD计数,先读写低字节,后读写高字节 out 43h,al mov al,37h;把计数初值写入通道2,先送低字节 out 42h,al mov al,02h;计数通道2的计数初值高字节 out 42h,al sti;初始化完毕,开中断;中断服务程序irq7: push ax;保护现场 push cx mov al,37h;把计数初值写入通道2,先送低字节 out 42h,al mov al,02h;计数通道2的计数初值高字节 out 42h,al xo

18、r di,di mov cx,2 mov di,offset numberl5: cmp word ptrdi,0;先比较个位,再比较十位 jz l7 dec word ptr di jmp exitl7: add di,2 cmp word ptr di,0 jne l3 mov si,offset aa mov al,byte ptrsi out 62h,al not al mov byte ptrsi,al;重新对al赋值 mov word ptrdi,6 jmp exit l3: sub di,2 mov word ptr di,9 add di,2 cmp word ptrdi,0 jz l4 dec word ptrdi jmp exitl4: mov word ptrdi,5 add di,2 loop l5 exit:pop cx;恢复现场 pop ax mov al,

温馨提示

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

评论

0/150

提交评论