- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一 可编程定时器/计数器(8253)
实验目的
掌握8253的基本原理和编程方法
实验内容
按图虚线连接电路,将计数器0设置为工作方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0遍高电平)。
按图连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1Hz)。
三、 编程分析
1、8253地址分析:控制寄存器地址: 0C403H
计数器0地址: 04C400H
计数器1地址: 04C401H
CLK0连接时钟:1MHz。
2、程序参考流程图
开始
开始
设置计数器0为工作方式0
送计数器初值
读计数器值
显示计数值
结束
结束
开始
设计数器1为工作方式3
向计数器1送初值1000
先送低字节后送高字节
向计数器0送初值1000
先送低字节后送高字节
计数器0位工作方式3
有键按下吗?
调用延时子程序
Y
N
(1)
(2)
四、汇编语言程序
实验内容(1)
CODE SEGMENT
ASSUME CS:CODE
START:MOV DX,0C403H ; 初始化,计数器0,方式0
MOV AL
OUT DX
MOV DX,0C400H
MOV AL,08H ;送初值8
OUT DX
MOV CL,1
READ: INC CL ;自加1
CMP CL,1
JZ START
MOV DX,0C400H ;读计数器0口
IN AL,DX
MOV DL,AL
MOV CL,AL
CMP AL,9
JG BIG
ADD DL,30H ;0到9,显示ASCII数字
MOV AH,02H
INT 21H
MOV DL,0DH
INT 21H
JMP JUDGE
BIG: ADD DL,37H ;大于9,显示ASCII字母
MOV AH,02H
INT 21H
MOV DL,0DH
INT 21H
JMP JUDGE
JUDGE:MOV DL,0FFH ;有键按下回DOS
MOV AH,06H
INT 21H
JZ READ ;转移条件?
MOV AH,4CH
INT 21H
CODE ENDS
END START
实验内容(2)
CODE SEGMENT
ASSUME CS:CODE
START:MOV AL ;计数器0,先读写低字节,再读写高字节,方波发生器
MOV DX,0C403H ;控制地址0C403H
OUT DX
MOV AX,1000D ;计数初值1000
MOV DX,0C400H ;载入计数器0地址0C400H
OUT DX,AL ;将计数初值低位传送至计数器0
MOV AL,AH ;将计数值高位送入AL
OUT DX,AL ;传送计数初值高位至计数器0
MOV AL ;计数器1,先读写低字节,再读写高字节,方波发生器
MOV DX,0C403H ;写入控制字
OUT DX
MOV DX,0C401H ;载入计数器1的地址
MOV AX,1000 ;写入计数值
OUT DX
MOV AL,AH
OUT DX
MOV AH,4CH ;返回DOS
INT 21H
CODE ENDS
END START
五、实验现象
实验内容(1):用手动逐个输入单脉冲,在屏幕上从计数器初值5开始显示,此时逻辑笔显示为低电平,绿灯亮;单脉冲每输入一个,计数器值将会减1,同时在屏幕上显示
文档评论(0)