计算机延时程序的设计与实现_第1页
计算机延时程序的设计与实现_第2页
计算机延时程序的设计与实现_第3页
计算机延时程序的设计与实现_第4页
计算机延时程序的设计与实现_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、 学科分类号(二级) 本科学生毕业论文(设计) 题目 计算机延时程序的设计与实现 姓名 朱兴江 学号104090467 院、系物理与电子信息学院 专业应用电子技术教育 指导教师 余鸿飞 职称(学历) (副教授) 计算机延时程序的设计与实现摘要:计算机延时程序在现在的应用的系统当中是必不可少的部分,本设计采用了74LS193和8253芯片来实现定时和延时的功能。74LS193是双时钟4位二进制同步可逆计数器,在本设计中74LS193是组成分频电路的一个重要组件,主要为8253计数器提供时钟源信号。利用计算机内部的8253芯片,8253芯片有6种工作方式,本设计选用方式3:方波频率发生器,使用汇编

2、语言编写程序,来实现精确延时。关键词:8253;74LS193;延时1、前言当今社会,随着人们生活水平质量的不断提高,人们对相应技术的要求越来越高,某些系统中的延时成了现在技术中不可或缺的重要的组成部分。在游戏设计中可以通过精确的延时,使游戏的操作动作更加的清晰,更加吸引玩家的眼球,从而获得更多的经济效益。相反如果没有精确的延时,会是什么的后果呢?例如,在游戏中,一架飞机从屏幕上飞过,如果没有演示程序进行精确的控制,瞬间就飞过屏幕,没有很好地视觉效果,如果通过延时程序进行控制,就可以看到他从屏幕飞过的整个过程。在现代社会中,大量的研究项目在过程的进行中都需要利用到计算机的精确延时。计算机的精确

3、延时程序正在进行构思设计阶段,正在面临着一个如何提高计算机的精确延时的问题。现实中的问题是:可不可以通过计算机的精确延时实现计算机开机,通过延时程序使一部分程序优先运行,减少CPU的负荷,加快其运行速度。这些问题都可以通过对计算机添加延时程序来进行解决。在本设计中采用了8253芯片和74LS193来实现计算机延时的功能,8253芯片有6种工作方式,本设计选用了第三种工作方式方波频率发生器,并且使用汇编语言编写程序,来实现精确的延时。2 可编程计数器/定时器8253在控制系统中,常常要求有一些实时时钟以实现定时或延时控制,如:定时中断、定时监测、定时扫描等等,也往往要求有计数器能对外部事件计数。

4、要实现定时或延时控制,有三种主要方法:软件定时、不可编程的硬件定时和可编程计数器/定时器。下面将介绍可编程计数器/定时器。可编程计数器/定时器是为了方便微型计算机系统的设计和应用而研制的,很容易和系统总线连接。它的定时值及其范围可以很容易的由软件来确定和改变,能够满足各种不同的定时和计数要求,因而在微型计算机系统的设计和应用中得到广泛的应用。2.1 8253的组成与接口信号8253是24条引线双列直插式封装的芯片,其外部引线和内部结构如图1.1所示,各电路及引线的功能如下。图1 8253的引线和内部结构2.2计数器的工作方式及其输入输出的关系8253是一种可编程定时/计数器,有三个十六位计数器

5、,其计数频率范围为0-2MHz,用+5V单电源供电。8253的功能用途:(1)延时中断;(2)可编程频率发生器;(3)事件计数器;(4)二进制倍频器;(5)实时时钟;(6)数字单稳;(7)复杂的电机控制器。8253的计数器有6种工作方式:(1)方式0:计数结束中断;(2)方式l:可编程频率发生;(3)方式2:频率发生器;(4)方式3:方波频率发生器;(5)方式4:软件触发的选通信号;(6)方式5:硬件触发的选通信号。2.2.1计数器的输出OUT计数器的输出与工作方式有关,6种工作方式的输出信号波形如图1.3。图2 6种工作方式的输出信号8253的计数器有6种工作方式中方式3方波发生器输出固定频

6、率的脉冲,而且具有“初值自动重装的功能”。方式3的详细波形图如图1.4。图3 方式3的波形图2.3 8253的控制字8253的工作方式由CPU向8253的控制字寄存器写入控制字来规定,其格式如图1.5。图4 8253的控制字SC1,SC0计数通道选择位。RL1,RL0读/写操作方式位。M2,M1,M0工作方式择位。BCD计数方式选择位。3 计算机延时电路的设计选用8253不同的通道进行工作,来控制发光二极管的亮和灭,亮和灭的周期不同,以此来显示延时。其中第一种方式采用的是:8253的0通道产生周期为30毫秒的方波,去控制发光二极管的亮和灭;第二种方式是:8253的0通道和1通道级联的工作方式,

7、产生周期为20秒的方波,去控制发光二极管的亮和灭。3.1 8253采用0通道图5 第一种方式实验连线图图3.1为第一种工作方式。8253的GATE0接+5V。8253的CLK0插孔接分频器74LS393(左下方)的T1插孔,分频器的频率源为8.0MHZ,T8.0MHZ,OUT0接一盏发光二极管。此时产生的方波信号的周期是30ms。通过接发光二极管,观察定时情况。3.2 8253采用级联方式图6 第二种方式实验连线图8253的GATE0、GATE1接+5V。8253的CLK0插孔接分频器74LS393(左下方)的T1插孔,分频器的频率源为8.0MHZ,T8.0MHZ,OUT0接CLK1,OUT1

8、接一盏发光二极管。实验程序在8253的OUT1输出周期为20秒的方波,通过接发光二极管,观察是否定时时间为10秒。图3.1采用0通道的方式进行连线,图3.2采用0通道和1通道级联的方式,可以得到不同周期的方波,通过对比图3.1和图3.2可以得出级联状态下可以延时。4 系统软件的设计4.1 延时程序设计需求分析因为要实现对LED的不同延时控制,所以采用了0号计数器单独控制延时和0号计数器级联1号计数器的方式控制延时的方式。在设计延时程序时,首先需要通过8253的A0、A1端口以及端口选择相应计数器的控制器端口,并写入控制字。在单独采用0号计数器的程序中,令为0,A0、A1都为1,即可对控制寄存器

9、进行写入。写入的控制字段中,D7和D6是控制相应的选择相应的计数器,因为第一个程序中采用的是0号计数器,所以此时这两位应该为00。D5、D4决定了计数初值N的写入方式,这里选择先写低八位,再写高八位的方式,所以这两位应该写入值11。D3、D2、D1是选择计数器输出的脉冲方式,这里因为要实现定期延时功能,所以采用周期性方波发生方式,即方式3,这三位应该写入值011或者111都可以。最后一位控制字D0是根据计数值的大小来决定的,1是BCD模式,最大值为10000,0是二进制模式,最大值为65536。在级联方式中,不仅要用0号计数器还要采用1号计数器,经0号计数器的输出脉冲作为1号计数器的时钟输入信

10、号。所以在写入控制字的时候,要先选定0号计数器的控制字写入端口,写入0号计数器的控制字,再选定1号计数器的控制字,写入其对应的控制字,写入方式都为先写低八位,再写高八位。1、 要选定0号计数器,写入控制字的D7、D6位应该为00,D5、D4决定了计数初值N的写入方式,这里选择先写低八位,再写高八位的方式,所以这两位应该写入值11。D3、D2、D1是选择计数器输出的脉冲方式,这里因为要实现定期延时功能,所以采用周期性方波发生方式,即方式3,这三位应该写入值011或者111都可以。最后一位控制字D0是根据计数值的大小来决定的,1是BCD模式,最大值为10000,0是二进制模式,最大值为65536。

11、2、 要选定1号计数器,写入控制字的D7、D6位应该为01,D5、D4决定了计数初值N的写入方式,这里选择先写低八位,再写高八位的方式,所以这两位应该写入值11。D3、D2、D1是选择计数器输出的脉冲方式,这里因为要实现定期延时功能,所以采用周期性方波发生方式,即方式3,这三位应该写入值011或者111都可以。最后一位控制字D0是根据计数值的大小来决定的,1是BCD模式,最大值为10000,0是二进制模式,最大值为65536。4.2基本延时程序模式及延时时间的计算8253内部包括3个功能完全相同和操作完全独立的计数通道,每个计数通道由16位减法计数器、16位计数初值寄存器和16位计数值锁存器组

12、成。计数初值寄存器的内容,在计数过程中保持不变。计数初值寄存器和计数值锁存器占用一个端口地址(即该计数通道口地址),CPU读取计数通道的当前计数值来自计数值锁存器。各通道可工作在计数器方式,此时被计数的事件以脉冲方式从CLK输入;各通道可工作在定时器方式,此时确定频率的时钟脉冲从CLK输入。计数初值=定时时间CLK周期。各通道的启动、禁止、允许计数与门控信号GATE有关,GATE的作用OUT的输出波形随各通道工作方式不同而不同。在这部分介绍基本延时程序以及延时程序的计算方法,但在这里只是介绍单循环的延时程序控制字的写入,对于相应的由汇编语言编写的代码部分,将在附录中给出。MOV DX,控制字写

13、入端口;MOV AL,控制字;OUT DX,AL;MOV DX,计数器初值写入端口;MOV AL,初值低八位;OUT DX,AL;MOV AL,初值高八位;OUT DX,AL;对于本设计中延时程序的计数初值计算,下面给出说明,无论是8253是连接0通道,还是将0通道和1通道进行级联,初始时钟信号都是采用的频率为8MHz的信号,经由74LLS193将信号转换为2MHz,通过计算得出产生周期为30ms的方波及20s的方波。方案一中,输入信号为2MHZ,输出方波周期为30ms,要达到这种效果,根据计数初值的计算公式得:N=60000,故方案一中控制字的D0位选择二进制方式,其值为0。方案二中,要求1

14、号计数器输出方波周期为20S,要达到这种效果,0号计数器的计数初值无需改变,为:N1=60000,1号计数器的技术初值为:N2=666,可以选择BCD计数方式或者二进制技术方式,所以方案二中1号计数器的控制字的D0为选0或1都可。这两种方案中的计数初值N都在计数范围内,是符合要求的,经过最终计算,方案一中的0号计数器控制字为:00110110B(36H);方案二中0号计数器控制字为:00110110B(36H),1号计数器控制字为:01110110B(76H)。5结束语本文利用74LS193和8253芯片来实现定时和延时的功能,在本问中74LS193是组成分频电路的一个重要组件,主要是来提供时

15、钟源信号,计算机内部的8253芯片的工作方式3:方波频率发生器来进行工作。本文中设计的电路简单有效,对于编写的汇编语言也是最为简单基础的编程,有利于在课堂上进行实验,操作简单。但是本文中的设计真正的应用到实际中还有要改进的地方,所以在后续的研究工作中我还会继续完善相应的软硬件部分的功能。Design and implementation for delay procedure of computerAbstract: Computer delay procedure is indispensable in the system, this design uses the 74LS193 chi

16、p and the 8253 chip to realize the functions of timing and time delay. 74LS193 is a dual clock 4 bit binary synchronous reversible counter, 74LS193 in this design is an important component of the frequency division circuit, mainly for the 8253 counter provides a clock signal. Using the computer insi

17、de the 8253 chip, the 8253 chip has 6 working modes, this design uses 3 ways: square wave frequency generator, the use of assembly language programming, to achieve the precise delay.Key words:8253;74LS193;delay附录:程序(汇编语言);/*/;程序1:利用8253,产生一个30ms方波:;计数器0,工作方式3,以二进制方式计数;0号计数器控制字为:00110110B(36H),计数初值为:

18、60000(EA60H);/*/CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE;=START: MOV DX,38BH ;8253的控制寄存器端口地址送DX MOV AL,36H ;选择计数器0;先写低8位,再写高8位;方式3;二进制计数 OUT DX,AL;方式控制字写入控制寄存器 MOV DX,388H;计数器0的地址送DX MOV AL,60H ;存入低8位计数值到AL寄存器中 OUT DX,AL;写入低8位 MOV AL,EAH;存入高8位计数值到AL寄存器中 OUT DX,AL;写入高8位 JMP $;=CODE ENDS END START;

19、/*/;/*/;程序2:利用8253,采用级联的方式,产生一个20s方波:;计数器0,工作方式3,以二进制方式计数,输出30ms方波;计数器1,工作方式3,以二进制方式计数,输出20s方波;0号计数器控制字为:00110110B(36H),计数初值为:60000(EA60H)。1号计数器控制;字为:01110110B(76H),计数初值为:666(029AH);/*/CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE;=START: MOV DX,38BH ;8253的控制寄存器端口地址送DX MOV AL,36H ;选择计数器0;先写低8位,再写高8位;方

20、式3;二进制计数 OUT DX,AL;方式控制字写入控制寄存器 MOV DX,388H;计数器0的地址送DX MOV AL,60H ;存入低8位计数值到AL寄存器中 OUT DX,AL;写入低8位 MOV AL,EAH;存入高8位计数值到AL寄存器中 OUT DX,AL;写入高8位MOV DX,38BH ;8253的控制寄存器端口地址送DX MOV AL,76H ;选择计数器1;先写低8位,再写高8位;方式3;二进制计数 OUT DX,AL;方式控制字写入控制寄存器 MOV DX,389H;计数器1的地址送DX MOV AL,9AH ;存入低8位计数值到AL寄存器中 OUT DX,AL;写入低8位 MOV AL,02H;存入高8位计数值到AL寄存器中 OUT DX,AL;写入高8位 JMP $;=CODE ENDS END START;/*/ 参考文献:1

温馨提示

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

评论

0/150

提交评论