北京化工大学微机接口技术课程实验报告
- 格式:doc
- 大小:248.50 KB
- 文档页数:12
北京化工大学测控专业微机接口技术课程综合创新实验报告
目录
1.课程名称 (1)
2.课程背景 (1)
3.功能分析. (1)
4.设计 (1)
4.1 硬件设计 (1)
4.2 软件设计 (3)
4.3 主题代码 (3)
5.设计心得 (6)
5.1收获与心得 (6)
5.2 思考 (7)
6.参考文献 (7)
1.实验名称基于计时中断的自动清零计数器
2.实验背景
设计一个能实现在数码管上显示的00~99的自动清零计数器,并且计数频率可调。
3.功能分析
为了实现上述要求,有三个工作要做:一是利用可编程定时器/计时器82C54产生一个周期约为2s的方波作为中断的触发信号;二利用可编程中断控制器82C59A响应外部中断源,中断触发信号来自设计的方波;三利用可编程并行接口芯片82C55A驱动数码管显示,利用六位数码管的的低两位来显示出当前的计数值。
4.设计
4.1.硬件设计
先进行硬件设计和端口地址选择。82C54的电路结构原理如图1所示。
图1.自动清零计数装置电路结构原理1
82C54的端口地址为0040H(通道0),0041H(通道1),0042H(通道2),0043H(命令口)。
通道0作计数器使用,工作在3方式,目的是产生一个方波,GTAE0接+5V,CLK0接由系统8MHZ时钟分频得到1MHZ的脉冲信号。输出端OUT0,接到中断控制器的IR3端口,利用OUT0输出方波的上升沿触发中断。
下图是中断控制器的硬件设计图。
图2.自动清零计数装置中断结构原理
如图,82C59A的IR3端口接82C54的OUT0端口,中断请求线INT接到8086的INTR,中断回答线INTA接到8086的INTA;使能端CS接到实验箱的FF80H端口。这样就实现了82C54的OUT0产生的方波来一次上升沿就触发一次中断。
下图是可编程并行芯片82C55A的硬件图:
图3.自动清零计数装置82C55A结构
如图,当82C55A用于数码管显示时,PA口作为键扫/字位口;PB口作为字形口,PC口作为键入口;即PA口作为位选信号,PB口作为段选信号。数码管的最低位用来显示当前计数值的个位数字,次低位用来显示当前计数值的十位数
字,通过添加延时,可达到尽量无抖动和尽量无消隐的效果。
下图是实验流程图:
图4.自动清零计数装置流程图
4.2.软件设计
根据上述硬件设计的安排和设计目标的要求,可设定:
通道0的方式命令为00110110B=36H,要产生周期约为2s的方波,根据如图公式:
图3
可得定时常数为0C350H。
4.3主体代码
汇编语言程序清单如下:
CODE SEGMENT
ASSUME CS:CODE
INTPORT1 EQU 0FF80H
INTPORT2 EQU 0FF81H
INTQ3 EQU INTREEUP3
TCONTRO EQU 0043H
TCON0 EQU 0040H
PA EQU 0FF20H
PB EQU 0FF21H
PC EQU 0FF22H
CTL EQU 0FF23H
ORG 12D0H
START: JMP START0
BUF DB?,?,?,?,?,?
INTCNT DB?;个位数字
INTCNT10 DB?;十位数字
TAB DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;0-9 START0: CLD
;8255初始化
MOV DX, CTL
MOV AL, 80H
OUT DX, AL
;8259初始化
MOV AL,13H
MOV DX,INTPORT1
OUT DX,AL
MOV AL,08H
MOV DX,INTPORT2
OUT DX,AL
MOV AL,09H
OUT DX,AL
MOV AL,0F7H
OUT DX,AL
;8253初始化L
MOV DX,TCONTRO
MOV AL,36H ;计数器0,先写低字节再写高字节,方式3 OUT DX,AL
MOV DX,TCON0
MOV AX,0C350H ;设置计数初值
MOV DX,TCON0
OUT DX,AL ;先写低字节
MOV AL,AH
OUT DX,AL ;再写高字节
; 修改中断变量
MOV AX,0H
MOV ES,AX
MOV DI,002CH
LEA AX,INTQ3
STOSW
MOV AX,0000H
STOSW
MOV INTCNT,0H ;TIME=0 STI
;等待中断
WATING:
MOV AL, INTCNT
MOV AH,0
CALL DISP
CALL DELAY
JMP WATING
;中断服务子程序
INTQ3: CLI ;关中断
PUSH AX ;保护现场
PUSH BX
PUSH CX
PUSH DX
MOV AL,INTCNT
INC AL
CMP AL, 10
JNZ INTRE2
MOV AL, 0
INC INTCNT10
CMP INTCNT10,10
JNZ INTRE2
MOV INTCNT10,0
INTRE2:
MOV INTCNT,AL
MOV AL,20H
MOV DX,INTPORT1
OUT DX,AL
POP DX ;恢复现场
POP CX
POP BX
POP AX
STI
IRET
;8255显示子程序AL