收藏 分享(赏)

微机原理实验:定时器_计数器(8253).doc

上传人:精品资料 文档编号:8298552 上传时间:2019-06-19 格式:DOC 页数:4 大小:241KB
下载 相关 举报
微机原理实验:定时器_计数器(8253).doc_第1页
第1页 / 共4页
微机原理实验:定时器_计数器(8253).doc_第2页
第2页 / 共4页
微机原理实验:定时器_计数器(8253).doc_第3页
第3页 / 共4页
微机原理实验:定时器_计数器(8253).doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、可编程定时器/计数器(8253)一、实验目的掌握 8253 的基本工作原理和编程方法。二、实验内容1.按下图虚线连接电路,将计数器 0 设置为方式 0,计数器初值为 N(N0FH) ,用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察 OUT0 电平变化(当输入 N+1 个脉冲后 OUT0 遍高电平) 。 2.按下图连接电路,将计数器 0、计数器 1 分别设置为方式 3,计数初值设为 1000,用逻辑笔观察 OUT1 输出电平的变化(频率 1Hz)。三、编程提示8253 控制寄存器地址: 283H0C403H计数器 0 地址: 280H04C400H计数器 1 地址: 281H

2、04C401HCLK0 连接时钟:1MHz。2、程序参考流程图开始设置计数器 0 为工作方式 0送计数器初值读计数器值显示计数值结束结束开始设计数器 1 为工作方式 3向计数器 1 送初值 1000先送低字节后送高字节向计数器 0 送初值 1000先送低字节后送高字节计数器 0 位工作方式 3有键按下吗?Y N实验 1实验 2四、程序设计及实验调试程序设计的思想及注意事项:第一个实验,在编程时要注意机器识别的 ASCII 码和输入数据数字的区别,可以根据书上ASCII 码和输入数据的转换关系,当数据在 09 之间,对数据加 30H 即可对应机器识别的 ASCII 码,对于 AF 之间则加 37

3、H。编程时采用了二号功能键输出显示,六号功能键进行输入操作。第二个实验,在向计数器 0 和计数器 1 送初始值时,要注意先送低字节后送高字节,送入的数据应是 1000 而非 1000H,否则最后出现逻辑笔跳变的时间不是 1s。实验一:CODE SEGMENTASSUME CS:CODESTART: MOV DX,0C403HMOV AL,00010000B ;计数器 0 工作方式为 0OUT DX,ALMOV DX,0C400HMOV AL,09H ;送计数器初值OUT DX,ALXUNHUAN: MOV DX,0C400HIN AL,DX ;读计数器的值CMP AL,9JG BIGADD A

4、L,30H ;0 到 9,显示 ASCII 码 JMP JUDGEBIG: ADDAL,37H ;大于 9,显示 ASCII 码JMP JUDGEJUDGE: MOV DL,AL MOV AH,02HINT 21H ;使用 02H 功能输出显示MOV DL,0FFHMOV AH,06HINT 21H ;执行键盘输入操作JZ XUNHUANMOV AH,4CHINT 21H ;返回操作系统CODE ENDSEND START实验中遇到问题及分析:编写程序时,由于要将结果显示在屏幕上,所以要对写入的值读出来,编写 MOV DX,0C400H IN AL,DX 语句即可实现。在硬件调试过程中,总体来

5、说很顺利。当计数结果由 9 减到 0 时,有逻辑跳变,同时屏幕显示下一个 ASCII 字符。老师说过不能使用拨码开关,否则会出现几个脉冲,从而不是减一计数,我在实验时试过拨码开关,将开关上下拨一次,减数的结果是随机的,所以不适合使用。实验二:CODE SEGMENTASSUME CS:CODESTART:MOV AL,00110110B ;计数器 0,工作方式 3MOV DX,0C403HOUT DX,AL ;写控制口MOV AX,1000 MOV DX,0C400HOUT DX,ALMOV AL,AHOUT DX,AL ;计数器 0 送初值 1000MOV AL,01110110BMOV D

6、X,0C403H ;计数器 1,工作方式 3OUT DX,ALMOV AX,1000MOV DX,0C401HOUT DX,ALMOV AL,AHOUT DX,AL ;计数器 1 送初值 1000MOV AH,4CHINT 21HCODE ENDSEND START实验中遇到问题及分析:由于在软件编程时注意到了送初始值为 1000,而不是 1000H,所以这方面没有产生错误。在编程向计数器 0 和计数器 1 送值,由于疏忽了 MOV DX,0C400H,MOV DX,0C401H 两条语句,在运行之后,系统没有报错,也生成了执行文件,但是一打开执行文件,文件马上就返回 DOS 系统。而逻辑笔也

7、没有任何跳变。我开始觉得自己是否将初始值送进了两个计数器,后来发现,两个计数器的端口地址忘了写入。五、实验结果及分析:1.对于实验一,设计数器 0 为工作方式 0,执行计数功能。输入计数初值 9,并手动逐个输入单脉冲,输入前 9 个脉冲时,逻辑笔绿灯亮,此时为低电平,屏幕上显示数字由 9 逐个递减,当输入第十个脉冲时,计数完毕,逻辑笔红灯亮,此时为高电平。屏幕上快速连续显示计数值,因为程序中并没有写入控制屏幕输出的部分,由于计算机执行频率较快,导致屏幕不停输出计数值。2计数器 0 和计数器 1 均为工作方式 3,执行方波发生器的功能。输入计数初值1000,从计数器 0 的 clk0 端输入 1

8、MHZ 脉冲,经过计数器 0 的 1000 分频变为 1KHZ 脉冲。将计数器 0 的输出端与计数器 1 的 clk1 相连接,再经计数器 1 的 1000 分频,从 out1 输出1HZ 脉冲。因此,逻辑笔的绿灯和红灯交替闪亮,频率均为 1HZ。若实验时写入均 1000H,结果就是每隔 2.56s 亮一次。六、实验总结:这个实验是我第一次使用实验箱。这次微机实验连线很简单,我都是自己不看书,争取弄懂连线的原理,如在第二个小实验,将 out0 接 clock1 是为了达到两次分频的结果。编写程序前,我先复习了微机原理与接口技术课本中与 8253 相关的知识,之后按照流程图认真编程序,编程时,注意到将小于 9 的数加 30H,大于 9 小于 16 的数加 37H 转化为 ASCII码,并调用了 DOS 的 2 号功能输出字符。接下来的第二个程序也遇到了一些困难,在编程向计数器 0 和计数器 1 送值,由于疏忽了 MOV DX,0C400H,MOV DX,0C401H 两条语句,在运行之后,系统没有报错,也生成了执行文件,但是一打开执行文件,文件马上就返回 DOS 系统。而逻辑笔也没有任何跳变,后来通过软硬件结合找原因,最后得到了满意的结果。经过上机实验,我掌握了上机调试的初步经验,编程能力也得到了一次验证,此外还加深了对课本理论知识的理解。同时我学会了软硬件结合的办法调试程序。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报