北理计算机原理与接口技术实验2利用中断方式设计数字时钟
- 格式:pdf
- 大小:531.23 KB
- 文档页数:10
本科实验报告实验名称:计算机原理与应用实验二实验二利用中断方式设计数字时钟一、实验目的1.掌握PC机中断处理系统的基本原理。
2.熟悉定时/计数器8254工作原理及其编程方法。
3.利用实验板上的8254定时器为中断源发中断申请,中断请求用IRQ3(系统总线区的IRQ)。
4.熟悉数码管显示原理,掌握数码管显示接口技术。
5.学习数字时钟原理,实现数字时钟。
6.掌握中断控制器8259管理二、实验内容与步骤1) 接线(参考):PB7~PB0/8255 接dp~a /LED 数码管CS /8254 接Y0 /IO 地址PC3~PC0 /8255 接S3~S0/LED 数码管CS/8255 接Y1 /IO 地址IRQ /总线接OUT1/8254GATE0 /8254 接+5VCLK0 /8254 接1M时钟OUT0 /8254 接CLK1 /8254GATE1 /8254 接+5V三、实验原理1、PC 机用户可使用的硬件中断只有可屏蔽中断,由8259 中断控制器管理。
中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU 发出可屏蔽中断请求。
IBMPC、PC/XT 机内有一片8259 中断控制器对外可以提供8个中断源:中断源中断类型号中断功能IRQ0 08H 时钟IRQ1 09H 键盘IRQ2 0AH 保留IRQ3 OBH 串行口2IRQ4 0CH 串行口1IRQ5 0DH 硬盘IRQ6 0EH 软盘IRQ7 0FH 并行打印机8 个中断源的中断请求信号线IRQ0~IRQ7 在主机的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 号中断IRQ3 上,即进行中断实验时,所用中断类型号为0BH。
实验二定时器和中断应用程序设计与调试3页一、实验目的1. 掌握定时器的工作原理和应用;2. 掌握中断的工作原理和应用;3. 结合定时器和中断设计应用程序。
二、实验器材1. 现成的定时器和中断资源(例如 STM32F103C8T6 单片机板);2. 电脑、USB 电缆、串口调试工具、杜邦线等。
三、实验原理与步骤1. 定时器首先,定时器是一种计时装置,它能够在设定的时间间隔内,发出一个固定的时钟脉冲信号,用于控制外部器件的时间。
定时器通常由计数器和时钟源两部分组成,计数器用于计数,时钟源则提供时钟脉冲。
在 STM32F103C8T6 单片机中,STM32F1 系列具有三个基本定时器,包括 TIM2、TIM3 和 TIM4,以及一个高级定时器 TIM1,这些定时器都是 16 位计数器。
下面以 TIM2 为例,介绍定时器的工作原理和使用方法。
STM32F103C8T6 的时钟系统图如下图所示:其中,HCLK(高速时钟)的频率为 72MHz。
TIM2 的时钟源为:TIM2 的计数器是一个 16 位的寄存器,它的计数范围为 0-65535。
当计数器计数到最大值 65535 后,会自动从 0 开始重新计数。
TIM2 的数据和控制寄存器如下表所示:TIM2 的工作模式有四种,分别为向上计数、向下计数、向上/向下计数和单脉冲模式。
在本次实验中,我们选择向上计数模式,即计数器从 0 开始计数,当计数器计数到设定的值时,触发中断。
2. 中断中断是指由外部事件、硬件故障或软件请求而引起 CPU 暂停正在执行的当前程序,并转去执行一个特殊函数的程序执行机制。
中断是实现系统交互的重要手段,能够提高系统的响应速度和可靠性。
STM32F103C8T6 支持多种类型的中断,包括外部中断、定时器中断、USART 中断和 DMA 中断等。
在 STM32F103C8T6 中,各个中断向量表的地址为 0x0800 0000,STM32F1 系列的中断向量表共有 61 个中断向量,如下图所示:当有中断事件触发时,会自动跳转到相应的中断向量表所存的中断服务函数。
用8253计时器和8259中断做电子时钟实验报告开课学院及实验室:学院广州大学年级、专业、班级姓名 zhirongguo 学号成绩指导老师实验课程名称实验项目名称一、实验目的微型计算机原理和接口技术实验六电子钟实验 1、进一步掌握8253定时器的使用和编程方法。
2、进一步掌握8259中断控制器的编程方法。
3、进一步掌握数码显示电路的驱动方法。
二、实验器材计算机,汇编相关程序,WAVE6000实验仿真器三、实验原理利用8253定时器、8259中断控制器和实验箱上提供的数码显示电路,设计一个电子时钟。
格式如下:XX XX XX 由左向右分别为:时、分、秒定时器每100us中断一次,在中断服务程序中,对中断次数进行计数,100us计数10000次就是1秒。
然后再对秒计数得到分和小时值,并送入显示缓冲区。
四、实验步骤(1) 在实验箱断电的情况下连好线。
连线 1 2 3 4 5 连接孔1 KEY/LED_CS 8253_CS 8253的GATE1 8253的CLK1 4MHZ 连接孔2 CS0 CS4 +5V 1MHZ Fin连线 6 7 8 9 10 连接孔1 8253的OUT1 8259_CS 右8259的INT 右8259的SP/EN 连接孔2 右8259的IR0 CS5 8088的INTR (在CPU的左侧) +5V(2) 输入自编程序并检查,保存程序。
(3) 调试程序。
(4) 记录实验结果及分析。
五、实验参考程序、框图开始置定时器模式及常数设置初始常数启动定时器读取小时值转换成显示数据显示数据送缓冲读取分钟值转换成显示数据显示数据送缓冲读取秒值转换成显示数据显示数据送缓冲调用显示子程序主程序框图 CONTROL equ 0c003h COUNT0 equ 0c000h COUNT1 equ 0c001h COUNT2 equ 0c002h md8255 equ82h ; 8255 工作方式 PA8255 equ 8000h ; 8255 PA口输出地址中断入口保护现场 10000次计数值减1 否计数值为0 是设置下次10000次计数值秒值加1 到60秒否是秒值清0,分钟加1 否到60分钟分值清0,小时加1 否到24小时小时值清0 恢复现场中断返回 100us定时中断服务程序 CTL8255 equ8003h ; ICW4 8255 控制口地址 ICW2 equ 00100000b OUTBIT equ08002h ; 位控制中断号为20H 口 ICW4 equ 00000001b OUTSEG equ 08004h ; 段控工作在8086/88 方式制口 OCW1 equ 11111110b ICW1 equ 00010011b ; 只响应INT0 中断单片8259, 上升沿中断, 要写CS8259A equ 0d000h ; ; ; ;8259地址CS8259B equ 0d001h data segment CNT db 0LEDBuf db 6 dup(?) ; 显示缓冲Num db 1 dup(?) ; 显示的数据DelayT db 1 dup(?) Hour db 0 Minute db 0 Second db 0LEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hdb 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h data ends code segmentassume cs:code, ds: data Delay proc nearpush ax ; 延时子程序push cx mov al, 0 mov cx,ax loop $ pop cx pop ax ret Delay endp DisplayLED proc nearmov bx, offset LEDBuf mov cl, 6 ; 共6个八段管mov ah, 00100000b ; 从左边开始显示 DLoop:mov dx, OUTBIT mov al, 0out dx,al ; 关所有八段管mov al, [bx]mov dx, OUTSEG out dx,al mov dx, OUTBIT moval, ahout dx, al ; 显示一位八段管 push ax mov ah, 1call Delay pop ax shr ah, 1 inc bx dec cl jnz DLoop mov dx, OUTBIT mov al, 0out dx,al ; 关所有八段管 ret DisplayLED endp IEnter procnear push ax push dx inc Second mov al,Second cmp al, 60 jne Exit mov Second, 0 inc Minute mov al, Minute cmp al, 60 jne Exitmov Minute, 0 inc Hour mov al, Hour cmp al, 24 jne Exit mov Hour, 0 Exit:mov dx, CS8259A mov al, 20h ; 中断服务程序结束指令out dx, al pop dxpop ax iret IEnter endp IInit procmov dx, CS8259A mov al, ICW1 out dx, al movdx, CS8259B mov al, ICW2 out dx, al mov al, ICW4 out dx, al mov al, OCW1 out dx, al ret IInit endpstart proc near mov ax, data mov ds, ax mov Hour,0 mov Minute, 0 mov Second, 0 climov ax, 0 mov ds, ax mov al, 76h;01110110B ; 计数器1,16位,方式3,二进制mov dx, CONTROL out dx, al mov ax, 62500 movdx, COUNT1 out dx,al ; 计数器低字节 mov al, ah out dx,al ; 计数器高字节 mov al, MD8255 mov dx,CTL8255 out dx, al mov bx,4*ICW2 ; 中断号 mov ax, code shl ax,4 ; x 16add ax, offset IEnter ; 中断入口地址(段地址为0) mov [bx],ax mov ax, 0 inc bx inc bx mov [bx],ax ; 代码段地址为0 call IInit mov ax, data mov ds, ax mov CNT,0 ; 计数值初始为0mov al, CNT mov dx, PA8255 out dx, al stiLP: ; 等待中断,并计数。
中断与定时器和计数器实验一、实验目的:1.掌握单片机的中断的原理、中断的设置,掌握中断的处理及应用2.掌握单片机的定时器/计数器的工作原理和工作方式,学会使用定时器/计数器二、实验内容:(一)、定时器/计数器应用程序设计实验1.计数功能:用定时器1方式2计数,每计数满100次,将P1.0取反。
(在仿真时,为方便观察现象,将TL1和TH1赋初值为0xfd,每按下按键一次计数器加1,这样3次就能看到仿真结果。
)分析:外部计数信号由T1(P3.5)引脚输入,每跳变一次计数器加1,由程序查询TF1。
方式2有自动重装初值的功能,初始化后不必再置初值。
将T1设为定时方式2,GATE=0,C/T=1,M1M0=10,T0不使用,可为任意方式,只要不使其进入方式3即可,一般取0。
TMOD=60H。
定时器初值为X=82-100=156=9CH,TH1=TL1=9CH。
(1)硬件设计硬件设计如图所示(2)C源程序#include "reg51.h" sbit P1_0=P1^0;void main(){TMOD=0x60;TH1=0xfd;TL1=0xfd;TR1=1;ET1=1;while(1){if(TF1==1){P1_0=~P1_0;TF1=0;}}}(3)proteus仿真通过Keil编译后,利用protues软件进行仿真。
在protues ISIS 编译环境中绘制仿真电路图,将编译好的“xxx.hex”文件加入AT89C51。
启动仿真,观察仿真结果。
(二)中断应用程序设计实验2.中断定时使用定时器定时,每隔10s使与P0、P1、P2和P3端口连接的发光二极管闪烁10次,设P0、P1、P2和P3端口低电平灯亮,反之灯灭。
分析:中断源T0入口地址000BH;当T0溢出时,TF0为1发出中断申请,条件满足CPU响应,进入中断处理程序。
主程序中要进行中断设置和定时器初始化,中断服务程序中安排灯闪烁;TL0的初值为0xB0,TH0的初值为0x3C,执行200次,则完成10s定时。
微机原理与接口技术课程设计报告——电子钟实验学院:计算机学院指导教师:***一实验任务及要求任务:1、掌握综合使用基本输入输出设备、通用接口芯片、专用接口芯片的方法;2、掌握实时处理程序的编制和调试方法。
要求设计一个定时显示装置,用实验仪左侧的六个LED数码管显示时间,时间显示格式为24小时制。
分秒值为59分55秒时开始报时,每秒钟蜂鸣器鸣叫一声,到整点报时停止。
用小键盘控制时钟的启停和时钟的设置,键的定义参见上图键值具体定义如下:G键(启停键)——程序启动后,按下该键时钟启动;再次按下该键,暂停计时,显示当前时间。
S键(设置键)——按下S键后,为时钟设置时、分、秒初始值。
二硬件连线键盘的控制、LED显示模块:采用74系列模块控制键盘的行信号Q_0、Q_1、Q_2、Q_3分别与开放的输入信号Q0、Q1、Q2、Q3相连,键盘的列信号P_0、P_1、P_2和开放的输出信号P0、P1、P2相连。
74芯片的片选信号CS1接地址译码信号340H, CS2接地址译码信号360H。
时间的精确定时:用8254定时器0产生25ms的中断信号;8254的片选CS连地址输出端320H,A0,A1分别连地址总线A2,A3,GATE0连+5V,CLK0连74LS393分频输出的47K输出端,OUT0连接到8259的IRQ0整点报时控制:由8255模块控制;PC0直接与蜂鸣器相连,CS_4连接到实验仪中部的地址输出端CS_4中断处理模块:由8259控制8259的片选CS-1连地址输出300H,INT1连总线输入INTR,8259模块的INT-A连总线的INTA,8259的SP/1连+5V, 8259的IRQ0连接到8254的OUT0。
三、程序流程图主程序初始化各阶段寄存器及相关变量初始化8254、8259、8255芯片设置中断向量、开放8259中断屏蔽开放处理器中断中断服务程序保护现场判断时间是否不小于59分55秒报时扫描键盘G 键?调用启停子程序S COUNT COUNT=40? ADDONE 子程序COUNT 清0显示时间,调用显示时间子程序结束中断(发EOI 命令)恢复现场中断返回四、实验源代码.486pDATA SEGMENT AT 0 USE16ORG 1000HHOUR DW ?Y YN YMIN DW ?SEC DW ?SLL DB ?COUNT DB ?DATA ENDSCODE SEGMENT USE16ASSUME CS:CODE,DS:DATAORG 1500HBEG:JMP STARTTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,00H ;0~F 的共阴极七段译码表00H表示不显示任何东西KEYCOD DB 0EEH,0DEH,0BEH,0EDH,0DDH,0BDH,0EBH,0DBH,0BBH,0E7H,0D7H,0B7H ;行列编码值KEYV AL DB 0,1,2,3,4,5,6,7,8,9,0AH,0BH ;所有键的键面值PORT1 EQU 340H ;数码管段选端口PORT2 EQU 360H ;数码管位选端口,键盘矩阵的行列端口START: MOV EAX,60000000HMOV CR0,EAXMOV AX,DATAMOV DS,AXMOV HOUR,0203H ;小时分钟以及秒的初始化MOV MIN,0509HMOV SEC,0502HLEA BX,TABMOV SLL,0 ;开始暂停标志位置0MOV COUNT ,0 ;中断次数计数初始值为0;8255初始化,用于产生报时的脉冲MOV EAX,80808080H;控制字MOV DX,20CH ;后面的是4个8255的控制端口20C-20F (这个地址由实验台决定)OUT DX,EAX ;初始化8255,A、B、C口均为方式0输出MOV DX,20BHMOV AL,0FFHOUT DX,AL;8254初始化,用于产生周期为25ms的中断MOV AL,00110110B ;计数器0,先低后高,方式三,二进制MOV DX,32cH ;写往控制口OUT DX,ALMOV DX,320H ;计数器0写初值:47KHz*25msMOV AX,1175OUT DX,ALMOV AL,AHOUT DX,AL;8259初始化CLI :关中断MOV DX,300H ;ICW1MOV AL,00010011BOUT DX,ALMOV DX,308H ;ICW2MOV AL,08H ;IR0中断类型号为08HOUT DX,ALMOV AL,00000001B ;ICW4OUT DX,ALMOV AL,0FEH ;IR0开屏蔽OUT DX,ALXOR AX,AX ;装载中断向量MOV ES,AXMOV DI,08H*4MOV AX,OFFSET INTSRMOV ES:[DI],AXMOV AX,SEG INTSRMOV ES:[DI+2],AXSTI ;开中断JMP $INTSR PROC ;中断服务程序CMP MIN,0509H ;比较当前时间是否在59分55秒~00分00秒之间JL NEXT1CMP SEC,0505HJL NEXT1MOV DX,20BHMOV AL,00H ;蜂鸣器低有效,报时OUT DX,ALJMP NEXT2NEXT1: CMP MIN,0JNE NEXT3CMP SEC,0JNE NEXT3MOV DX,20BHMOV AL,00H ;蜂鸣器低有效,报时OUT DX,ALJMP NEXT2NEXT3: MOV DX,20BHMOV AL,0FFHOUT DX,ALNEXT2: CMP COUNT,20 ;用8255产生0.5ms的蜂鸣JLE NEXT4MOV DX,20BHMOV AL,0FFHOUT DX,ALNEXT4:CMP SLL,0JZ LOBCALL TSTARTLOB: CALL KEYCHECK ;检测有无键按下CMP AL,0AH ;启停键按下,调用启停程序JNZ NEXT5CALL TSTARTJMP NEXT6NEXT5: CMP AL,0BH ;设置键按下,调用设置时间程序JNZ NEXT6CALL SETTIMENEXT6: INC COUNT ;当COUNT直为40时,加一秒,之后置0 CMP COUNT,40 ;25ms*40=1sJB NEXT7CALL ADDONEMOV COUNT,0NEXT7: CALL SHOW ;显示时间MOV AL,20H ;发EOI命令,结束中断MOV DX,300HOUT DX,ALIRETINTSR ENDPTSTART PROC ;控制时间暂停和开始。
微机原理综合实验:电子钟实验要求8253每1s产生中断请求给8259,中断服务程序利用8255控制数码管,构建一个电子钟。
一、实验原理(相关芯片大致介绍)1.82548254 是Intel 公司生产的可编程间隔定时器,是8253 的改进型,比8253 具有更优良的性能。
8254 具有以下基本功能:(1)有3 个独立的16 位计数器。
(2)每个计数器可按二进制或十进制(BCD)计数。
(3)每个计数器可编程工作于6 种不同工作方式。
(4)8254 每个计数器允许的最高计数频率为10MHz(8253 为2MHz)。
(5)8254 有读回命令(8253 没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。
(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。
计数初值公式为:n=fCLKi÷fOUTi、其中fCLKi是输入时钟脉冲的频率,fOUTi是输出波形的频率。
2.8259Intel公司专为控制优先级中断而设计开发的芯片,包括中断源优先级排队、辨别中断源以及提供中断矢量的电路,无需附加任何电路,用户只需对8259 进行编程,就可以管理8 级中断,并选择优先模式和中断请求方式。
同时,在不需增加其他电路的情况下,通过多片8259 的级连,能构成多达64 级的矢量中断系统。
管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU 传送中断类型号。
3.8255并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。
CPU 和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位或32 位等。
8255 可编程外围接口芯片是Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,用+5V 单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。
一、实验目的1、学习外部中断指令的基本使用方法;2、学习外部中断处理程序的编程方法。
二、实验内容1、在试验一的内容的基础上增加允许急救车优先通过的要求;2、急救车到达时(产生外部中断),交通信号为全红,以便让急救车通过;3、急救车通过路口的时间为10秒(四个红灯亮10秒)。
急救车通过后,交通灯恢复原状态(中断前的状态)实验说明:交通灯的亮灭规律同实验一;执行中断程序时,应注意保护现场(保护中断前的状态),使中断程序执行完毕后交通灯能返回中断前的状态。
所谓保护现场,即保护有关的寄存器;主程序的延时程序和中断处理程序所使用的寄存器不应该混用;主程序中,每次经74LS273端口输出数据时,要先将输出数据保存、再输出,否则显示容易出错,而无法返回中断前状态。
例如:MOV A, #0F0H (0)MOVX R1,A (1)MOV SR1,A (2)假设程序执行(1)时发生中断,而中断结束返回主程序前执行了一条MOV A, SR1 的指令,则由于主程序没有执行(2),故SR1的内容应该是上次操作存入的数据,而不是(0)指令中的0F0H,容易出错。
(1)、(2)条指令的顺序可以颠倒。
三、实验参考电路图(如下)图1:实验接线图实验程序框图开始初始化定时器、送计时初值东西南北红灯亮、绿灯黄灯灭、延时南北红灯亮、绿灯黄灯灭,东西绿灯亮、红灯黄灯灭、开定时器中断,开定时器计时NY南北红灯亮、黄灯灭,东西绿灯红灯灭、黄灯闪烁计时NY东西红灯亮、黄灯绿灯灭,南北绿灯亮、绿灯黄灯灭 N计时Y东西红灯亮、黄灯绿灯灭,南北绿灯灭、黄灯闪烁计时NY图2:主函数流程图关中断保护现场开中断中断处理关中断现场恢复开中断中断返回图3:中断服务程序流程图实验步骤1、根据实验要求进行硬件电路的设计和搭建;2、在Keil软件下进行程序设计,并调试;3、检查硬件电路是否安全正确,硬件无误时接通电源和下载线;4、利用MEFlash烧写软件把程序烧写进单片机中;5、进行软硬件整体调试,直到符合实验要求为止;6、断开电源,收拾实验仪器,关掉电脑,书写实验报告;六、程序清单ORG 0000HLJMP MAINORG 0013HLJMP INT_EX0ORG 0050HMAIN: MOV SP,#60HSETB EASETB IT1SETB EX1MOV A,#7BHMOV P0,AMOV P2,ALCALL DELAY2A1: MOV A,#0DEHMOV P0,AMOV A,#7BHMOV P2,ALCALL DELAY2LCALL SHAN1MOV A,#7BHMOV P0,AMOV A,#0DEHMOV P2,ALCALL DELAY2LCALL SHAN2LJMP A1DELAY1: MOV R7,#250 L11: MOV R6,#250L12: DJNZ R6,L12DJNZ R7,L11RETDELAY2: MOV R1,#10 L21: MOV R2,#250L22: MOV R3,#250L23: DJNZ R3,L23DJNZ R2,L22DJNZ R1,L21RETSHAN1: MOV R4,#5S1: MOV A,#0BDH MOV P0,ALCALL DELAY1MOV A,#0FFHMOV P0,ALCALL DELAY1DJNZ R4,S1RETSHAN2: MOV R5,#5S2: MOV A,#0FFHMOV P2,ALCALL DELAY1MOV A,#0BDHMOV P2,ALCALL DELAY1DJNZ R5,S2RETINT_EX0:PUSH ACCPUSH PSWMOV A,#7BHMOV P0,AMOV P2,AMOV 20H,#10EX001: LCALL DELAY2DJNZ 20H,EX001POP PSWPOP ACCRETIEND实验分析1、电路接通电源时,一定要再次检查电路,特别是确定单片机是否放置正确,位置是否放反,以免烧毁单片机或者调试不出结果。
《时钟中断实验》实验报告姓名: 赵广元学号: 1428403058学院: 电子信息学院班级: 电子信息工程时钟中断实验一实验目的1.熟悉定时器初始化的步骤2.熟悉定时器控制寄存器(TCR)的含义和使用3.熟悉定时器中断的原理和使用二实验设备本实验设备包括:PC机、CCS2.1和5416DSK开发板三实验内容本实验要求编一个简单的定时器中断程序,设置一定的周期控制XF引脚输出电平周期性变化。
当定时器中断产生时可以观察到XF引脚输出电平周期性变化。
四实验原理中断处理:接受中断请求→应答中断→执行中断服务程序ISR定时器中断:19号中断当发生时钟中断时,PC值将指向时钟中断的中断向量地址中断向量地址的计算方法:(1)取PMST寄存器的IPTR的值(中断向量指针,9位);(2)查DSP的中断表得到时钟中断向量序号19;(3)将中断向量序号19左移2位(4)将IPTR值左移7位(占高9位)与(3)相加,得到中断向量地址。
中断向量表程序设计:(1)TI54系列DSP最大支持序号0~31的32个中断(存在复用)(2)根据中断向量表地址计算方法,每四个中断向量占四个字(序号左移两位),整个中断向量表共占128个字(3)硬件复位后,其中断向量表首地址为0xFF80(0号中断地址)(4)软件设置IPTR后,其中断向量表地址发生变化,为使高速响应中断,应在片内RAM中运行定时器:C54X系列的DSP都具有一个或者两个预定标的片内定时器,这种定时器是一个倒数定时器,它可以被特殊的状态位实现停止,重启动,重设置或者静止。
定时器在复位后就处于运行状态,为了降低功耗可以禁止定时器工作。
应用中可以用定时器来产生周期性的CPU中断或者脉冲输出。
定时器的功能方框图如5.1所示,其中有一个主计数器(TIM)和一个预定标计数器(PSC)。
TIM用于重装载周期寄存器(PRD)的值,PSC用来重装载周期寄存器(TDDR)的值。
图5.1 定时器的功能方框图图5.1是定时器的功能方框图, SRESET 是在器件复位时,DSP 向外围电路(包括定时器)发送的一个信号,此信号将在定时器上产生以下效果:寄存器TIM 和PRD 装载最大值(0FFFFH );TCR 的所有位清0;结果是分频值为0,定时器启动,TCR 的FREE 和SOFT 为0。
微机原理与接口技术硬件实验报告实验一 :8259中断控制器实验一、 实验目的1. 掌握8259的工作原理。
2. 掌握编写中断服务程序的方法 。
3. 掌握初始化中断向量的方法 。
二、 实验内容用单脉冲发生器的输出脉冲为中断源 ,每按一次产生一次中断申请管。
三、 实验设备微机实验教学系统实验箱 、8086CPU 模块班级: 姓名: 学号:,点亮或熄灭发光二极四、连线① 单脉冲发生器输出 P+与8259的IR0相连 ② 8259的片选 CS8259与CSO 相连 ③ 8259的INT 与8086的INT 相连 ④ 8259的INTA 与8086的INTA 相连 ⑤ CS273与CS1相连 ⑥ 00与LED1相连 其它线均已连好如下图:编辑程序,编译链接后,调试程序。
在中断服务程序内的断点处 。
(4)撰写实验报告。
10g7\lID6 5 SjJD? 4IRQ IR1 IR2 IRj IR.4 IR5 IR# IR -IRQ 1K1 1R2 IR3 :P.- IR5 IR6 IK7五、 实验步骤(1) 连线。
IORD 1[O1VR2WADRDWR "SP EN INT INTACASO CAS] CAS2调试通过后,在中断服务程序内设置断点,运行程序,当接收到中断请求后, 程序停7 4LS3 2VccTDO D] D2 D3 EM D5 1>5六、实验源程序CODE SEGMENT PUBLIC ASSUME CS:CODEORG 100H START: MOV DX,4A0HMOV AX,13HOUT DX,AXMOV DX,4A2HMOV AX,80HOUT DX,AXMOV AX,01OUT DX,AXMOV AX,0OUT DX,AX;中断向量存放在MOV AX,0MOV DS,AXMOV SI,200HMOV AX,OFFSET HINTMOV DS:[SI],AXADD SI,2MOV AX,CS 写 ICW1写ICW2;IR0的中断向量码为80H;一般嵌套,非缓冲,非自动EOI ;写OCW1 ;允许中断;中断类型号为80H;中断服务程序的入口地址(0000H : 0200H)开始的四个单元里MOV DS:[SI],AXSTI 开中断,设置IF=1 JMP $ ;原地跳转HINT:XOR CX,0FFHMOV DX,4B0HMOV AX,CXOUT DX,AXMOV DX,4A0HMOV AX,20HOUT DX,AXIRETCODE ENDSEND START七、实验思考题1 .将P+连线连接到IR1 —将P+接到IR1,在原程序的基础上口地址改为0204H即可。
基于单片机中断方式的时钟实验实训报告内容项目简介本实验是基于单片机的时钟实验,采用汇编语言,用中断方式实现1s的跳动,时钟显示采用数码管显示,基本功能在数码管上实现时,分,秒的正常显示和跳动,附加功能用蜂鸣器实现整点报时功能,用按键实现时钟的调表功能,调表可加可减通过四个按键实现,另外还通过按键和蜂鸣器实现任意闹铃功能。
在整点报时时蜂鸣器响1秒,在闹铃时蜂鸣器响1分钟。
程序采用中断方式,当计数溢出时执行中断,然后实现秒加,当秒加到60时清零分加,分加到60时清零时加,时加到24清零。
按键采用4个独立按键,第一个按键切屏,第二个按键选择调时还是调分,第三个按键加一功能,第四个按键减一功能。
当调整时钟时中断关闭,调整完之后开启中断。
对于外部电路,数码管的段选用P0口控制,数码管的位选用P2口控制,按键用P3口控制,蜂鸣器用P2.7控制。
一、硬件1.单片机AT89s52简介AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。
AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
本科实验报告实验名称:利用中断方式设计数字时钟课程名称:计算机原理与接口技术实验实验时间:2014.5.19任课教师:实验地点:信息系统及安全对抗实验中心实验教师:实验类型:□原理验证■综合设计□自主创新学生姓名:学号/班级:组号:学院:同组搭档:专业:成绩:实验二利用中断方式设计数字时钟一、实验目的1.掌握PC 机中断处理系统的基本原理。
2.熟悉定时/计数器8254 工作原理及其编程方法。
3.利用实验板上的8254 定时器为中断源发中断申请,中断请求用IRQ3(系统总线区的IRQ)。
4.熟悉数码管显示原理,掌握数码管显示接口技术。
5.学习数字时钟原理,实现数字时钟。
6.掌握中断控制器8259 管理。
二、实验内容与步骤1.接线:三、实验原理1. PC 机用户可使用的硬件中断只有可屏蔽中断,由8259 中断控制器管理。
中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU 发出可屏蔽中断请求。
IBMPC、PC/XT 机内有一片8259 中断控制器对外可以提供8 个中断源:中断源中断类型号中断功能IRQ0 08H 时钟IRQ1 09H 键盘IRQ2 0AH 保留IRQ3 OBH 串行口2IRQ4 0CH 串行口1IRQ5 0DH 硬盘IRQ6 0EH 软盘IRQ7 0FH 并行打印机8 个中断源的中断请求信号线IRQ0~IRQ7 在主机的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 号中断IRQ3 上,即进行中断实验时,所用中断类型号为0BH。
2、中断控制器8259 可利用系统初始化设定,如不进行新的初始化,只需对8259 中断控制器的屏蔽寄存器设定IRQ3 为中断允许,其他原有中断允许保持不变。
3、将实验板上的8253 的通道,设定为10ms 周期信号发生器,该芯片的通道1 设定为计数器,其输入来自定时器通道0 的输出,利用通道1 的计数器输出作为IRQ3 中断请求信号。
4、8254 定时器的CLK0 由实验板上的1MHZ 振荡器来提供。
见图1。
5、编写中断服务程序,进行数字钟显示: XX:XX(分:秒)其中X为一位数码管。
6、数码管显示接口电路如图2 所示。
实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。
实验时用PB7~PB0/8255 接dp~a /LED 数码管,PC3~PC0 /8255 接S3~S0/LED 数码管。
七段数码管的字型代码表如下表:6. 程序流程图如图3四、实验心得与体会本次实验主要是在掌握8255的基础上使用定时器8254进行操作,尤其是对应用终端请求方面。
由于计算机原理与接口技术的授课老师在实验之前对本次实验进行了比较详细的讲解,再加上课后我们对相关中断原理及代码的认识、对数码管数字时钟原理的掌握,另外在上课时老师对实验的代码进行了部分书写演示,大大降低了本次实验带给我们本身的难度。
整体上说,本次实验难度很大,流程也较为简单,实验做得速度也较快。
这也提示了我,只要在实验前对实验有充足的了解,做了充分的准备,可以顺利的快速的完成实验。
附:实验代码p8259 equ 20hp8255 equ 288hp8253 equ 280h ;IO Y1data segmentled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;数码管0-9 sec1 db 0sec2 db 0min1 db 0min2 db 0mes db 42hOld_0A DW 0,0 ;原中断向量Old_8259 DB 0data endsstacks segmentdb 64 dup (0)stacks endscode segmentassume cs:code,ds:data,es:datastart:mov ax,datamov ds,axclimov al,00110110bmov dx,p8253+3 ;计数器0,工作在模式3out dx,almov ax,2710hmov dx,p8253out dx,almov al,ah ;先赋高八位再赋低八位out dx,almov al,01110110bmov dx,p8253+3 ;计数器1,工作在模式3out dx,almov ax,100mov dx,p8253+1out dx,almov al,ah ;先赋高八位再赋低八位;设置中断向量表PUSH ESPUSH BXMOV Al,0BH ;保护原中断向量,0B中断类型号 mov ah,35hINT 21H ;读中断向量表MOV Old_0A+2,ES ;ES为段地址,BX为段偏移地址 MOV Old_0A,BXPOP BXPOP ESpush dsmov al,0bh ;写新中断向量mov ah,25hmov dx,seg INT_0Amov ds,dxmov dx,offset INT_0Aint 21hpop dsmov al,10000000b ;对8255进行设置,PB/PC输出mov dx,p8255+3out dx,alin al,p8259+1 ;8259奇地址?中断向量屏蔽mov old_8259,al ;字设置保护原屏蔽字and al,11110111b ;开IRQ3out p8259,alsti ;开中断play:lea bx,led ;led段码mov dl,sec1 ;秒个位mov dh,0mov si,dxmov al,[bx][si]mov dx,p8255+1 ;点亮ledout dx,almov ah,00000001bmov al,ahmov dx,p8255+2 ;pc输出选通信号PUSH CXMOV CX,00f00h ;延时delay1:LOOP delay1POP CXmov ah,00000000bmov al,ahmov dx,p8255+2 ;pc输出选通信号out dx,almov dl,sec2 ;秒十位mov dh,0mov si,dxmov al,[bx][si]mov dx,p8255+1 ;点亮ledout dx,almov ah,00000010bmov al,ahmov dx,p8255+2 ;pc输出选通信号out dx,alPUSH CXMOV CX,00f00h ;延时delay2:LOOP delay2POP CXmov ah,00000000bmov al,ahmov dx,p8255+2 ;pc输出选通信号out dx,almov dl,min1 ;分个位mov dh,0mov si,dxmov al,[bx][si]mov dx,p8255+1 ;点亮ledout dx,almov ah,00000100bmov al,ahmov dx,p8255+2 ;pc输出选通信号out dx,alPUSH CXMOV CX,00f00h ;延时delay3:LOOP delay3POP CXmov ah,00000000bmov al,ahmov dx,p8255+2 ;pc输出选通信号out dx,almov dl,min2 ;分十位mov dh,0mov si,dxmov al,[bx][si]mov dx,p8255+1 ;点亮ledout dx,almov ah,00001000bmov al,ahmov dx,p8255+2 ;pc输出选通信号out dx,alPUSH CXMOV CX,00f00h ;延时delay4:LOOP delay4POP CXmov ah,00000000bmov al,ahmov dx,p8255+2 ;pc输出选通信号out dx,aljmp playmov ah,4chint 21hINT_0A proc near ;中断服务子程序 cmp sec1,9jz int1inc sec1jmp exitint1:mov sec1,0inc sec2cmp sec2,6jnz exitmov sec2,0inc min1cmp min1,10jnz exitmov min1,0inc min2cmp min2,6jnz exitmov min2,0 exit:mov al,20hout 20h,aliretINT_0A endpcode endsend start。