微机原理综合实验报告[精心整理]
微机原理综合实验报告
主题:数字钟的设计与实现
成员:陈天朗(P
洪 力(P
时间:2014年春季学期
实验原理
利用8254产生计时时钟信号,通过设置恰当的时间常数使时间周期为1秒,再将输出脉冲通过8259中断控制器送到总线控制单元申请中断,将8255的各端口与显示屏相连,在中断处理程序中编写程序使8255的输出产生响应变化,最终完成数字钟的计数和显示。
实验设计
1.确定硬件连接方式:
8254:时钟OUT信号与中断请求IRQ1端口相连,GATE接+5V,clock与外部脉冲源相连,选择184.32kHz时钟脉冲源。
8255:受键盘扫描程序启发,利用A口和B口产生片选和位选信号。
整体硬件连接图如下:
2.程序设计:
(1)8254:
计数初值:18432=16384+2048,对应的十六进制数48H
因为需要定时产生中断请求脉冲,所以令其工作在方式2。
(2)8255:
8255应工作在方式0,A口,B口输出,C口低四位输入
(3)中断处理:当中断来时,将秒的个位加1,并判断是否到10,到10后十位加一,个位清零;再判断十位是否到6,到6后十位清零,分的个位加1,同理对
分、时作相应处理,当时到24后再加则清零。
具体程序如下:
CS0 EQU 3000H ;片选CS0对应的端口始地址
CS2 EQU 3040H ;片选CS2对应的端口始地址
MY8255_A EQU CS0+00H ;8255的A口地址
MY8255_B EQU CS0+01H ;8255的B口地址
MY8255_C EQU CS0+02H ;8255的C口地址
MY8255_MODE EQU CS0+03H ;8255的控制寄存器地址
MY8254_COUNT0 EQU CS2+00H ;8254计数器0端口地址
MY8254_MODE EQU CS2+03H ;8254控制寄存器端口地址
IRQ_IVADD EQU 01C8H ;IRQ10对应的中断矢量地址
IRQ_OCW1 EQU 0A1H ;IRQ10对应PC机内部8259的OCW1地址
IRQ_OCW2 EQU 0A0H ;IRQ10对应PC机内部8259的OCW2地址
IRQ_IM EQU 0FBH ;IRQ10对应的中断屏蔽字
STACK1 SEGMENT STACK
DW 256 DUP(?)
STACK1 ENDS
DATA SEGMENT
CS_BAK DW ? ;保存IRQ10原中断处理程序入口段地址的变量
IP_BAK DW ? ;保存IRQ10原中断处理程序入口偏移地址的变量
IM_BAK DB ? ;保存IRQ10原中断屏蔽字的变量
HOUR DB 0
MINUTE DB 0
SECOND DB 0
DTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
DATA ENDS ;键值表,0~F对应的7段数码管的段位值
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
CLI ;清除中断标志位
MOV AX,0000H ;替换IRQ10的中断矢量
MOV ES,AX
MOV DI,IRQ_IVADD
MOV AX,ES:[DI]
MOV IP_BAK,AX ;保存IRQ10原中断处理程序入口偏移地址
MOV AX,OFFSET MYISR
MOV ES:[DI],AX ;设置当前中断处理程序入口偏移地