可编程定时 / 计数器应用实验
一、实验目的
了解定时器 / 计数器 8253 的原理,掌握编制定时器 / 计数器程序设计方法。
二、实验内容
设计连线和程序,以 1MHz
的信号为时钟信号,利用 8253 产生 1s
的定时控制发光二极管变化。
三、实验连线
- 用户时钟的
1MHz
输出接 8253 的CLK1
。 - 8253 的
GATE1
接+5V
(在实验箱的左上角和右上角)。 - 8253
OUT1
接 8253 的CLK2
。 - 8253 的
GATE2
接+5V
。 - 8253 的
OUT2
的输出为1s
方波,接 M 区的一个发光二极管。 -
- 区的
OE#
接实验箱的地线(在实验箱的左下角和右下角)。模块电源部分( L 区)的JP7
(控制 LED)短接。
- 区的
- 将 B 区
J1
的插头插上扁平电缆和微机相连。 - 将 A 区的电源开关拨到 “内” 位置。
四、编写程序
1. 各端口的地址
- 0 号计数器地址 304H
- 1 号计数器地址 305H
- 2 号计数器地址 306H
- 计数器控制寄存器地址 307H
2. 程序源代码
CODE SEGMENT 'code'ASSUME CS:CODESTART: MOV DX,307H ; MOV AL,01110110B ;计数器一,先读写低八位,后读写高八位,方式 3,二进制计数 OUT DX,AL ; MOV DX,305H ;一号计数器 MOV AL,0E8H ; OUT DX,AL ; MOV AL,03H ; OUT DX,AL ;送计数初值 03E8H = 1000 MOV DX,307H ; MOV AL,10110110B ;计数器二,先读写低八位,后读写高八位,方式 3,二进制计数 OUT DX,AL ; MOV DX,306H ;二号计数器 MOV AL,0E8H ; OUT DX,AL ; MOV AL,03H ; OUT DX,AL ;送计数初值 03E8H=1000 MOV AH,4CH ; INT 21H ;CODE ENDS END START
五、思考题
利用 8253 和 8255 设计查询方式走马灯电路,8253 每秒使的 PC4 的电位变化一次,编程查询 PC4 的状态,当 PC4 为低电平时从 8255 的 A 端口输出一个数据,使得和 A 端口相连的 8 个发光二极管依次变亮且每次只亮一个。
1. 修改连线:
- 8253 的
OUT2
的输出为1s
方波,接 8255 的PC4
。 - 8255 的
PA0~PA7
接 M 区的发光二极管L1~L8
。 - 模块电源( L 区)短接
JP7
。
2. 修改程序:
PORTA=300HPORTB=301HPORTC=302HCONTROL=303HCODE SEGMENT 'code'ASSUME CS:CODESTART: MOV DX,307H ;{工作方式初始化 MOV AL,01110110B ;计数器一,先读写低八位,后读写高八位,方式3,二进制计数 OUT DX,AL ;} MOV DX,305H ;{一号计数器 MOV AL,0E8H ; OUT DX,AL ; MOV AL,03H ;送计数初值 03E8H = 1000 OUT DX,AL ;} MOV DX,307H ;{工作方式初始化 MOV AL,10110110B ;计数器二,先读写低八位,后读写高八位,方式3,二进制计数 OUT DX,AL ;} MOV DX,306H ;{二号计数器 MOV AL,0E8H ; OUT DX,AL ; MOV AL,03H ;送计数初值 03E8H = 1000 OUT DX,AL ;} MOV DX,CONTROL ;{工作方式初始化 MOV AL,88H ;A 口输出,C 口高四位输入 OUT DX,AL ;} MOV BL,11111110B ;二极管初始显示状态 MOV DX,PORTC ;{L1: IN AL,DX ; TEST AL,10H ;判断 AL 第 5 位是否为 1 JNZ L1 ;ZF = 0 转移到标号地址} MOV DX,PORTA ;{ MOV AL,BL ;将 BL 的值输出到二极管 OUT DX,AL ;} ROL BL,1 ;循环左移一位L2: MOV DX,PORTC ;{ IN AL,DX ; TEST AL,10H ;判断 AL 第 5 位是否为 1 JZ L2 ;ZF = 1 转移到标号地址} JMP L1 ; MOV AH,4CH ; INT 21H ;CODE ENDS END START
六、实验小结
本次实验,加深了我对定时器 / 计数器 8253 的原理的了解,掌握了编制定时器 / 计数器程序设计方法。在最后的思考题中,通过不断的尝试、修改连线和程序,我对接口编程更加熟练了,为我今后的实验及课程设计打下了良好的基础。