数字电子钟及钟控显示系统设计.docx

上传人:b****6 文档编号:7087904 上传时间:2023-01-17 格式:DOCX 页数:18 大小:356.66KB
下载 相关 举报
数字电子钟及钟控显示系统设计.docx_第1页
第1页 / 共18页
数字电子钟及钟控显示系统设计.docx_第2页
第2页 / 共18页
数字电子钟及钟控显示系统设计.docx_第3页
第3页 / 共18页
数字电子钟及钟控显示系统设计.docx_第4页
第4页 / 共18页
数字电子钟及钟控显示系统设计.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

数字电子钟及钟控显示系统设计.docx

《数字电子钟及钟控显示系统设计.docx》由会员分享,可在线阅读,更多相关《数字电子钟及钟控显示系统设计.docx(18页珍藏版)》请在冰豆网上搜索。

数字电子钟及钟控显示系统设计.docx

数字电子钟及钟控显示系统设计

论文题目:

__数字电子钟及钟控显示系统设计__

 

一、课程设计目的1

二、使用设备1

三、设计内容1

四、设计要求1

五、设计原理2

1、总体设计框图和各部分电路工作原理分析2

2、系统中各芯片的内部结构3

(1)8255芯片的内部结构及引脚3

(2)8253芯片的内部结构及引脚5

(3)8259芯片的内部结构及引脚7

(4)Intel8088微处理器9

六、软件设计11

1、程序流程图11

2、程序清单13

3、程序分析16

七、设计体会17

八、参考文献17

 

一、课程设计目的

通过课程设计进一步理解所学的相关可编程芯片的原理、内部结构、使用方法等,学会相关可编程芯片实际应用及编程。

二、使用设备

TDS-MD微机实验系统

三、设计内容

利用TDS-MD微机实验系统设计数字电子钟及钟控显示装置(包括软硬件设计、调试)。

四、设计要求

1、设计8088/8086CPU在最小工作方式构成的微机系统原理图。

要求含CPU及存储器。

存储器选择6264。

2、设计8088/8086CPU与可编程并行接口芯片8255的接口电路,用A口输出驱动8个发光二极管。

3、设计8088/8086CPU与可编程定时/计数器8253的接口电路。

4、设计8088/8086CPU与可编程中断控制器芯片8059的接口电路。

5、设计完整的数字钟及中控显示程序。

采用系统配置的液晶显示器。

程序功能为时钟应能显示时、分、秒,每间隔5秒循环点亮发光二极管。

五、设计原理

1、总体设计框图和各部分电路工作原理分析

系统结构框图

1、以8088微处理器作为CPU,6264作为存储器,用8253做定时计数器产生时钟频率,8255做可编程并行接口显示时钟,8259做中断控制器产生中断。

在此系统中,8253的功能是定时,接入8253的CLK信号为周期性时钟信号。

8253采用计数器0#,工作于方式2,使8253的OUT0端输出周期性的负脉冲信号。

因为接入8253的CLK的频率为1.19MHZ,为使输出的负脉冲的周期为20ms,则计数器的初值应设为:

1.19MHZ*20ms=23800(D),转换为16进制即可。

即每隔20ms,8253的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR0端,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化。

每隔5m,CPU则使8255的PA口输出,驱动LED灯亮。

其中8259只需初始化ICW1,其功能是向8259表明IRx输入是电瓶触发方式还是上升沿触发方式,是单片8259还是多片8259。

8259接收到信号后,产生中断信号送CPU处理。

2、硬件设计原理图:

设计电路总框图

2、系统中各芯片的内部结构

(1)8255芯片的内部结构及引脚

1、8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种工作方式下工作:

方式0—基本输入/输出方式

方式1—选通输入/输出方式

方式2—双向选通输入/输出方式

8255引脚图如下:

8255引脚图

8255一共有40条引脚,其中

D7~D0——与CPU侧连接的八条双向数据线;

WR(低电平有效)——写输入信号;

RD(低电平有效)——读输入信号;

CS(低电平有效)——片选输入信号;

A0、A1——片内寄存器选择输入信号;

PA7~PA0——A口外设双向数据线;

PB7~PB0——B口外设双向数据线;

PC7~PC0——C口外设双向数据线;

RESET——复位输入信号

2、8255端口地址

信号线

寄存器

编址

IOY3

A口

60H

B口

61H

C口

62H

控制寄存器

63H

3、8255内部结构图如下:

(2)8253芯片的内部结构及引脚

1、8253可编程定时/计数器是Intel公司生产的通用外围芯片之一,有3个独立的十六位计数器,技术频率范围为0~2MHZ,它所有的技术方式和操作方式都通过编程控制。

8253的功能用途是:

(1)延时中断

(2)可编程频率发生器

(3)事件计数器

(4)二进倍频器

(5)实时时钟

(6)数字单稳

(7)复杂的电机控制器

8253有六种工作方式:

(1)方式0:

计数结束中断

(2)方式1:

可编程频率发生器

(3)方式2:

频率发生器

(4)方式3:

方波频率发生器

(5)方式4:

软件触发的选通信号

(6)方式5:

硬件触发的选通信号

8253引脚图如下:

8253一共有24条引脚,其中

D7~D0——八条双向数据线;

WR(低电平有效)——写输入信号;

RD(低电平有效)——读输入信号;

CS(低电平有效)——片选输入信号;

A0、A1——片内寄存器地址输入信号;

CLK——计数输入,用于输入定时基准脉冲或计数脉冲;

OUT——输出信号,以相应的电平指示计数的完成,或输出脉冲波形;

GATE——选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。

2、8253端口地址

信号线

寄存器

编址

IOY2

0#计数器

40H

1#计数器

41H

2#计数器

42H

控制寄存器

43H

3、8253内部结构图如下:

(3)8259芯片的内部结构及引脚

1、中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。

它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中。

因此无需附加任何电路,只需对8259A编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。

在MD微机系统中,8259芯片工作于单片方式。

8259引脚图如下:

8259一共有28条引脚,其中

D7~D0——八条双向数据线;

WR(低电平有效)——写输入信号;

RD(低电平有效)——读输入信号;

CS(低电平有效)——片选输入信号;

A0——地址信号;

INT——中断请求信号;

INTA(低电平有效)——中断响应信号;

CAS0~CAS2——级联信号,形成一条专用8259A总线,以便多片8259A的级联;

SP/EN——从编程/允许级联。

在缓冲方式中,可用做输出信号以控制总线缓冲器的接收和发送。

在非缓冲方式中,作为输入信号用于表示主片还是从片;

IR0~IR7——外部中断请求输入线。

要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到CPU响应时为止)或者是高电平。

2、8259中断矢量地址与中断信号之间的关系如下表所示:

中断序号

0

1

2

3

4

5

6

7

功能调用

08H

09H

0AH

0BH

0CH

0DH

0EH

0FH

矢量地址

20H

~

23H

24H

~

27H

28H

~

2BH

2CH

~

2FH

30H

~

33H

34H

~

37H

38H

~

3BH

3CH

~

3FH

说明

实时钟

键盘

可用

可用

串行口

可用

可用

可用

3、8259内部结构图如下:

(4)Intel8088微处理器

1、8088微处理器是Intel公司推出的一个准16位处理器,其内部结构基本上和8086相同,其引脚信号也和8086基本相同,只是各别的引脚的功能有所不同。

8088微处理器的工作方式:

(1)最小工作方式。

当8088CPU的MN/MX引脚接+5V电源时,8088CPU工作于最小方式,用于构成小型的单处理机系统。

(2)最大工作方式。

当8088CPU的MN/MX引脚接地时,8088CPU工作于最大方式,用于构成多处理机和协处理机系统。

2、8088引脚图如下:

AD7~AD0——八条地址/数据复用线;

A15~A8——单一的地址线;

SS0——状态信号线。

该引脚在最大工作方式下保持高电平,在最小方式下等效于最大方式下S0的作用,它与IO/M、DT/R组合以确定当前的总线周期;

A19/S6~A16/S3——地址/状态总线;

MN/MX——最小/最大方式控制;

RD——读控制;

TEST——等待测试控制;

READY——等待状态控制;

NMI——不可屏蔽中断请求;

INTR——可屏蔽中断请求;

CLK——系统时钟;

Vcc——+5V电源;

GND——接地;

最小方式信号:

HOLD——保持请求;

HLDA——保持响应;

WR——写控制;

IO/M——IO/存储器控制;

DT/R——数据发送/接收;

DEN——数据允许;

ALE——地址锁存允许;

INTA——中断响应;

最大方式信号:

RQ/GT1,0——请求/允许总线访问控制;

LOCK——总线优先权锁定控制

S2S1S0——总线周期状态;

QS1、QS0——指令队列状态;

六、软件设计

1、程序流程图:

2、程序清单

主程序:

地址助记符

2000MOVAH,00;中断程序入口地址

2003MOVW[0020],AX

2006MOVAX,0000

2009MOVW[0020],AX

200CINAL,21

200EANDAL,FE

2010OUT21,AL

2012MOVAL,82;8255的初始化

2014OUT63,AL;A口做为输出口,并采用0工作方式

2016MOVAL,34;8253的初始化

2018OUT43,AL;用0#计数,方式2,并以16进制计数

201AMOVAL,F8;置计数器的初值为5CF8H,及负脉冲周期为20ms

201COUT40,AL

201EMOVAL,5C

2020OUT40,AL

2022MOVB[3600],00;存放中断的次数

2027MOVB[3601],32;秒单元

202CMOVB[3602],00;分单元

2031MOVB[3603],00;小时单元

2036MOVB[3604],3A;’:

’的ASCⅡ值

203BMOVB[3605],7F;8255的PA口的初值

2040MOVB[3606],00

2045MOVB[3607],41;”A”

204AMOVB[3608],50;”P”

204FMOVB[3609],4D;”M”

2055MOVAL,B[3603];显示时间代码段

2058CMPAL,01

205AJZ2065

205CMOVAL,B[3607]

205FMOVAH,01

2061INT10

2063JMP206C

2065MOVAL,B[3608]

2068MOVAH,01

206AINT10

206CMOVAH,B[3609]

206FMOVAH,01

2071INT10

2073MOVAL,B[3603];显示小时

2076CALL2555

2079MOVAL,B[3604];”:

207CMOVAH,01

207EINT10

2080MOVAL,B[3602];显示分钟

2083CALL2555

2086MOVAL,B[3604];”:

2089MOVAH,01

208BINT10

208DMOVAL,B[3601];显示秒

2090CALL2555

2093MOVAL,OD;换行操作

2095MOVAH,01

2097INT10

2099MOVBL,B[3606];判断秒是否发生变化

209DMOVBH,B[3601]

20A1CMPBL,BH

20A3JZ20C6

20A5CALL3000

20A8MOVAH,00;达到5秒后,使PA口输出,驱动LED灯

20AAMOVAL,B[3601]

20ADMOVBL,05

20AFDIVBL

20B1CMPAH,00

20B4JNZ2054

20B6MOVAL,B[3605]

20B9ROLAL,1

20BBOUT60,AL

20BDMOVB[3605],AL

20COMOVAL,B[3601]

20C3MOVB[3606],AL

20C6CALL3000

20C9JMP2054

中断计时:

2500CLI

2051PUSHAX

2052MOVAL,B[3600]

2505INCAL

2506CMPAL,32;判断8253的OUT0断是否发出了50次脉冲,

即判断是否达到1秒

2509JNZ2550

2511MOVB[3600],00

2514MOVAL,B[3601];时间的变化;采用12小时制

2517INCAL

2519CMPAL,3C

251BJNZ2541

251EMOVB[3601],00

2520MOVAL,B[3602]

2523INCAL

2525CMPAL,3C

2527JNZ2546

2529MOVB[3602],00

252CMOVAL,B[3603]

252FINCAL

2531CMPAL,0D

2533JNZ254B

2535MOVB[3603],01

253ASTI

253BPOPAX

253CMOVAL,20

253EOUT20,AL

2540ITER

2541MOVB[3601],AL

2544JMP253A

2546MOVB[3602],AL

2549JMP253A

254BMOVB[3603],AL

254EJMP253A

2550MOVB[3600],AL

2553JMP253A

 

显示程序:

地址助记符

2555MOVAH,00;将16进制转换成ASCⅡ

2557MOVBL,OA

2559DIVBL

255BMOVBL,AH

255DADDAL,30

255FMOVAH,01

2561INT10

2563MOVAL,BL

2565ADDAL,30

2567INT10

2568RET

延时程序:

3000PUSHAX

3001MOVCX,0064

3004MOVAX,0064

3007DECAX

3008JNZ3007

300ALOOP3004

300CPOPAX

300DRET

3、程序分析

(1)调试过程

在调试中遇到了很多问题。

刚开始将程序输入后,无法执行。

此时用反汇编U命令依次的查看输入的源程序,发现2009处,将MOVW[0022],AX中的0022写成了0020。

而使程序无法执行。

改正后,重新执行程序。

可以正确的显示时间。

但当我达到12:

59:

59秒,再过一秒后,此时AM并没有发生改变。

而正常应该变为PM。

按Ctrl+C退出后,检查程序。

经仔细分析,发现2535处,MOVB[3603],01;及到达0D时,将[3606]单元重新设置成了1;而在2058处,语句是CMPAL,0D。

因为[3603]单元中的值无法达到0D,所以AM不会变成PM。

发现这个错误后,将2058处的代码改为:

CMPAL,01。

重新运行,虽然可以顺利的显示12小时制,但发现每隔5秒,LED灯是循环点亮了10次。

仔细分析程序,依然不得其解。

只好请教老师,经过老师的指教,终于发现了问题的所在:

在判断是否达到5秒时,仅仅是判断了是否为5的倍数,而没有判断是否达到了新的1秒。

如:

若此时就是5秒,程序执行即点亮LED灯。

由于程序顺序执行,8253每隔20ms发出一次脉冲,即隔20ms后,又判断是否是5的倍数,而此时根本就没有形成新的秒,但满足是5的倍数的条件,故使LED灯依次的循环点亮。

在判断是否是5秒的倍数之前增加一判断语句,看是否形成了新的1m,是的话,然后才判断是否是5的倍数。

这样就解决了上述所出现的问题;

(2)结果分析

在程序的开始,就分别对8259、8255以及8253-A进行了初始化,然后设置了时钟的秒、分以及小时,这个数据是灵活可改的。

输入程序、运行后,液晶屏幕上从左至右按照“时:

分:

秒”的格式显示“AM/PMXX:

XX:

XX”,并且秒位以每秒递增1的速度变化,即完成数字电子钟的正常显示。

同时,八个发光二极管每隔5秒从1到8依次点亮。

七、设计体会

通过本次课程设计,我进一步理解了所学的相关可编程芯片的原理、内部结构、使用方法等,学会了相关可编程芯片实际应用以及编程的方法。

在老师的指导帮助下,顺利完成了该硬件、软件的设计、调试等工作。

通过课程设计,我有了很大的收获。

在课程设计中,我对实验原理有了更加深刻的认识,弄懂了TDS-MD微机的汇编方式以及硬件电路设计与微机的兼容性,对8055、8053、8059芯片在实际中的应用有了更加深刻的理解。

在调试程序过程中,也使自己的编程与调试程序的能力得到了锻炼,同时理解了汇编、计算机所组成原理以及接口技术这三门课程之间的联系与融合渗透,也使我体会到学习计算机接口技术的乐趣。

 

八、参考文献

[1]孙德文主编,微型计算机技术[M],北京:

高等教育出版社,2000。

[2]赵明富主编,微机原理及接口技术实验指导书,重庆工学院(院内教材)。

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

当前位置:首页 > 工作范文 > 行政公文

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

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