[电子钟]王天宇 PB12210258,李韧 PB12210238,杨征元 PB12210247_第1页
[电子钟]王天宇 PB12210258,李韧 PB12210238,杨征元 PB12210247_第2页
[电子钟]王天宇 PB12210258,李韧 PB12210238,杨征元 PB12210247_第3页
[电子钟]王天宇 PB12210258,李韧 PB12210238,杨征元 PB12210247_第4页
[电子钟]王天宇 PB12210258,李韧 PB12210238,杨征元 PB12210247_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机原理与系统综合实验实验题目:电子钟小组成员:李韧 杨征元 王天宇 PB12210238 PB12210247 PB12210258 院系:信息科学技术学院时间:2014年夏季学期综合实验 电子钟王天宇 PB12210258,李韧 PB12210238,杨征元 PB12210247一实验目的1. 熟练掌握8254定时和计数的应用,了解各方式的波形特征,熟悉8254的编程。2. 掌握8255的工作方式及其应用,了解数码显示的基本原理,熟悉8255的编程。3. 熟练掌握中断向量的设置程序的编写,掌握8259中断控制器的工作原理。4. 能够利用各个芯片的特性,掌握各芯片连接方法,开发思维,自主设计

2、,完成实际应用。二实验设备IA-32 架构的微机系统及应用教学平台一套。三实验基本原理1. 8254计数初值公式为:n=fCLKifOUTi 其中fCLKi是输入时钟脉冲的频率,fOUTi是输出波形的频率。图3-3-1 是8254 的内部结构框图和引脚图,它是由与CPU 的接口、内部控制电路和三个计数器组成。8254 的工作方式如下述:(1)方式0:计数到0 结束输出正跃变信号方式。(2)方式1:硬件可重触发单稳方式。(3)方式2:频率发生器方式。(4)方式3:方波发生器。(5)方式4:软件触发选通方式。(6)方式5:硬件触发选通方式。图3-3-1 8254的内部接口和引脚8254 的控制字有

3、两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。这两个控制字共用一个地址,由标识位来区分。控制字格式如表3-3-1所示。表3-3-1 8254的方式控制字格式2. 8255并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU 和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位或32 位等。8255 可编程外围接口芯片是Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,用+5V 单电源供电,能在以下三种方式下工作:方式0-基本输入/输出方式、方式1-选通输入/输出方式、方式2-双向选通工作

4、方式。8255 工作方式控制字和C 口按位置位/复位控制字格式如图3-1-1 所示。图3-1-1 8255控制字格式3. 82598259 的命令共有7 个,一类是初始化命令字,另一类是操作命令。8259 的编程就是根据应用需要将初始化命令字ICW1-ICW4 和操作命令字OCW1- OCW3 分别写入初始化命令寄存器组和操作命令寄存器组。ICW1-ICW4 各命令字格式如图2-1-2 所示,OCW1-OCW3各命令字格式如图2-1-3 所示,其中OCW1 用于设置中断屏蔽操作字,OCW2 用于设置优先级循环方式和中断结束方式的操作命令字,OCW3 用于设置和撤销特殊屏蔽方式、设置中断查询方式

5、以及设置对8259 内部寄存器的读出命令。图 2-1-2(a) ICW1格式图 2-1-2(b) ICW2格式图 2-1-2(c) ICW3格式图 2-1-2(d) ICW4格式图 2-1-3 OCW 命令字格式 在硬件系统中,8259仅占用两个外设接口地址,在片选有效的情况下,利用A0来寻址不同的寄存器和命令字。对寄存器和命令的访问控制如表2-1-1所示。表 2-1-1 8259 寄存器及命令的访问控制四.实验内容利用8254,8255,8259制作电子钟要求在数码管上显示时分秒。(1).接线8254:CLK0接18.342KHZ时钟,GATE0接+5V,OUT0接8259的IR18255:

6、PB0PB6接数码管引脚,PA5PA0接X1X6。(2).实验设计过程8254产生1s脉冲充当中断信号,8259产生中断,8255控制刷新数码管,计数函数以及显示函数。其中显示函数死循环实现,计数函数在中断服务程序内操作。8254:使用提供的时钟源经方式3分频产生1Hz的方波时钟脉冲,分频参数为4500。8259:接收8253产生的中断,给CPU提供中断,使程序进入中断调用,中断一秒一次。8255:通过A口选通使数码管轮流显示,通过B口控制数码管引脚电平,产生相应的数字。中断服务程序:计时值由空间TIME存放,定义有六个DB数据域,初值均为0,低位到高位依次分别代表秒:分钟:小时。中断服务程序

7、内首先对其中最低位自增,并逐位判断是否需要进位。由于中断服务程序每一秒触发一次,便可实现电子钟功能。时间显示程序:显示通过刷新数码管实现。即以刷新显示一遍(6个数)为一周期。先显示最低位:由TIME最低位数值换码得到相应信号,由8255B口方式0输出,8255A口方式0输出对应选通信号(0FEH)。之后显示次低位,选通信号移位(通过ROL),在第五个数码管上显示次低位。直至一个周期全部显示完。显示后引入较小的延迟,增加显示稳定性(因为输出新的时间与选通信号始终有一个很小的延迟,故将正确的显示加延迟可提升那部分占空比,使显示更稳定),但仍使刷新率高到人眼无法分辨以实现刷新显示。完成一个周期后,循

8、环重新初始化,继续进行显示。显示过程中收到中断信号就终止显示,转入中断(计数)处理。(3).程序代码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对应的中断屏蔽字 CS2 EQU 3040H ;片选CS2 对应的端口始地址MY8254_COUNT0 EQU CS2+00H ;8254 计数器0 端口地址MY8254_MODE EQU CS2+03H

9、;8254 控制寄存器端口地址 CS0 EQU 3000H MY8255_A EQU CS0+00H MY8255_B EQU CS0+01H MY8255_C EQU CS0+02H MY8255_MODE EQU CS0+03H DATA SEGMENT IMRR DB (?)DTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H, 7FH,6FH,77H,7CH,39H,5EH,79H,71HTIME DB 0,0,0,0,0,0 ;时间数值存到TIME,由低到高依次是 秒个位、秒十位、分个位、分十位、小时的个位,小时的十位PICK DB 0FEHDATA E

10、NDSSTACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV DX,MY8255_MODE ;初始化8255 MOV AL,00000000B OUT DX,AL MOV DX,MY8254_MODE ;初始化8254 MOV AL,00110111B OUT DX,AL MOV DX,MY8254_COUNT0 MOV AL,00H OUT DX,AL MOV AL,45H ;设置1s中断 OUT DX,AL CLI MOV A

11、L,72H ;设置中断向量 MOV AH,35H INT 21H PUSH ES PUSH BX PUSH DS MOV DX,OFFSET CHIHAYA MOV AX,SEG CHIHAYA MOV DS,AX MOV AL,72H MOV AH,25H INT 21H POP DS IN AL,IRQ_OCW1 MOV DX,IRQ_OCW1 MOV IMRR,AL AND AL,0FBH OUT DX,AL STI ;打开中断,之后触发端有脉冲即可进入服务程序,无中断则不断刷新数码管以显示时间SHOWPP:MOV DX,MY8255_A ;数码管显示程序 MOV AL,0FEH MOV

12、 PICK,AL ;PICK用于存储AL的数值,以循环显示 OUT DX,AL MOV DI,OFFSET TIME MOV CX,6SHOWP: MOV AL,DI MOV BX,OFFSET DTABLE XLAT MOV DX,MY8255_B OUT DX,AL CALL DELAY INC DI MOV DX,MY8255_A MOV AL,PICK ROL AL,1 ;循环移位,依次选通 OUT DX,AL MOV PICK,AL LOOP SHOWP JMP SHOWPP QUIT:CLI POP DX POP DS MOV AL,72H MOV AH,25H INT 21H M

13、OV DX,IRQ_OCW1 MOV AL,IMRR OUT DX,AL STI MOV AX,4C00H INT 21H CHIHAYA PROC NEAR ;时间计数及处理中断程序,中断一次秒数加一,然后判断是否需要进位。需要,则进位,然后判断高位是否需要进位,依次进行下去;不需要则退出中断。 PUSH AX MOV AX,DATA MOV DS,AX MOV DI,OFFSET TIME MOV AL,DI INC AL CMP AL,10 JNZ NEXT MOV AL,0 MOV DI,AL INC DI MOV AL,DI INC AL CMP AL,6 JNZ NEXT MOV

14、AL,0H MOV DI,AL INC DI MOV AL,DI INC AL CMP AL,10 JNZ NEXT MOV AL,0H MOV DI,AL INC DI MOV AL,DI INC AL CMP AL,6 JNZ NEXT MOV AL,0H MOV DI,AL INC DI MOV AL,DI INC AL CMP AL,10 JNZ NEXT MOV AL,0H MOV DI,AL JMP QUIT1NEXT: MOV DI,AL QUIT1: MOV DI,OFFSET TIME ;判断是不是24点,若是则“小时”清零 MOV AL,DI+4 CMP AL,4 JNZ

15、QUIT2 MOV AL,DI+5 CMP AL,2 JNZ QUIT2 MOV AL,0 MOV DI+5,AL MOV DI+4,ALQUIT2: MOV DX,IRQ_OCW2 ;向PC机内部8259发送中断结束命令 MOV AL,20H OUT DX,AL MOV AL,20H OUT 20H,AL POP AX STI IRET CHIHAYA ENDP DELAY PROC NEAR ;延时,调整数码管显示频率,使数字显示清晰而无其他混杂 PUSH CX MOV CX,0FFFH D1: MOV AX,00FFH D2: DEC AX JNZ D2 LOOP D1 POP CX RET DELAY ENDP CODE ENDS END START(4).实验结果 时钟格式X1 X2:X3 X4:X5 X6 (时:分:秒)X6不断加一计数,计到10,则X5加一,X6清零;X5计到6,则X4加一,X5清零;X4计到10,则X3加一,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论