




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、浙江工业大学计算机学院实 验 报 告实验名称 8253定时器实验 姓 名 学 号 班 级 教 师 日 期 17一、实验内容与要求1.1 实验内容计数器方式2实验:将8253芯片的计数器0的工作方式设置为方式2,计数器初值为N,用手动开关逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用TPC-USB平台上的LED灯观察OUT0电平变化(当输入第N倍数个脉冲后OUT0变低电平,LED灯由亮变灭,其余脉冲OUT0都是高电平,LED灯都处于亮状态)。计数器方式3实验:将计数器0、计数器1的工作方式分别设置为方式3,计数初值设为1000,并同时用TPC-USB平台上的LED灯观察OUT1电平变化(频率
2、1Hz)。1.2 实验要求(1) 具有一定的汇编编程的基础,能编写一些基本语句来实现实验。实验前根据实验流程图,写出对应代码;(2) 要了解8253定时/计数器芯片内部结构和外部引脚,了解芯片的硬件连接方法、时序关系、各种模式的编程及应用,能熟练地对其进行编程;(3) 熟悉实验平台TPC-USB了解各个接口的名称与功能,进行实验时能快速并正确地连接好实验电路;(4) 计数器方式2实验:连接PC与TPC-USB平台,用微机实验软件运行程序,用手动开关逐个输入单脉冲,在屏幕上能一次显示计数值,当输入第N倍数个脉冲后OUT0变低电平,TPC-USB平台上的LED灯由亮变灭,其余脉冲OUT0都是高电平
3、,LED灯都处于亮状态;(5) 计数器方式3实验:连接PC与TPC-USB平台,用微机实验软件运行程序,TPC-USB平台上的LED灯能周期性地亮灭,频率为1Hz。二、实验原理与硬件连线2.1 实验原理1、8253定时/计数器芯片的内部结构:图1 8253内部结构图(1)数据总线缓冲器:三态双向8位寄存器,与系统数据总线相连,可寄存以下3种数据:Ø CPU向8253/8254写入的工作方式命令字;Ø CPU向计数寄存器写入的计数初值;Ø 从计数器读出的当前计数值。(2)读/写控制逻辑:接收CPU发来的读、写、片选和地址信号,选择相应的寄存器,进行读写操作。(3)控
4、制字寄存器:接收CPU发来的控制字(只写)。 控制字的功能:Ø 选择计数器;Ø 确定计数器的工作方式;Ø 确定计数初值的格式(高低8位或16位);Ø 确定计数格式:二进制或BCD格式。(4)计数器 02:3个结构相同、相互独立的计数器。每个计数器包含一个16位初值寄存器、一个16位减1计数器和一个16位输出锁存器。计数器内部结构如下图所示:计数开始前需写入初值。同时该值被送入减1计数器。MAX = 216-1。计数过程中,初值寄存器中的值保持不变。锁存减1计数器的值,以供读出和查询。若想获取当前计数值,不能直接从减1计数器读出,而是必须先锁存,再从锁存器
5、读出。条件满足时,每个CLKê计数减1。减为0时,OUT 端输出波形。2、8253的工作方式:8253A一共有6种工作方式:方式0计数期间低电平输出(GATE高电平时计数)方式1计数期间低电平输出(GATE上升沿重新计数)方式2周期性输出负脉冲方式3周期性输出方波方式4软件触发输出单脉冲方式5硬件触发输出单脉冲6种工作方式的区别在于:Ø 输出波形不同。Ø 启动计数器的触发方式不同。Ø 计数过程中门控信号GATE对计数操作的影响不同。本次实验要用到的是方式2和方式3:(1)方式2周期性输出负脉冲:1) 向计数器写入方式2控制字后,WR的上升沿使OUT信号变
6、高。写入初值后,在CLK下降沿进行减1计数。减为1时,OUT变低并维持一个周期,然后又变高,并自动装入初值重新计数。工作时序如图2所示。图2 方式2特点1工作时序2) GATE为高电平允许计数,为低电平终止计数。待GATE恢复高电平后,计数器将按原来设定的计数值重新计数。工作时序如图3所示。图3 方式2特点2工作时序3) 若在计数过程中写入新的计数初值不会影响正在进行的计数过程,必须等计数器减到1之后,计数器才装入新的计数初值,并按新的初值进行计数。工作时序如图4所示。图4 方式2特点3工作时序(2)方式3周期性输出方波:初值为偶数的工作时序如图5所示。写入方式字后,OUT信号变高。写入初值后
7、开始减1计数;减到 n/2 时,OUT变低继续计数;减到0时,OUT变高,并自动装入初值重新计数。图5 方式3计数初值为偶数的工作时序3、8253的编程:(1)8253的方式控制字:实验中:计数器方式2实验:将计数器0设置为方式2 对应的方式控制字:00010100B=14H;计数器方式3实验:将计数器0设置为方式3 对应的方式控制字:00110110B=36H; 将计数器1设置为方式3 对应的方式控制字:01110110B=76H;(2)8253的初始化编程:初始化编程分两步,即对所用到的计数器写方式控制字;将计数初始值写入相应的计数器。方式控制字要送到控制端口,即对应A1A0=11。计数初
8、值要送到相应的计数器端口:计数器0的初值要送到A1A0=00所对应的端口;计数器1的初值要送到A1A0=01所对应的端口;计数器2的初值要送到A1A0=10所对应的端口。2.2 硬件连线(1)计数器方式2实验的连线如图6所示:CS接端口地址280H287H,CLK0接单脉冲按钮,GATE0接+5V电源,OUT0接LED灯。图6 TPC-USB平台计数器方式2实验连线图(2)计数器方式3实验的连线如图7所示:CS接端口地址280H287H,GATE0、GATE1接+5V电源,CLK1与OUT0连接,CLK0接1MHZ的时钟脉冲。图7 TPC-USB平台计数器方式3实验连线图三、设计思路、步骤和程
9、序流程图3.1 设计思路本次实验做的是计数器实验,需要用到8253定时/计数器芯片,了解芯片的内部结构后,理解芯片的计数原理,8253芯片的工作方式有多种,所做的实验是方式2和方式3,理解了工作方式后,便可根据8253芯片的初始化编程步骤画出程序流程图,再根据流程图,写出实验程序。根据实验连接图连接好电路,运行程序,便可达到计数和计时的目的。本次实验采用方式2而不是方式0的原因:项计数器写入方式2控制字后,OUT端输出高电平作为起始电平。写入计数初值后,计数器开始在CLK时钟下降沿进行减1计数;当减到1时,OUT端将由高电平变为低电平并维持一个CLK周期宽度,然后OUT又变为高电平。并自动重新
10、装入原计数初值,重新开始计数过程。这刚好与实验内容相符,而方式0是自动减1的,而且无法自动重新装入原计数初值。计数器方式3实验的原理:计数器0工作在方式3下,方式3的特点是输出方波,由于初始值为1000,所以相当于CLK0输出1000个脉冲后,OUT0输出一个方波;相对的,计数器1也工作在方式3下,初始值也为1000,相当于OUT0输出1000个方波后,OUT1才输出一个方波,归结起来,CLK0的频率是OUT1频率的1000000倍,所以最后输出的方波频率为1HZ。3.2 实验步骤(1) 按图6连接好实验电路;(2) 根据图8流程图编写程序,并运行;(3) 用手动开关逐个输入单脉冲,观察屏幕显
11、示结果和TPC-USB平台上LED灯亮灭状态;(4) 按图7连接好实验电路;(5) 根据图9流程图编写程序,并运行;(6) 观察TPC-USB平台上LED灯亮灭状态,和亮灭的频率。3.3 程序流程图图8 TPC-USB平台计数器方式2实验流程图图8 TPC-USB平台计数器方式3实验流程图四、程序清单与执行结果4.1 程序清单(1)计数器方式2实验:code segment assume cs: codestart: mov al,14h ;设置8253通道0为工作方式2,二进制计数 mov dx,283h out dx,al mov al,14h mov dx,280h out dx,alA
12、A: ;mov al,0000000 ;锁存 ;mov dx,283h ;out dx,al mov dx,280h in al,dx ;读锁存器 cmp al,9 ;判断是否小于9 jbe PRINT mov ah,0 mov bl,10 div bl push ax mov dl,al add dl,30h ;将十位的数字转换成ASCII码 mov ah,2 ;显示十位 int 21h pop ax mov al,ah PRINT: add al,30h ;将小于9的数字转换成ASCII码 mov dl,al mov ah,2 ;显示存在dl中的个位 int 21h mov dl,0dh
13、;换行,回车 mov ah,02h int 21h mov dl,0ah mov ah,02h int 21h mov ah,06h ;判断有无键按下 mov dl,0ffh int 21h jz AA ;若无,则继续计数输出 mov ah,4ch ;否则,退出 int 21h code endsend start(1)计数器方式3实验:code segmentassume cs:codestart: mov dx,283h ;向8253写控制字mov al,36h ;使计数器0为工作方式3out dx,almov ax,1000 ;写入循环计数初值1000mov dx,280hout dx,
14、al ;先写入低字节mov al,ahout dx,al ;后写入高字节mov dx,283hmov al,76h ;使计数器1为工作方式3out dx,almov ax,1000 ;写入循环计数初值1000mov dx,281h out dx,al ;先写低字节mov al,ahout dx,al ;后写高字节mov ah,4ch ;程序退出int 21hcode endsend start4.2 执行结果(1)计数器方式2实验:连接好的实验电路图,如图10所示:图10计数器方式2实验电路连接实物图用手动开关逐个输入单脉冲,观察屏幕上显示的内容,计数从20开始,每按一次开关,计数减1,减到1
15、后,又从20开始计数,如图12、13、14所示;并同时用TPC-USB平台上的LED灯观察OUT0电平变化,当输入第20倍数个脉冲后OUT0变低电平,LED灯由亮变灭,其余脉冲OUT0都是高电平,LED灯都处于亮状态,如图10所示。 当计数减到1时,输出从高电平变成低电平,LED灯灭,如下图11所示。之后再从20开始计数,如上图1220这些图所示。 图11 计数值为01时的LED灯的情况当键盘有键按下时,程序退出,如下图21所示:图21 程序退出图(2)计数器方式3实验:连接好的实验电路图,如图22、23所示:运行程序,观察TPC-USB平台上的LED灯观察OUT1电平变化,发现LED等周期性
16、地亮灭,频率为1Hz。五、程序调试说明和实验感想5.1 调试说明(1)因为方式3的实验比较简单,我们先做的是方式3的,在程序运行时,就是无法达到理想的实验结果,刚开始我还以为是代码的问题,但在我按照流程图从头到尾比对之后,感觉代码应该没什么问题,而实验箱我们又没什么办法检测它是不是正常工作,在考虑了几分钟之后,找不出问题的我们只好找老师来帮忙看看代码是否有问题,如果代码没什么问题,那问题大概就出在实验设备上,结果老师一看,说代码应该没什么问题,让我们把代码拷到另外讲台上的设备上去试试。结果不出所料,是设备问题。在此我不得不对学校的实验设备感到深深的无力感,因为学校里的实验设备的芯片每次实验基本
17、都是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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Module7 Unit1 He spent about twenty-one hours in space(教学设计)-2023-2024学年外研版(三起)英语六年级下册
- 华北理工大学冀唐学院《研究型建筑设计》2023-2024学年第二学期期末试卷
- 山西国际商务职业学院《计算机组成原理理论》2023-2024学年第二学期期末试卷
- 哈尔滨铁道职业技术学院《班级活动的组织》2023-2024学年第二学期期末试卷
- 辽宁民族师范高等专科学校《机电系统设计与控制》2023-2024学年第二学期期末试卷
- 广州东华职业学院《海洋生物技术综合实验》2023-2024学年第二学期期末试卷
- 南昌大学科学技术学院《新编大学生安全教育》2023-2024学年第二学期期末试卷
- 河北科技师范学院《西方财务会计双语》2023-2024学年第二学期期末试卷
- 共青科技职业学院《学前儿童保育学》2023-2024学年第二学期期末试卷
- 陕西理工大学《数字信号处理》2023-2024学年第二学期期末试卷
- 不吃路边摊精品课件
- 《网络服务器搭建、配置与管理-Linux(RHEL8、CentOS8)(微课版)(第4版)》全册电子教案
- 心理评估与诊断简介
- 无痛病房管理课件
- 让孩子变成学习的天使——由《第56号教室的奇迹》读书分享
- 球泡检验标准
- 公安笔录模板之询问嫌疑人(书面传唤治安案件)
- 振动分析基础讲义1
- 记账凭证汇总表excel模板
- 邓丽君经典歌曲30首简谱(共33页)
- 园林绿化施工通用表格模板
评论
0/150
提交评论