微机接口-8253定时器实验报告_第1页
微机接口-8253定时器实验报告_第2页
微机接口-8253定时器实验报告_第3页
微机接口-8253定时器实验报告_第4页
微机接口-8253定时器实验报告_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、精选文档浙江工业大学计算机学院实验报告实验名称8253定时器实验姓名学号班级教师日期可编辑精选文档一、实验内容与要求1.1 实验内容计数器方式2 实验: 将 8253 芯片的计数器0 的工作方式设置为方式2,计数器初值为N,用手动开关逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用TPC-USB 平台上的LED灯观察 OUT0 电平变化(当输入第N 倍数个脉冲后OUT0 变低电平,LED 灯由亮变灭,其余脉冲 OUT0 都是高电平,LED 灯都处于亮状态)。计数器方式3 实验: 将计数器0、计数器1 的工作方式分别设置为方式3,计数初值设为1000 ,并同时用TPC-USB 平台上的LED

2、灯观察 OUT1 电平变化(频率1Hz) 。1.2 实验要求(1) 具有一定的汇编编程的基础,能编写一些基本语句来实现实验。实验前根据实验流程图,写出对应代码;(2) 要了解 8253 定时/计数器芯片内部结构和外部引脚,了解芯片的硬件连接方法、时序关系、各种模式的编程及应用,能熟练地对其进行编程;(3) 熟悉实验平台TPC-USB 了解各个接口的名称与功能,进行实验时能快速并正确地连接好实验电路;(4) 计数器方式2 实验:连接PC 与 TPC-USB 平台,用微机实验软件运行程序,用手动开关逐个输入单脉冲,在屏幕上能一次显示计数值,当输入第N 倍数个脉冲后OUT0 变低电平,TPC-USB

3、 平台上的LED 灯由亮变灭,其余脉冲OUT0 都是高电平,LED 灯都处于亮状态;(5) 计数器方式3 实验: 连接 PC 与 TPC-USB 平台, 用微机实验软件运行程序,TPC-USB平台上的LED 灯能周期性地亮灭,频率为1Hz。可编辑精选文档可编辑:、实验原理与硬件连线2.1实验原理1、8253定时/计数器芯片的内部结构:D7-D0(计数器0计数器1CS计数器2-一-二 r ' Z控制字 寄存器读/写控制 逻辑A0 A1 RDXWR*数据总线缓冲器CLKGATE OUTCLK1GATE.OUTCLKGGATE>OUT图1 8253内部结构图(1)数据总线缓冲器:三态双

4、向8位寄存器,与系统数据总线相连,可寄存以下3种数据:? CPU向8253/8254 写入的工作方式命令字;? CPU向计数寄存器写入的计数初值;? 从计数器读出的当前计数值。读/写控制逻辑:接收CPU发来的读、写、片选和地址信号,选择相应的寄存器,进行读写操作(3)控制字寄存器:接收CPU发来的控制字(只写)控制字的功能:?选择计数器;?确定计数器的工作方式;?确定计数初值的格式(高低 8位或16位);? 确定计数格式:二进制或 BCD格式。(4)计数器02 :3个结构相同、相互独立的计数器。每个计数器包含一个16位初值寄存器、一个16位减1计数器和一个16位输出锁存器。计数器内部结构如下图

5、所示:计数开始前需写入初值。同时该值被送入减1计数0计数过程中,初值寄存器中的值保持不变。16位计数初值寄存器每个CLK计数减U1。减为0时,OUT控制单元16位减1计数器UCLK GATE OUT器。MAX = 216-1端输出波形。锁存减1计数器的值,以供读出和查询。16位当前计数值所存器条件满足时,若想获取当前计数值,不能直接从减1计数 器读出,而是必须先锁存,再从锁存器读出。2、8253的工作方式:8253A 一共有6种工作方式:方式0 计数期间低电平输出(GATE高电平时计数)方式1 计数期间低电平输出(GATE上升沿重新计数)方式2周期性输出负脉冲方式3周期性输出方波方式4软件触发

6、输出单脉冲方式5硬件触发输出单脉冲6种工作方式的区别在于:?输出波形不同。?启动计数器的触发方式不同。? 计数过程中门控信号GATE对计数操作的影响不同本次实验要用到的是方式2和方式3:(1)方式2 周期性输出负脉冲:1)向计数器写入方式2控制字后,WR的上升沿使OUT信号变高。写入初值后,在 CLK下降沿进行减1计数。减为1时,OUT变低并维持一个周期,然后又变高,并自动装入初2) GATE为高电平允许计数,为低电平终止计数。待GATE恢复高电平后,计数器将按原来设定的计数值重新计数。工作时序如图3所示。图3 方式2特点2工作时序图4方式2特点3工作时序(2)方式3 周期性输出方波:初值为偶

7、数的工作时序如图 5所示。写入方式字后,OUT信号变高。写入初值后开始 减1计数;减到n/2时,OUT变低继续计数;减到0时,OUT变高,并自动装入初值重3、8253的编程:8253 的方式控制字:计教器 读写格式工作方式教制0:二进制编码1: BCD编码D D, D$ D* D3 Di D |000:001:方式1 X1O:方太2X11:方式3 100:方式4101:方式5实验中:对应的方式控制字:00010100B=14H;对应的方式控制字:00110110B=36H对应的方式控制字:01110110B=76H计数器方式2实验:将计数器0设置为方式2计数器方式3实验:将计数器0设置为方式3

8、将计数器1设置为方式38253的初始化编程:初始化编程分两步,即对所用到的计数器写方式控制字;将计数初始值写入相应的计数器。方式控制字要送到控制端口,即对应A1A0=11。计数初值要送到相应的计数器端口:计数器0的初值要送到 A1A0=00所对应的端口;计数器 1的初值要送到 A1A0=01所对应的端口;计 数器2的初值要送到A1A0=10 所对应的端口。2.2硬件连线 计数器方式2实验的连线如图 6所示:CS接端口地址280H287H ,CLK0接单脉冲按钮,GATE0接+5V 电源,OUT0接LED灯。280H图6 TPC-USB平台计数器方式2实验连线图(2)计数器方式3实验的连线如图

9、7所示:CS接端口地址 280H287H , GATE0、GATE1接+5V电 源,CLK1与OUT0连接,CLK0接1MHZ 的时钟脉冲。U5 8253280HCSOUT1GATE1CLK1OUTCGATE01314+5V1011+5VCLK01MHZ图7 TPC-USB平台计数器方式3实验连线图三、设计思路、步骤和程序流程图3.1 设计思路本次实验做的是计数器实验,需要用到8253定时/计数器芯片,了解芯片的内部结构后,理解芯片的计数原理,8253芯片的工作方式有多种,所做的实验是方式2和方式3,理解了工作方式后,便可根据 8253芯片的初始化编程步骤画出程序流程图,再根据流程图,写出实验

10、程序。根据实验连接图连接好电路,运行程序,便可达到计数和计时的目的。本次实验采用方式2 而不是方式0 的原因:项计数器写入方式2 控制字后,OUT 端输出高电平作为起始电平。写入计数初值后,计数器开始在CLK 时钟下降沿进行减1 计数;当减到1 时, OUT 端将由高电平变为低电平并维持一个 CLK 周期宽度,然后OUT 又变为高电平。并自动重新装入原计数初值,重新开始计数过程。这刚好与实验内容相符,而方式0 是自动减1 的,而且无法自动重新装入原计数初值。计数器方式3 实验的原理:计数器0 工作在方式3 下,方式3 的特点是输出方波,由于初始值为 1000 ,所以相当于CLK0 输出 100

11、0 个脉冲后,OUT0 输出一个方波;相对的,计数器1 也工作在方式3 下, 初始值也为1000 ,相当于OUT0 输出 1000 个方波后,OUT1 才输出一个方波,归结起来,CLK0 的频率是OUT1 频率的 1000000 倍,所以最后输出的方波频率为1HZ。3.2 实验步骤(1) 按图 6 连接好实验电路;(2) 根据图8 流程图编写程序,并运行;(3) 用手动开关逐个输入单脉冲,观察屏幕显示结果和TPC-USB 平台上 LED 灯亮灭状态;(4) 按图7 连接好实验电路;(5) 根据图9 流程图编写程序,并运行;(6) 观察TPC-USB 平台上 LED 灯亮灭状态,和亮灭的频率。3

12、.3程序流程图设置计数器0工作方式2送计数器初值读计数器值显示计数器值十位数显示计数器值个位数NoTPC-USB平台计数器方式2实验流程图图8 TPC-USB平台计数器方式3实验流程图四、程序清单与执行结果4.1 程序清单(1) 计数器方式2 实验:code segmentassume cs: codestart:mov al,14hmov dx,283hout dx,almov al,14hmov dx,280hout dx,alAA:;mov al,0000000;mov dx,283h;out dx,almov dx,280hin al,dxcmp al,9jbe PRINTmov ah

13、,0mov bl,10div blpush axmov dl,aladd dl,30hmov ah,2;设置 8253 通道 0 为工作方式2,二进制计数;锁存;读锁存器; 判断是否小于9; 将十位的数字转换成ASCII 码;显示十位int 21hpop axmov al,ahPRINT:add al,30h;将小于 9 的数字转换成ASCII 码mov dl,almov ah,2;显示存在dl 中的个位int 21hmov dl,0dh;换行,回车mov ah,02hint 21hmov dl,0ahmov ah,02hint 21hmov ah,06h;判断有无键按下mov dl,0ffh

14、int 21hjz AA;若无,则继续计数输出mov ah,4ch;否则,退出int 21hcode endsend start(1) 计数器方式3 实验:code segmentassume cs:codestart:mov dx,283h;向 8253 写控制字mov al,36h;使计数器0 为工作方式3out dx,almov ax,1000mov dx,280h out dx,al mov al,ah out dx,almov dx,283hmov al,76h out dx,al mov ax,1000 mov dx,281h out dx,almov al,ah out dx,a

15、l mov ah,4ch int 21hcode endsend start4.2 执行结果(1) 计数器方式2 实验:;写入循环计数初值1000; 先写入低字节; 后写入高字节;使计数器1 为工作方式3;写入循环计数初值1000;先写低字节;后写高字节;程序退出连接好的实验电路图,如图10 所示:图10计数器方式2实验电路连接实物图用手动开关逐个输入单脉冲,观察屏幕上显示的内容,计数从 20开始,每按一次开关,计 数减1 ,减到1后,又从20开始计数,如图12、13、14所示;并同时用TPC-USB平台上的 LED灯观察OUT0电平变化,当输入第 20倍数个月冲后 OUT0变低电平,LED灯

16、由亮变灭, 其余脉冲OUT0都是高电平,LED灯都处于亮状态,如图10所示。修上内"-OriI* *阳朕I急/潮壬口正卷当计数减到1时,输出从高电平变成低电平,LED灯灭,如下图11所示。之后再从20开始计数,如上图1220这些图所示。图11计数值为01时的LED灯的情况当键盘有键按下时,程序退出,如下图 21所示:IT fk|工;fflncbs fnr ind殖学 一 D iswl"尸E:EXEC> tSEXEO图21程序退出图(2)计数器方式3实验:连接好的实验电路图,如图22、23所示:运行程序,观察TPC-USB平台上的LED灯观察OUT1电平变化,发现LED

17、等周期性地亮灭,频率为1Hz。五、程序调试说明和实验感想5.1 调试说明3的,在程序运行时,就是无法达到理想的(1)因为方式3的实验比较简单,我们先做的是方式实验结果,刚开始我还以为是代码的问题,但在我按照流程图从头到尾比对之后,感觉代码 应该没什么问题,而实验箱我们又没什么办法检测它是不是正常工作,在考虑了几分钟之后,找不出问题的我们只好找老师来帮忙看看代码是否有问题,如果代码没什么问题,那问题大 概就出在实验设备上,结果老师一看,说代码应该没什么问题,让我们把代码拷到另外讲台 上的设备上去试试。结果不出所料,是设备问题。在此我不得不对学校的实验设备感到深深 的无力感,因为学校里的实验设备的

18、芯片每次实验基本都是10个里有5个左右是坏的,这对我实验的顺利进行造成很大的阻碍,而且会浪费很多时间。(2)在经过老师的指导之后, 我们重新写了一份方式 2的实验代码,结果运行时输出的是 F6、I5 之类的结果,对此我感觉应该是和8259中断实验时一样的问题,寄存器的使用上出了问题,但当时因为时间的缘故,我已经来不及修改,只好回来之后再解决。回来之后,我没有在原 来的基础上对代码进行修改,而是凭借对实验的理解以及流程图,重新又写了一份,写的时 候我特意注意了一下寄存器的使用,然后将写好的新的和实验室写的旧的进行比较,从而确 定问题的大致所在,再进行细致的处理。5.2 实验感想与收获因为上次做8259中断实验准备不足,再加上汇编基础比较差,所以在代码编写方面花了 很多时间,于是这次就动力点小心思,在晚上找到有关这个实验的代码,拷贝过来,看懂,应 付实验。又于方式 3这样比较简单的实验,这个方法的确不会露馅,但对于方式2,这种方法就有点捉襟见肘了,特别是网上找的代码不是十分精简,尽管完善,但有点绕了,当时没绕出 来,浪费了很多时间。后来老师呵斥我们之后,在台上向我们讲解实验的思路以及如何按照流程图编写汇编代码 之后,我才发现其实这实验还是很简单的嘛,我只要按照流程图来就好了嘛,干嘛去投机取巧, 结果却偷鸡不成蚀把米呢。而且通过

温馨提示

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

评论

0/150

提交评论