微机接口8253定时器实验报告.docx
- 文档编号:1587508
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:18
- 大小:964.22KB
微机接口8253定时器实验报告.docx
《微机接口8253定时器实验报告.docx》由会员分享,可在线阅读,更多相关《微机接口8253定时器实验报告.docx(18页珍藏版)》请在冰豆网上搜索。
微机接口8253定时器实验报告
浙江工业大学计算机学院
实验报告
实验名称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灯观察OUT1电平变化(频率1Hz)。
1.2实验要求
(1)具有一定的汇编编程的基础,能编写一些基本语句来实现实验。
实验前根据实验流程图,写出对应代码;
(2)要了解8253定时/计数器芯片内部结构和外部引脚,了解芯片的硬件连接方法、时序关系、各种模式的编程及应用,能熟练地对其进行编程;
(3)熟悉实验平台TPC-USB了解各个接口的名称与功能,进行实验时能快速并正确地连接好实验电路;
(4)计数器方式2实验:
连接PC与TPC-USB平台,用微机实验软件运行程序,用手动开关逐个输入单脉冲,在屏幕上能一次显示计数值,当输入第N倍数个脉冲后OUT0变低电平,TPC-USB平台上的LED灯由亮变灭,其余脉冲OUT0都是高电平,LED灯都处于亮状态;
(5)计数器方式3实验:
连接PC与TPC-USB平台,用微机实验软件运行程序,TPC-USB平台上的LED灯能周期性地亮灭,频率为1Hz。
二、实验原理与硬件连线
2.1实验原理
1、8253定时/计数器芯片的内部结构:
图18253内部结构图
(1)数据总线缓冲器:
三态双向8位寄存器,与系统数据总线相连,可寄存以下3种数据:
ØCPU向8253/8254写入的工作方式命令字;
ØCPU向计数寄存器写入的计数初值;
Ø从计数器读出的当前计数值。
(2)读/写控制逻辑:
接收CPU发来的读、写、片选和地址信号,选择相应的寄存器,进行读写操作。
(3)控制字寄存器:
接收CPU发来的控制字(只写)。
控制字的功能:
Ø选择计数器;
Ø确定计数器的工作方式;
Ø确定计数初值的格式(高低8位或16位);
Ø确定计数格式:
二进制或BCD格式。
(4)计数器0~2:
3个结构相同、相互独立的计数器。
每个计数器包含一个16位初值寄存器、一个16位减1计数器和一个16位输出锁存器。
计数器内部结构如下图所示:
2、8253的工作方式:
8253A一共有6种工作方式:
方式0——计数期间低电平输出(GATE高电平时计数)
方式1——计数期间低电平输出(GATE上升沿重新计数)
方式2——周期性输出负脉冲
方式3——周期性输出方波
方式4——软件触发输出单脉冲
方式5——硬件触发输出单脉冲
6种工作方式的区别在于:
Ø输出波形不同。
Ø启动计数器的触发方式不同。
Ø计数过程中门控信号GATE对计数操作的影响不同。
本次实验要用到的是方式2和方式3:
(1)方式2——周期性输出负脉冲:
1)向计数器写入方式2控制字后,WR的上升沿使OUT信号变高。
写入初值后,在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信号变高。
写入初值后开始减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。
计数初值要送到相应的计数器端口:
计数器0的初值要送到A1A0=00所对应的端口;计数器1的初值要送到A1A0=01所对应的端口;计数器2的初值要送到A1A0=10所对应的端口。
2.2硬件连线
(1)计数器方式2实验的连线如图6所示:
CS接端口地址280H~287H,CLK0接单脉冲按钮,GATE0接+5V电源,OUT0接LED灯。
图6TPC-USB平台计数器方式2实验连线图
(2)计数器方式3实验的连线如图7所示:
CS接端口地址280H~287H,GATE0、GATE1接+5V电源,CLK1与OUT0连接,CLK0接1MHZ的时钟脉冲。
图7TPC-USB平台计数器方式3实验连线图
三、设计思路、步骤和程序流程图
3.1设计思路
本次实验做的是计数器实验,需要用到8253定时/计数器芯片,了解芯片的内部结构后,理解芯片的计数原理,8253芯片的工作方式有多种,所做的实验是方式2和方式3,理解了工作方式后,便可根据8253芯片的初始化编程步骤画出程序流程图,再根据流程图,写出实验程序。
根据实验连接图连接好电路,运行程序,便可达到计数和计时的目的。
本次实验采用方式2而不是方式0的原因:
项计数器写入方式2控制字后,OUT端输出高电平作为起始电平。
写入计数初值后,计数器开始在CLK时钟下降沿进行减1计数;当减到1时,OUT端将由高电平变为低电平并维持一个CLK周期宽度,然后OUT又变为高电平。
并自动重新装入原计数初值,重新开始计数过程。
这刚好与实验内容相符,而方式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)用手动开关逐个输入单脉冲,观察屏幕显示结果和TPC-USB平台上LED灯亮灭状态;
(4)按图7连接好实验电路;
(5)根据图9流程图编写程序,并运行;
(6)观察TPC-USB平台上LED灯亮灭状态,和亮灭的频率。
3.3程序流程图
图8TPC-USB平台计数器方式2实验流程图
图8TPC-USB平台计数器方式3实验流程图
四、程序清单与执行结果
4.1程序清单
(1)计数器方式2实验:
codesegment
assumecs:
code
start:
moval,14h;设置8253通道0为工作方式2,二进制计数
movdx,283h
outdx,al
moval,14h
movdx,280h
outdx,al
AA:
;moval,0000000;锁存
;movdx,283h
;outdx,al
movdx,280h
inal,dx;读锁存器
cmpal,9;判断是否小于9
jbePRINT
movah,0
movbl,10
divbl
pushax
movdl,al
adddl,30h;将十位的数字转换成ASCII码
movah,2;显示十位
int21h
popax
moval,ah
PRINT:
addal,30h;将小于9的数字转换成ASCII码
movdl,al
movah,2;显示存在dl中的个位
int21h
movdl,0dh;换行,回车
movah,02h
int21h
movdl,0ah
movah,02h
int21h
movah,06h;判断有无键按下
movdl,0ffh
int21h
jzAA;若无,则继续计数输出
movah,4ch;否则,退出
int21h
codeends
endstart
(1)计数器方式3实验:
codesegment
assumecs:
code
start:
movdx,283h;向8253写控制字
moval,36h;使计数器0为工作方式3
outdx,al
movax,1000;写入循环计数初值1000
movdx,280h
outdx,al;先写入低字节
moval,ah
outdx,al;后写入高字节
movdx,283h
moval,76h;使计数器1为工作方式3
outdx,al
movax,1000;写入循环计数初值1000
movdx,281h
outdx,al;先写低字节
moval,ah
outdx,al;后写高字节
movah,4ch;程序退出
int21h
codeends
endstart
4.2执行结果
(1)计数器方式2实验:
连接好的实验电路图,如图10所示:
图10计数器方式2实验电路连接实物图
用手动开关逐个输入单脉冲,观察屏幕上显示的内容,计数从20开始,每按一次开关,计数减1,减到1后,又从20开始计数,如图12、13、14所示;并同时用TPC-USB平台上的LED灯观察OUT0电平变化,当输入第20倍数个脉冲后OUT0变低电平,LED灯由亮变灭,其余脉冲OUT0都是高电平,LED灯都处于亮状态,如图10所示。
当计数减到1时,输出从高电平变成低电平,LED灯灭,如下图11所示。
之后再从20开始计数,如上图12~20这些图所示。
图11计数值为01时的LED灯的情况
当键盘有键按下时,程序退出,如下图21所示:
图21程序退出图
(2)计数器方式3实验:
连接好的实验电路图,如图22、23所示:
运行程序,观察TPC-USB平台上的LED灯观察OUT1电平变化,发现LED等周期性地亮灭,频率为1Hz。
五、程序调试说明和实验感想
5.1调试说明
(1)因为方式3的实验比较简单,我们先做的是方式3的,在程序运行时,就是无法达到理想的实验结果,刚开始我还以为是代码的问题,但在我按照流程图从头到尾比对之后,感觉代码应该没什么问题,而实验箱我们又没什么办法检测它是不是正常工作,在考虑了几分钟之后,找不出问题的我们只好找老师来帮忙看看代码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 接口 8253 定时器 实验 报告