电子钟王天宇 PB12210258李韧 PB12210238杨征元 PB12210247.docx

上传人:b****5 文档编号:11548895 上传时间:2023-03-19 格式:DOCX 页数:14 大小:1.17MB
下载 相关 举报
电子钟王天宇 PB12210258李韧 PB12210238杨征元 PB12210247.docx_第1页
第1页 / 共14页
电子钟王天宇 PB12210258李韧 PB12210238杨征元 PB12210247.docx_第2页
第2页 / 共14页
电子钟王天宇 PB12210258李韧 PB12210238杨征元 PB12210247.docx_第3页
第3页 / 共14页
电子钟王天宇 PB12210258李韧 PB12210238杨征元 PB12210247.docx_第4页
第4页 / 共14页
电子钟王天宇 PB12210258李韧 PB12210238杨征元 PB12210247.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

电子钟王天宇 PB12210258李韧 PB12210238杨征元 PB12210247.docx

《电子钟王天宇 PB12210258李韧 PB12210238杨征元 PB12210247.docx》由会员分享,可在线阅读,更多相关《电子钟王天宇 PB12210258李韧 PB12210238杨征元 PB12210247.docx(14页珍藏版)》请在冰豆网上搜索。

电子钟王天宇 PB12210258李韧 PB12210238杨征元 PB12210247.docx

电子钟王天宇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三个芯片,很好地锻炼了综合能力,将平常所学的分立的知识有机的结合了起来。

实验过程中也遇到了一些问题,比如延时不够理想,出现了字形不清晰等,通过对程序进行了多次调试和修改,最终理想地得到了符合要求的最终结果。

多次实验下来,我们都感觉到了实际应用和理论学习确实有一定的差距,也在实验过程中不断强化了课本上的知识,受益匪浅。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1