电子时钟设计单片机原理与应用.docx

上传人:b****1 文档编号:3254394 上传时间:2023-05-05 格式:DOCX 页数:26 大小:110.01KB
下载 相关 举报
电子时钟设计单片机原理与应用.docx_第1页
第1页 / 共26页
电子时钟设计单片机原理与应用.docx_第2页
第2页 / 共26页
电子时钟设计单片机原理与应用.docx_第3页
第3页 / 共26页
电子时钟设计单片机原理与应用.docx_第4页
第4页 / 共26页
电子时钟设计单片机原理与应用.docx_第5页
第5页 / 共26页
电子时钟设计单片机原理与应用.docx_第6页
第6页 / 共26页
电子时钟设计单片机原理与应用.docx_第7页
第7页 / 共26页
电子时钟设计单片机原理与应用.docx_第8页
第8页 / 共26页
电子时钟设计单片机原理与应用.docx_第9页
第9页 / 共26页
电子时钟设计单片机原理与应用.docx_第10页
第10页 / 共26页
电子时钟设计单片机原理与应用.docx_第11页
第11页 / 共26页
电子时钟设计单片机原理与应用.docx_第12页
第12页 / 共26页
电子时钟设计单片机原理与应用.docx_第13页
第13页 / 共26页
电子时钟设计单片机原理与应用.docx_第14页
第14页 / 共26页
电子时钟设计单片机原理与应用.docx_第15页
第15页 / 共26页
电子时钟设计单片机原理与应用.docx_第16页
第16页 / 共26页
电子时钟设计单片机原理与应用.docx_第17页
第17页 / 共26页
电子时钟设计单片机原理与应用.docx_第18页
第18页 / 共26页
电子时钟设计单片机原理与应用.docx_第19页
第19页 / 共26页
电子时钟设计单片机原理与应用.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

电子时钟设计单片机原理与应用.docx

《电子时钟设计单片机原理与应用.docx》由会员分享,可在线阅读,更多相关《电子时钟设计单片机原理与应用.docx(26页珍藏版)》请在冰点文库上搜索。

电子时钟设计单片机原理与应用.docx

电子时钟设计单片机原理与应用

目录

第一章课程设计要求的目的与意义1

第二章总体设计方案选择与说明2

2.1设计方案2

第三章系统结构框图和工作原理3

3.1系统结构框图3

3.2系统工作原理3

第四章各单元的硬件设计及说明4

4.1键盘接口电路4

4.2显示电路4

4.374LS373作用6

第五章软件设计与说明7

5.1软件设计7

5.2主程序流程图9

第六章调试结果与调试说明10

第七章总结11

第八章参考文献12

附录………………………………………………………………………13

第1章课程设计要求的目的与意义

通过单片机课程设计,加深对单片机的更深层次的理解,熟悉单片机的内部硬件资源,掌握单片机的编程及技巧,要学会对单片机的各部硬件资源的控制,分配,特别是对单片机中断,定时器的编程方法。

且需要学会利用所学单片机只是独立设置系统的能力。

作为一个电气工程及其自动化专业大三的学生,做这次课程设计的意义是很大的。

这能让我们把我们在课堂上学的知识能够运用到实践当中。

在这次课程设计我们能够学会对一些软件的使用,如proteus和Keiluvision等。

这次我们将所学知识汇聚到了一起,并适当的加入了一些其它的知识,让我们自己动手动脑完成一次课程设计是很有意义的。

 

第2章总体设计方案选择与说明

2.1设计方案

本电子时钟采用AT89C51单片机为核心器件,将可编程芯片8255A与6个LED数码管连接,用于显示时钟与跑秒。

PA口输出显示段码,PB口输出位码,单片机的P1.0-P1.4、P3.2、P3.3接K1-K6,用于实现表的清零/启动/复位/调整/暂停功能,其可由软件来完成。

由于数码管要显示时钟,还要显示跑秒,利用T0定时器定时1s,T1定时器定时100ms,即0.1s,用R6和R7作为扫描的短延时数据地址。

因此,分别用30H、31H、32H、33H、34H、35H计时钟,即时钟计数器;用40H、41H、42H、43H、44H、45H计跑表,即秒表计数器。

当要显示时钟的时候,就把时钟地址中的数据通过8255A的PA口输出给显示器显示;当要显示跑秒的时候,就把跑秒地址中的数据通过8255A的PA口输出给显示器显示。

 

第3章系统结构框图和工作原理

3.1系统结构框图

单片机

6个按键输入电路

LED显示器段码驱动电路

6位LED显示电路

LED显示器位码驱动电路

时钟电路

复位电路

图3.1系统结构框图

3.2系统工作原理

利用单片机定时器完成计时功能,定时器1计时中断程序每隔10ms中断一次并当作一个计数,设定定时1秒的中断计数初值阀值为100,每中断一次中断计数加1,当加到100时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。

  

为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。

由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。

第4章各单元的硬件设计及说明

4.1键盘接口电路

单片机的P1.0-P1.4、P3.2、P3.3分别接6个按键,用于实现电子时钟的清零/启动/复位/暂停/分钟调节/秒钟调节,独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立。

I/O口通过按键与地相连,I/O口有上拉电阻,无键按下时,引脚端为高电平,有键按下时,引脚电平被拉低,I/O口内部有上拉电阻时,外部可不接上拉电阻。

图4.1键盘借口电路

4.2显示电路

本次需用到六个LED数码管用来分别显示时、分、秒。

将可编程芯片8255A的PB0、PB1、PB2、PB3、PB4、PB5接数码管的1、2、3、4、5、6,然后数码管的A-G分别接74LS245的B0-B7。

8255A的PA口输出显示段码,由一个74LS245驱动输出给LED数码管,PB口输出段码直接输出给LED数码管显示。

时间显示功能通过LED数码管动态扫描来实现,在显示器上进行动态扫描。

图4.2显示电路

4.374LS373作用

当三态允许控制端OE为低电平时,Q0~Q7为正常逻辑状态,可用来驱动负载或总线。

当OE为高电平时,Q0~Q7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。

当锁存允许端LE为高电平时,Q随数据D而变。

当LE为低电平时,D被锁存在已建立的数据电平。

 

 

图4.374LS373引脚图

 

第5章软件设计与说明

5.1软件设计

本设计的软件程序包括主程序、中断子程序、时钟显示子程序等。

在整个系统中,在单片机的30H、31H和32H中存储当前时间的小时、分钟和秒。

用LCD显示当前的时间,必须用到分字和合字,因此在33H、34H、35H、36H、37H和38H中存储当前时间的时十位、时个位、分十位、分个位、秒十位和秒个位,方便显示。

本设计有由四个轻触按键组成的小键盘,这些按键可以任意改变当前的状态。

按SECOND键触发秒钟位加1,按MINUTE键触发分钟位加1,按HOUR键触发时钟位加1。

按电平复位电路开关则触发LCD显示复位。

控制子程序数据表为:

DB3FH,06H,5BH,4FH,66H

DB6DH,7DH,07H,7FH,6FH

时钟的最小计时单位是秒,但使用定时器的方式1,最大的定时时间也只能达到131ms。

我们可把定时器的定时时间定为50ms。

这样,计数溢出20次即可得到时钟的最小计时单位:

秒。

而计数20次可以用软件实现。

秒计时是采用中断方式进行溢出次数的累积,计满20次,即得到秒计时。

从秒到分,从分到时是通过软件累加并进行比较的方法来实现的。

要求每满1秒,则“秒”单元中的内容加1;“秒”单元满60,则“分”单元中的内容加1;“分”单元满60,则“时”单元中的内容加1;“时”单元满24,则将时、分、秒的内容全部清零。

实时时钟程序设计步骤:

(1)选择工作方式,计算初值;

(2)采用中断方式进行溢出次数累计;

(3)从秒——分——时的计时是通过累加和数值比较实现的;

(4)时钟显示缓冲区:

时钟时间在方位数码管上进行显示,为此在内部;RAM中要设置显示缓冲区,共6个地址单元。

显示缓冲区从左到右依次存放时、分、秒数值;

(5)主程序:

主要进行定时器/计数器的初始化编程,然后反复调用显示子程序的方法等待中断的到来,流程如图4-1所示;

(6)中断服务程序:

进行计时操作;

(7)加1子程序:

用于完成对时、分、秒的加操作,中断服务程序在秒、分、时加1时共三次调用加1子程序,包括:

合字、加1并进行进制调整、分字。

5.2主程序流程图

图5.2主程序流程图

 

第6章调试结果与调试说明

过proteus仿真,开始后数码管可以正常显示时间,按【暂停】键可以让时钟停止走动,此时按下【调整分钟】和【调整时钟】可以分别调整分钟和时钟,每按一下便增加一。

这时候再按下【复位清零】键,即把时钟显示清零了,然后按【显示秒表】键,可切换到秒表模式并开始计时,最小值为10ms。

按【暂停】键可以暂停计时,按【复位清零】键可以清零秒表,以便开始下一轮的计时。

     

调试过程中的截图如下:

 

图6调试过程截图

第7章总结

 

通过本次的单片机课程设计—电子时钟的设计,我学到了很多课本上无法学到的知识,也让我们对仿真软件等的使用也更熟练了。

在程序方面,我借鉴了实验课本上的程序进行了改进,让自己的程序更优秀。

而且我觉得写程序注释写得越详细越好、不要怕麻烦。

这样方便自己读懂程序,也是有利于让别人能读懂你写的程序。

在反复确认自己的程序正确无误之后,接下来要做的就是模拟仿真了。

我们在书上、网上都查阅了相关芯片的功能、管脚等信息。

也自己研究了一下proteus仿真软件的使用,仔细研究芯片的主要功能及管脚接法,这也就为我们后面比较成功地仿真出结果打好了基础。

当仿真出错时我们反复检查线路连接是否有误,仔细的观察相应管脚在运行时的电位的变化。

我相信,不管是什么电路,经过如此仔细的检查后,任何错误不会遗漏。

当然,这也是我们最终走向成功的原因。

 

而且在肖老师的辛勤的指导下,最后我们顺利地完成了这次的课程设计。

看见到课本所学知识得以应用,一股成就感油然而生。

这次课程设计加强了我的实际操作能力,提高了我解决实际问题的能力,也锻炼了和同学之间的合作能力,并对本专业的课程充满了浓厚的兴趣,相信有了兴趣,我在以后对本专业的学习会更加得心应手。

 

第8章参考文献

1、《单片机原理与应用》王迎旭等编机械工业出版社

2、《51系列单片机设计实例》楼然苗等编北京航空航天大学出版社

3、《计算机硬件技术基础实验教程》黄勤等编重庆大学出版社

4、《微型计算机接口技术及应用》刘乐善主编华中科技大学出版社

5、《单片微型计算机原理及接口技术》陈光东等编华中科技大学出版社

 

附录

附录A系统原理图

系统原理图

 

附录B程序清单

ORG0000H

LJMPSTART

ORG0003H;INT0中断入口

LJMPS5

ORG000BH;T0中断入口

LJMPY0

ORG0013H;INT1中断入口

LJMPS6

ORG001BH;T1中断入口

LJMPY1

ORG2000H

START:

MOVDPTR,#0FF7FH;8255A初始化

MOVA,#89H;PA口PB口输出方式

MOVX@DPTR,A;方式控制字送控制字入口

S1:

MOV30H,#0

MOV31H,#0

MOV32H,#0

MOV33H,#0

MOV34H,#0

MOV35H,#0

S2:

MOVR0,#14H

MOVTMOD,#11H;T0/T1工作方式

SETBEA;开放总中断

SETBTR0;启动T0

SETBET0;启动定时中断T0

SETBET1;启动定时中断T1

;*******************************时钟主程序*******************

LOOP:

CLRTR1;关闭T1计时

MOVA,#0DFH

MOVDPTR,#0FF7DH;取位控信号(8255A的PB口地址)

MOVX@DPTR,A;显示值转换显示码

MOVA,35H

MOVDPTR,#DIRTAB;七段数码管显示断码首地址

MOVCA,@A+DPTR;查表

MOVDPTR,#0FF7CH;送PA口显示(8255A的PA口地址)

MOVX@DPTR,A

ACALLD1MS;延时1MS

MOVA,#0EFH

MOVDPTR,#0FF7DH;动态扫描循环

MOVX@DPTR,A

MOVA,34H

MOVDPTR,#DIRTAB

MOVCA,@A+DPTR

MOVDPTR,#0FF7CH

MOVX@DPTR,A

ACALLD1MS

MOVA,#0F7H

MOVDPTR,#0FF7DH

MOVX@DPTR,A

MOVA,33H

MOVDPTR,#DIRTAB1

MOVCA,@A+DPTR

MOVDPTR,#0FF7CH

MOVX@DPTR,A

ACALLD1MS

MOVA,#0FBH

MOVDPTR,#0FF7DH

MOVX@DPTR,A

MOVA,32H

MOVDPTR,#DIRTAB

MOVCA,@A+DPTR

MOVDPTR,#0FF7CH

MOVX@DPTR,A

ACALLD1MS

MOVA,#0FDH

MOVDPTR,#0FF7DH

MOVX@DPTR,A

MOVA,31H

MOVDPTR,#DIRTAB1

MOVCA,@A+DPTR

MOVDPTR,#0FF7CH

MOVX@DPTR,A

ACALLD1MS

MOVA,#0FEH

MOVDPTR,#0FF7DH

MOVX@DPTR,A

MOVA,30H

MOVDPTR,#DIRTAB

MOVCA,@A+DPTR

MOVDPTR,#0FF7CH

MOVX@DPTR,A

ACALLD1MS

JNBP1.0,Z4;K1键按下进入秒表显示程序

JNBP1.3,S3

JNBP1.2,S4

SJMPLOOP

******************时钟定时中断服务程序************************

Z4:

AJMPZ1

S3:

CLRTR0

SETBIT0

SETBEX0

SETBIT1

SETBEX1

AJMPLOOP

S4:

SETBTR0

CLREX0

CLREX1

AJMPLOOP

S8:

AJMPKEY

Y0:

MOVTH0,#1EH

MOVTL0,#0CFH

DJNZR0,S8;R0初值为14,循环14次,即为1s若不为零则跳转到S8

MOVR0,#14H;到1S则重新给R0赋值14

INC35H;让秒数加1

MOVA,#10

CJNEA,35H,KEY;如果没加到10就跳转到KEY

MOVR0,#14H

MOV35H,#0

INC34H

MOVA,#6

CJNEA,34H,KEY

MOVR0,#14H

MOV35H,#0

MOV34H,#0

MOVR0,#14H

S5:

INC33H

MOVA,#10

CJNEA,33H,KEY

MOVR0,#14H

MOV35H,#0

MOV34H,#0

MOV33H,#0

INC32H

MOVA,#6

CJNEA,32H,KEY

MOVR0,#14H

MOV35H,#0

MOV34H,#0

MOV33H,#0

MOV32H,#0

S6:

INC31H;INT0中断入口

MOVA,#4

CJNEA,31H,L3

MOVA,#2

CJNEA,30H,L3

SJMPL4

L3:

MOVA,#10

CJNEA,31H,KEY

MOVR0,#14H

MOV35H,#0

MOV34H,#0

MOV33H,#0

MOV32H,#0

MOV31H,#0

INC30H

RETI

L4:

MOVR0,#14H

MOV35H,#0

MOV34H,#0

MOV33H,#0

MOV32H,#0

MOV31H,#0

MOV30H,#0

KEY:

RETI

;***********************秒表主程序*****************************

Z1:

SETBTR0

CLREX0

CLREX1

MOV40H,#0

MOV41H,#0

MOV42H,#0

MOV43H,#0

MOV44H,#0

MOV45H,#0

LOOP1:

CLRTR1

MOVA,#0DFH

MOVDPTR,#0FF7DH

MOVX@DPTR,A

MOVA,45H

MOVDPTR,#DIRTAB

MOVCA,@A+DPTR

MOVDPTR,#0FF7CH

MOVX@DPTR,A

ACALLD1MS

MOVA,#0EFH

MOVDPTR,#0FF7DH

MOVX@DPTR,A

MOVA,44H

MOVDPTR,#DIRTAB

MOVCA,@A+DPTR

MOVDPTR,#0FF7CH

MOVX@DPTR,A

ACALLD1MS

MOVA,#0F7H

MOVDPTR,#0FF7DH

MOVX@DPTR,A

MOVA,43H

MOVDPTR,#DIRTAB1

MOVCA,@A+DPTR

MOVDPTR,#0FF7CH

MOVX@DPTR,A

ACALLD1MS

MOVA,#0FBH

MOVDPTR,#0FF7DH

MOVX@DPTR,A

MOVA,42H

MOVDPTR,#DIRTAB

MOVCA,@A+DPTR

MOVDPTR,#0FF7CH

MOVX@DPTR,A

ACALLD1MS

MOVA,#0FDH

MOVDPTR,#0FF7DH

MOVX@DPTR,A

MOVA,41H

MOVDPTR,#DIRTAB

MOVCA,@A+DPTR

MOVDPTR,#0FF7CH

MOVX@DPTR,A

ACALLD1MS

MOVA,#0FEH

MOVDPTR,#0FF7DH

MOVX@DPTR,A

MOVA,40H

MOVDPTR,#DIRTAB

MOVCA,@A+DPTR

MOVDPTR,#0FF7CH

MOVX@DPTR,A

ACALLD1MS

JNBP1.0,Z3

JNBP1.1,X0

JNBP1.2,M2

M5:

AJMPLOOP1

M2:

AJMPLOOP

Z3:

AJMPZ1

;**********************************************************

X0:

SETBTR1

MOVA,#0DFH

MOVDPTR,#0FF7DH

MOVX@DPTR,A

MOVA,45H

MOVDPTR,#DIRTAB

MOVCA,@A+DPTR

MOVDPTR,#0FF7CH

MOVX@DPTR,A

ACALLD1MS

MOVA,#0EFH

MOVDPTR,#0FF7DH

MOVX@DPTR,A

MOVA,44H

MOVDPTR,#DIRTAB

MOVCA,@A+DPTR

MOVDPTR,#0FF7CH

MOVX@DPTR,A

ACALLD1MS

MOVA,#0F7H

MOVDPTR,#0FF7DH

MOVX@DPTR,A

MOVA,43H

MOVDPTR,#DIRTAB1

MOVCA,@A+DPTR

MOVDPTR,#0FF7CH

MOVX@DPTR,A

ACALLD1MS

MOVA,#0FBH

MOVDPTR,#0FF7DH

MOVX@DPTR,A

MOVA,42H

MOVDPTR,#DIRTAB

MOVCA,@A+DPTR

MOVDPTR,#0FF7CH

MOVX@DPTR,A

ACALLD1MS

MOVA,#0FDH

MOVDPTR,#0FF7DH

MOVX@DPTR,A

MOVA,41H

MOVDPTR,#DIRTAB

MOVCA,@A+DPTR

MOVDPTR,#0FF7CH

MOVX@DPTR,A

ACALLD1MS

MOVA,#0FEH

MOVDPTR,#0FF7DH

MOVX@DPTR,A

MOVA,40H

MOVDPTR,#DIRTAB

MOVCA,@A+DPTR

MOVDPTR,#0FF7CH

MOVX@DPTR,A

ACALLD1MS

JNBP1.0,M3

JNBP1.2,M2

JNBP1.3,M5

AJMPX0

Y1:

MOVTH1,#0D8H

MOVTL1,#0F0H

INC45H

MOVA,#10

CJNEA,45H,M4

MOV45H,#0

INC44H

MOVA,#10

CJNEA,44H,M4

MOV45H,#0

MOV44H,#0

INC43H

MOVA,#10

CJNEA,43H,M4

MOV45H,#0

MOV44H,#0

MOV43H,#0

INC42H

MOVA,#10

CJNEA,42H,M4

MOV45H,#0

MOV44H,#0

MOV43H,#0

MOV42H,#0

INC41H

MOVA,#10

CJNEA,41H,M4

MOV45H,#0

MOV44H,#0

MOV43H,#0

MOV42H,#0

MOV41H,#0

INC40H

MOVA,#10

CJNEA,30H,M4

MOV45H,#0

MOV44H,#0

MOV43H,#0

MOV42H,#0

MOV41H,#0

MOV40H,#0

M4:

AJMPKEY

M3:

AJMPZ1

DIRTAB:

DB3FH,06H,5BH,4FH

DB66H,6DH,7DH,07H

DB7FH,6FH,77H,7CH

DB39H,5EH,79H,71H

DIRTAB1:

DB0BFH,86H,0DBH,0CFH

DB0E6H,0EDH,0FDH,87H

DB0FFH,0EFH,0F7H,0FCH

DB0B9H,0DEH,0F9H,0F1H

D1MS:

MOVR7,#4

DEL1:

MOVR6,#30

NOP

DEL2:

DJNZR6,DEL2

DJNZR7,DEL1

RET

END

 

电气信息学院课程设计评分表

项目

评价

及格

设计方案合理性与创造性(10%)

开发板焊接及其调试完成情况*(10%)

硬件设计或软件编程完成情况(20%)

硬件测试或软件调试结果*(10%)

设计说明书质量(20%)

答辩情况(10%)

完成任务情况(10%)

独立工作能力(10%)

出勤情况(10%)

综合评分

指导教师签名:

________________

日期:

________________

注:

表中标*号项目是硬件制作或软件编程类课题必填内容;

此表装订在课程设计说明书的最后一页。

课程设计说明书装订顺序:

封面、任务书、目录、正文、评分表、附件(非16K大小的图纸

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2