电子钟王天宇 PB12210258李韧 PB12210238杨征元 PB12210247.docx
- 文档编号:11548895
- 上传时间:2023-03-19
- 格式:DOCX
- 页数:14
- 大小:1.17MB
电子钟王天宇 PB12210258李韧 PB12210238杨征元 PB12210247.docx
《电子钟王天宇 PB12210258李韧 PB12210238杨征元 PB12210247.docx》由会员分享,可在线阅读,更多相关《电子钟王天宇 PB12210258李韧 PB12210238杨征元 PB12210247.docx(14页珍藏版)》请在冰豆网上搜索。
电子钟王天宇PB12210258李韧PB12210238杨征元PB12210247
微机原理与系统综合实验
实验题目:
电子钟
小组成员:
李韧杨征元王天宇
PB12210238PB12210247PB12210258
院系:
信息科学技术学院
时间:
2014年夏季学期
综合实验电子钟
王天宇PB12210258,李韧PB12210238,杨征元PB12210247
一.实验目的
1.熟练掌握8254定时和计数的应用,了解各方式的波形特征,熟悉8254的编程。
2.掌握8255的工作方式及其应用,了解数码显示的基本原理,熟悉8255的编程。
3.熟练掌握中断向量的设置程序的编写,掌握8259中断控制器的工作原理。
4.能够利用各个芯片的特性,掌握各芯片连接方法,开发思维,自主设计,完成实际应用。
二.实验设备
IA-32架构的微机系统及应用教学平台一套。
三.实验基本原理
1.8254
计数初值公式为:
n=fCLKi÷fOUTi
其中fCLKi是输入时钟脉冲的频率,fOUTi是输出波形的频率。
图3-3-1是8254的内部结构框图和引脚图,它是由与CPU的接口、内部控制电路和三个计数器组成。
8254的工作方式如下述:
(1)方式0:
计数到0结束输出正跃变信号方式。
(2)方式1:
硬件可重触发单稳方式。
(3)方式2:
频率发生器方式。
(4)方式3:
方波发生器。
(5)方式4:
软件触发选通方式。
(6)方式5:
硬件触发选通方式。
图3-3-18254的内部接口和引脚
8254的控制字有两个:
一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。
这两个控制字共用一个地址,由标识位来区分。
控制字格式如表3-3-1所示。
表3-3-18254的方式控制字格式
2.
8255
并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:
方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。
8255工作方式控制字和C口按位置位/复位控制字格式如图3-1-1所示。
图3-1-18255控制字格式
3.8259
8259的命令共有7个,一类是初始化命令字,另一类是操作命令。
8259的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1-OCW3分别写入初始化命令寄存器组和操作命令寄存器组。
ICW1-ICW4各命令字格式如图2-1-2所示,OCW1-OCW3各命令字格式如图2-1-3所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和中断结束方式的操作命令字,OCW3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259内部寄存器的读出命令。
图2-1-2(a)ICW1格式
图2-1-2(b)ICW2格式
图2-1-2(c)ICW3格式
图2-1-2(d)ICW4格式
图2-1-3OCW命令字格式
在硬件系统中,8259仅占用两个外设接口地址,在片选有效的情况下,利用A0来寻址不同的寄存器和命令字。
对寄存器和命令的访问控制如表2-1-1所示。
表2-1-18259寄存器及命令的访问控制
四.实验内容
利用8254,8255,8259制作电子钟要求在数码管上显示时分秒。
(1).接线
8254:
CLK0接18.342KHZ时钟,GATE0接+5V,OUT0接8259的IR1
8255:
PB0~PB6接数码管引脚,PA5~PA0接X1~X6。
(2).实验设计过程
8254产生1s脉冲充当中断信号,8259产生中断,8255控制刷新数码管,计数函数以及显示函数。
其中显示函数死循环实现,计数函数在中断服务程序内操作。
8254:
使用提供的时钟源经方式3分频产生1Hz的方波时钟脉冲,分频参数为4500。
8259:
接收8253产生的中断,给CPU提供中断,使程序进入中断调用,中断一秒一次。
8255:
通过A口选通使数码管轮流显示,通过B口控制数码管引脚电平,产生相应的数字。
中断服务程序:
计时值由空间TIME存放,定义有六个DB数据域,初值均为0,低位到高位依次分别代表秒:
分钟:
小时。
中断服务程序内首先对其中最低位自增,并逐位判断是否需要进位。
由于中断服务程序每一秒触发一次,便可实现电子钟功能。
时间显示程序:
显示通过刷新数码管实现。
即以刷新显示一遍(6个数)为
一周期。
先显示最低位:
由TIME最低位数值换码得到相
应信号,由8255B口方式0输出,8255A口方式0输出
对应选通信号(0FEH)。
之后显示次低位,选通信号移位
(通过ROL),在第五个数码管上显示次低位。
直至一个
周期全部显示完。
显示后引入较小的延迟,增加显示稳
定性(因为输出新的时间与选通信号始终有一个很小的
延迟,故将正确的显示加延迟可提升那部分占空比,使
显示更稳定),但仍使刷新率高到人眼无法分辨以实现刷
新显示。
完成一个周期后,循环重新初始化,继续进行
显示。
显示过程中收到中断信号就终止显示,转入中断
(计数)处理。
(3).程序代码
IRQ_IVADDEQU01C8H;IRQ10对应的中断矢量地址
IRQ_OCW1EQU0A1H;IRQ10对应PC机内部8259的OCW1地址
IRQ_OCW2EQU0A0H;IRQ10对应PC机内部8259的OCW2地址
IRQ_IMEQU0FBH;IRQ10对应的中断屏蔽字
CS2EQU3040H;片选CS2对应的端口始地址
MY8254_COUNT0EQUCS2+00H;8254计数器0端口地址
MY8254_MODEEQUCS2+03H;8254控制寄存器端口地址
CS0EQU3000H
MY8255_AEQUCS0+00H
MY8255_BEQUCS0+01H
MY8255_CEQUCS0+02H
MY8255_MODEEQUCS0+03H
DATASEGMENT
IMRRDB(?
)
DTABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,
7FH,6FH,77H,7CH,39H,5EH,79H,71H
TIMEDB0,0,0,0,0,0;时间数值存到TIME,由低到高依次是
秒个位、秒十位、分个位、分十位、小时的个位,小时的十位
PICKDB0FEH
DATAENDS
STACK1SEGMENTSTACK
DW256DUP(?
)
STACK1ENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,MY8255_MODE;初始化8255
MOVAL,00000000B
OUTDX,AL
MOVDX,MY8254_MODE;初始化8254
MOVAL,00110111B
OUTDX,AL
MOVDX,MY8254_COUNT0
MOVAL,00H
OUTDX,AL
MOVAL,45H;设置1s中断
OUTDX,AL
CLI
MOVAL,72H;设置中断向量
MOVAH,35H
INT21H
PUSHES
PUSHBX
PUSHDS
MOVDX,OFFSETCHIHAYA
MOVAX,SEGCHIHAYA
MOVDS,AX
MOVAL,72H
MOVAH,25H
INT21H
POPDS
INAL,IRQ_OCW1
MOVDX,IRQ_OCW1
MOVIMRR,AL
ANDAL,0FBH
OUTDX,AL
STI;打开中断,之后触发端有脉冲即可进入服务程序,无中断则不断刷新数码管以显示时间
SHOWPP:
MOVDX,MY8255_A;数码管显示程序
MOVAL,0FEH
MOVPICK,AL;PICK用于存储AL的数值,以循环显示
OUTDX,AL
MOVDI,OFFSETTIME
MOVCX,6
SHOWP:
MOVAL,[DI]
MOVBX,OFFSETDTABLE
XLAT
MOVDX,MY8255_B
OUTDX,AL
CALLDELAY
INCDI
MOVDX,MY8255_A
MOVAL,PICK
ROLAL,1;循环移位,依次选通
OUTDX,AL
MOVPICK,AL
LOOPSHOWP
JMPSHOWPP
QUIT:
CLI
POPDX
POPDS
MOVAL,72H
MOVAH,25H
INT21H
MOVDX,IRQ_OCW1
MOVAL,IMRR
OUTDX,AL
STI
MOVAX,4C00H
INT21H
CHIHAYAPROCNEAR;时间计数及处理中断程序,中断一次秒数加一,然后判断是否需要进位。
需要,则进位,然后判断高位是否需要进位,依次进行下去;不需要则退出中断。
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVDI,OFFSETTIME
MOVAL,[DI]
INCAL
CMPAL,10
JNZNEXT
MOVAL,0
MOV[DI],AL
INCDI
MOVAL,[DI]
INCAL
CMPAL,6
JNZNEXT
MOVAL,0H
MOV[DI],AL
INCDI
MOVAL,[DI]
INCAL
CMPAL,10
JNZNEXT
MOVAL,0H
MOV[DI],AL
INCDI
MOVAL,[DI]
INCAL
CMPAL,6
JNZNEXT
MOVAL,0H
MOV[DI],AL
INCDI
MOVAL,[DI]
INCAL
CMPAL,10
JNZNEXT
MOVAL,0H
MOV[DI],AL
JMPQUIT1
NEXT:
MOV[DI],AL
QUIT1:
MOVDI,OFFSETTIME;判断是不是24点,若是则“小时”清零
MOVAL,[DI+4]
CMPAL,4
JNZQUIT2
MOVAL,[DI+5]
CMPAL,2
JNZQUIT2
MOVAL,0
MOV[DI+5],AL
MOV[DI+4],AL
QUIT2:
MOVDX,IRQ_OCW2;向PC机内部8259发送中断结束命令
MOVAL,20H
OUTDX,AL
MOVAL,20H
OUT20H,AL
POPAX
STI
IRET
CHIHAYAENDP
DELAYPROCNEAR;延时,调整数码管显示频率,使数字显示清晰而无其他混杂
PUSHCX
MOVCX,0FFFH
D1:
MOVAX,00FFH
D2:
DECAX
JNZD2
LOOPD1
POPCX
RET
DELAYENDP
CODEENDS
ENDSTART
(4).实验结果
时钟格式——X1X2:
X3X4:
X5X6(时:
分:
秒)
X6不断加一计数,计到10,则X5加一,X6清零;X5计到6,则X4加一,X5清零;X4计到10,则X3加一,X4清零;X3计到6,则X2加一,X3清零;X2计到10,则X1加一,X2清零。
下为实验室的实物照:
五.实验总结
本实验综合性较强,综合应用了8255,8259,8254三个芯片,很好地锻炼了综合能力,将平常所学的分立的知识有机的结合了起来。
实验过程中也遇到了一些问题,比如延时不够理想,出现了字形不清晰等,通过对程序进行了多次调试和修改,最终理想地得到了符合要求的最终结果。
多次实验下来,我们都感觉到了实际应用和理论学习确实有一定的差距,也在实验过程中不断强化了课本上的知识,受益匪浅。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子钟 王天宇 PB12210258李韧 PB12210238杨征元 PB12210247 天宇 PB12210258 李韧 PB12210238 杨征元