1、计算机原理与接口技术实验1 本科实验报告实验名称: 利用中断方式设计数字时钟 课程名称:计算机原理与接口技术实验实验时间:2014.5.19任课教师:实验地点:信息系统及安全对抗实验中心实验教师:实验类型: 原理验证 综合设计 自主创新学生姓名:学号/班级:组 号:学 院:同组搭档:专 业:成 绩:实验二 利用中断方式设计数字时钟一、实验目的1. 掌握 PC 机中断处理系统的基本原理。2. 熟悉定时/计数器 8254 工作原理及其编程方法。3. 利用实验板上的 8254 定时器为中断源发中断申请,中断请求用 IRQ3(系统总线区的IRQ)。4. 熟悉数码管显示原理,掌握数码管显示接口技术。5.
2、 学习数字时钟原理,实现数字时钟。6. 掌握中断控制器 8259 管理。二、实验内容与步骤1. 接线:三、实验原理1. PC 机用户可使用的硬件中断只有可屏蔽中断,由 8259 中断控制器管理。中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向 CPU 发出可屏蔽中断请求。IBMPC、PC/XT 机内有一片 8259 中断控制器对外可以提供 8 个中断源: 中断源 中断类型号 中断功能 IRQ0 08H 时钟 IRQ1 09H 键盘 IRQ2 0AH 保留 IRQ3 OBH 串行口 2 IRQ4 0CH 串行口 1 IRQ5 0DH 硬盘 IRQ6 0EH 软盘 IRQ7 0FH
3、并行打印机8 个中断源的中断请求信号线 IRQ0IRQ7 在主机的 62 线 ISA 总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。对于 PC/AT 及 286 以上微机内又扩展了一片 8259 中断控制,IRQ2 用于两片 8259 之间级连,对外可以提供 16 个中断源: 中断源 中断类型号 中断功能 IRQ8 070H 实时时钟 IRQ9 071H 用户中断 IRQ10 072H 保留 IRQ11 O73H 保留 IRQ12 074H 保留 IRQ13 075H 协处理器 IRQ14 076H 硬盘 IRQ15 077H 保留实验系统总线区的 IRQ 接到了 3
4、 号中断 IRQ3 上,即进行中断实验时,所用中断类型号为 0BH。2、中断控制器 8259 可利用系统初始化设定,如不进行新的初始化,只需对 8259 中断控制器的屏蔽寄存器设定 IRQ3 为中断允许,其他原有中断允许保持不变。3、将实验板上的 8253 的通道,设定为 10ms 周期信号发生器,该芯片的通道 1 设定为计数器,其输入来自定时器通道 0 的输出,利用通道 1 的计数器输出作为 IRQ3 中断请求信号。4、8254 定时器的 CLK0 由实验板上的 1MHZ 振荡器来提供。见图 1。5、编写中断服务程序,进行数字钟显示: XX:XX (分:秒)其中X为一位数码管。6、数码管显示
5、接口电路如图 2 所示。实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。实验时用 PB7PB0/8255 接 dpa /LED 数码管,PC3PC0 /8255 接 S3S0/LED 数码管。七段数码管的字型代码表如下表:6. 程序流程图如图 3四、实验心得与体会本次实验主要是在掌握8255的基础上使用定时器8254进行操作,尤其是对应用终端请求方面。由于计算机原理与接口技术的授课老师在实验之前对本次实验进行了比较详细的讲解,再加上课后我们对相关中断原理及代码的认识、对数码管数字时钟原理的掌握,另外在上课时老师对实验的代码
6、进行了部分书写演示,大大降低了本次实验带给我们本身的难度。整体上说,本次实验难度很大,流程也较为简单,实验做得速度也较快。这也提示了我,只要在实验前对实验有充足的了解,做了充分的准备,可以顺利的快速的完成实验。附:实验代码p8259 equ 20hp8255 equ 288hp8253 equ 280h ;IO Y1data segmentled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;数码管0-9sec1 db 0sec2 db 0min1 db 0min2 db 0mes db 42hOld_0A DW 0,0 ;原中断向量Old_8259
7、DB 0data endsstacks segmentdb 64 dup (0)stacks endscode segment assume cs:code,ds:data,es:datastart: mov ax,data mov ds,ax cli mov al,00110110b mov dx,p8253+3 ;计数器0,工作在模式3 out dx,al mov ax,2710h mov dx,p8253 out dx,al mov al,ah ;先赋高八位 再赋低八位 out dx,al mov al,01110110b mov dx,p8253+3 ;计数器1,工作在模式3 out
8、dx,al mov ax,100 mov dx,p8253+1 out dx,al mov al,ah ;先赋高八位 再赋低八位 out dx,al ;设置中断向量表 PUSH ES PUSH BX MOV Al,0BH ;保护原中断向量,0B中断类型号 mov ah,35h INT 21H ;读中断向量表 MOV Old_0A+2,ES ;ES为段地址,BX为段偏移地址 MOV Old_0A,BX POP BX POP ES push ds mov al,0bh ;写新中断向量 mov ah,25h mov dx,seg INT_0A mov ds,dx mov dx,offset INT_
9、0A int 21h pop ds mov al,10000000b ;对8255进行设置,PB/PC输出 mov dx,p8255+3 out dx,al in al,p8259+1 ;8259奇地址?中断向量屏蔽 mov old_8259,al ;字设置 保护原屏蔽字 and al,11110111b ;开IRQ3 out p8259,al sti ;开中断play: lea bx,led ;led段码 mov dl,sec1 ;秒个位 mov dh,0 mov si,dx mov al,bxsi mov dx,p8255+1 ;点亮led out dx,al mov ah,0000000
10、1b mov al,ah mov dx,p8255+2 ;pc输出选通信号 out dx,al PUSH CX MOV CX,00f00h ;延时 delay1: LOOP delay1 POP CX mov ah,00000000b mov al,ah mov dx,p8255+2 ;pc输出选通信号 out dx,al mov dl,sec2 ;秒十位 mov dh,0 mov si,dx mov al,bxsi mov dx,p8255+1 ;点亮led out dx,al mov ah,00000010b mov al,ah mov dx,p8255+2 ;pc输出选通信号 out d
11、x,al PUSH CX MOV CX,00f00h ;延时 delay2: LOOP delay2 POP CX mov ah,00000000b mov al,ah mov dx,p8255+2 ;pc输出选通信号 out dx,al mov dl,min1 ;分个位 mov dh,0 mov si,dx mov al,bxsi mov dx,p8255+1 ;点亮led out dx,al mov ah,00000100b mov al,ah mov dx,p8255+2 ;pc输出选通信号 out dx,al PUSH CX MOV CX,00f00h ;延时 delay3: LOOP
12、 delay3 POP CX mov ah,00000000b mov al,ah mov dx,p8255+2 ;pc输出选通信号 out dx,al mov dl,min2 ;分十位 mov dh,0 mov si,dx mov al,bxsi mov dx,p8255+1 ;点亮led out dx,al mov ah,00001000b mov al,ah mov dx,p8255+2 ;pc输出选通信号 out dx,al PUSH CX MOV CX,00f00h ;延时 delay4: LOOP delay4 POP CX mov ah,00000000b mov al,ah m
13、ov dx,p8255+2 ;pc输出选通信号 out dx,al jmp play mov ah,4ch int 21hINT_0A proc near ;中断服务子程序 cmp sec1,9 jz int1 inc sec1 jmp exitint1:mov sec1,0 inc sec2 cmp sec2,6 jnz exit mov sec2,0 inc min1 cmp min1,10 jnz exit mov min1,0 inc min2 cmp min2,6 jnz exit mov min2,0exit: mov al,20h out 20h,al iretINT_0A endpcode endsend start
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1