资源描述:
《微机原理与接口技术综合实验电子钟实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、微机原理综合实验:电子钟实验要求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没有),除了可以读出当前计数单元的内容外,还可以读出
2、状态寄存器的内容。
(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式为:
n=fCLKi÷fOUTi、其中fCLKi是输入时钟脉冲的频率,fOUTi是输出波形的频率。
2.8259Intel公司专为控制优先级中断而设计开发的芯片,包括中断源优先级排队、辨别中断源以及提供中断矢量的电路,无需附加任何电路,用户只需对8259进行编程,就可以管理8级中断,并选择优先模式和中断请求方式。同时,在不需增加其他电路的情况下,通过多片8259的级连,能构成多达64级的矢量中断系统。管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时
3、,向CPU传送中断类型号。3.8255并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:
方式0--基本输入/输出方式、
方式1--选通输入/输出方式、
方式2--双向选通工作方式。二、设计方案①:初始化各芯片,选定工作方式。②:使用功能调用获取当前时间,作为初值装入。③:8254芯片开始计数,每隔1s产生一个中断信号。④:8259芯片接受到中断信号
4、,并传给cpu,cpu响应中断。⑤:返回到③循环执行。①:添加子程序,判断当有按键按下时,终止计时。二、接线设计8255PA0~PA7,PB0~PB7……………………数码管显示8259IQ1……………………8253OUT18.432KHZ……………………853CLK+5V……………………8253GATE三、源代码CS0EQU3000H;片选CS0对应的端口始地址CS2EQU3040H;片选CS2对应的端口始地址MY8255_AEQUCS0+00H;8255的A口地址MY8255_BEQUCS0+01H;8255的B口地址MY8255_CEQUCS0+02H;8255的C口地址MY82
5、55_MODEEQUCS0+03H;8255的控制寄存器地址MY8254_COUNT0EQUCS2+00H;8254计数器0端口地址MY8254_MODEEQUCS2+03H;8254控制寄存器端口地址IRQ_IVADDEQU01C8H;IRQ10对应的中断矢量地址IRQ_OCW1EQU0A1H;IRQ10对应PC机内部8259的OCW1地址IRQ_OCW2EQU0A0H;IRQ10对应PC机内部8259的OCW2地址IRQ_IMEQU0FBH;IRQ10对应的中断屏蔽字STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATASEGMENTCS_CHUS
6、HIDW?;保存IRQ10原中断处理程序入口段地址的变量IP_CHUSHIDW?;保存IRQ10原中断处理程序入口偏移地址的变量IM_CHUSHIDB?;保存IRQ10原中断屏蔽字的变量HOURDB0MINUTEDB0SECONDDB0DTABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71HDATAENDS;键值表,0~F对应的7段数码管的段位值CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXCLI;清除中断标志位MOVAX,0000H
7、;替换IRQ10的中断矢量MOVES,AXMOVDI,IRQ_IVADDMOVAX,ES:[DI]MOVIP_CHUSHI,AX;保存IRQ10原中断处理程序入口偏移地址MOVAX,OFFSETMYISRMOVES:[DI],AX;设置当前中断处理程序入口偏移地址ADDDI,2MOVAX,ES:[DI]MOVCS_CHUSHI,AX;保存IRQ10原中断处理程序入口段地址MOVAX,SEGMYISRMOVES:[DI],AX;设置当前中断处理程序入口段地址