简易数字钟的设计Word文档格式.docx

上传人:b****4 文档编号:18460194 上传时间:2022-12-16 格式:DOCX 页数:19 大小:677.69KB
下载 相关 举报
简易数字钟的设计Word文档格式.docx_第1页
第1页 / 共19页
简易数字钟的设计Word文档格式.docx_第2页
第2页 / 共19页
简易数字钟的设计Word文档格式.docx_第3页
第3页 / 共19页
简易数字钟的设计Word文档格式.docx_第4页
第4页 / 共19页
简易数字钟的设计Word文档格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

简易数字钟的设计Word文档格式.docx

《简易数字钟的设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《简易数字钟的设计Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。

简易数字钟的设计Word文档格式.docx

过完成本课题的软硬件设计,使同学们了解单片机实例的整个开发流程。

1.2基本要求

简要说明

用单片机设计出一个数字钟。

此数字钟完成自动走时和时间调整的功能。

任务和要求

设计简易的数字钟,该数字钟满足以下要求:

1.开机时,显示12:

00:

00的时间开始计时;

2.P0.0/AD0控制“秒”的调整,每按一次加1秒;

3.P0.1/AD1控制“分”的调整,每按一次加1分;

4.P0.2/AD2控制“时”的调整,每按一次加1个小时

该数字钟基本功能:

使用单片机的定时/计数器实现数字中的定时计数功能,秒计60次成分,分计60次成小时,小时计24次则计满一天。

本设计LED显示部分采用动态显示,其中2个LED显示器显示秒,2个LED显示器显示分钟,2个LED显示器显示小时。

同时为了使用方便,本题目还需要设计几个简单按键,可以通过按键实现时、分的调整,这样在主程序中需要加入键盘设置子程序。

2设计思路

基于单片机的简易数字钟设计主要可以分为以下几个模块来考虑:

对于单片机AT89C51的T0,T1定时中断部分。

本次设计中的单片机晶振频率采用了精准的11.0592MHZ。

故对T1初值设定为:

DC00h,实现了10ms的定时,然后C程序中通过定义一个变量i,对i进行i++的100次循环,如此即可达到最小1S的实现。

而后在这个1S程序段的基础之上,我们可以分别编写出对时,分的程序段。

对于定时器T0,我们可以将其用来作为数码管动态扫描的定时中断,本次设计设为50ms左右,初值为FC17h。

这个取值通过最后的仿真及实际效果看出合理,不会出现闪烁等情况。

校时电路。

本次设计要求了该简易数字钟必须具备时、分的调整功能。

故必须接入3个简单的按键(本设计设置问p0.2调时、p0.1调分、p0.0调秒,按键为实验箱单次脉冲按键模块),并且在软件部分必须引入这3个独立按键的子程序。

显示电路。

考虑采用动态显示部分,用P1口作为数码管数据(段选),P2口作为数码管控制(位选)。

动态显示通常都是采用动态扫描的方法进行显示,即循环点亮每一个数码管,这样虽然在任意时刻都只有一位数码管被点亮,但由于人眼存在视觉暂留效应,只要每位数码管间隔时间足够短,就可以给人以通俗显示的感觉。

上面第一部分已提到,我们采用了50ms左右的时间间隔,并且是合理的。

6位数码管,实验室的硬件是共阴极的,故我们的数码表采用{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};

晶振电路。

在AT89C51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。

而在芯片内部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。

时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。

复位电路。

这部分设计用来完成对单片机的复位。

以上是对本次设计课题的初步分析,以下将对各部分模块设计进行详细阐述。

3设计方框图

3.1数字钟硬件部分示意图

该简易数字钟硬件部分主要由晶振、手动复位、单片机AT89C51、数码管显示、时间调整按键模块组成。

框图如下:

图3.1数字钟硬件系统示意图

3.2数字钟软件部分组成框图

3.2.1时间调整的程序流程

图3.2时间调整程序流程框图

3.2.2时钟显示程序流程

图3.324小时时钟

4各部分模块介绍

4.1单片机AT89C51芯片分析

AT89C51单片机引脚图如下:

图4.1AT89C51引脚图

该单片机是标准的40引脚双列直插式集成电路芯片,其各个引脚功能如下:

VCC:

+5V电源。

VSS:

接地。

RST:

复位信号。

当输入的复位信号延续两个周期以上的高电平时即为有效,用来完成单片机的初始化操作。

XTAL1和XTAL2:

外接晶体引线端。

当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;

当使用外部时钟时,用于接外部时钟脉冲信号。

PO口:

P0口作为一个8位漏极开路双向I/O口,当作输出口使用时,必须接上拉电阻才有高电平输出;

当作输入口使用时,必须先向电路中的锁存器写入“1”,使FET截止,以避免锁存器为“0”时对引脚输入的干扰。

本次设计采用P0口作为数码管段选输出使用。

P2口:

内部有上拉电阻的8位I/O口,本次设计中作为数码管位选输出使用。

4.2晶振电路模块

在AT89C51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。

图4.2晶振电路

4.3复位电路模块

单片机复位的条件是:

必须使RST/VPD或RST引脚加上两个机器周期(即24个振荡周期)的高电平。

例如,若时钟频率为12MHz,每个机器周期为1us,则只需要2us以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。

单片机常见的复位如图所示。

电路为上电复位,它利用电容充电来实现的。

在接电瞬间,RESET端的电位与VCC相同,随着充电电流的减少,RESET的电位逐渐下降。

只要保证RESET为

高电平的时间大于两个机器周期,便能正常复位。

该电路除具有上电复位功能外,若要复

位,只需按图中的RESET键,此时电源VCC经电阻分压,在RESET端产生一个复位高

电平。

图4.3复位电路

4.4显示模块

图4.4显示模块

4.5时间校对按键模块

故必须接入2个简单的按键(本设计设置问p0.2调时、p0.1调分,按键为实验箱单次脉冲按键模块),并且在软件部分必须引入这2个独立按键的子程序。

图4.5时间校对按键电路

5简易数字钟源程序

汇编源程序

SECONDEQU30H

MINITEEQU31H

HOUREQU32H

HOURKBITP0.0

MINITEKBITP0.1

SECONDKBITP0.2

DISPBUFEQU40H

DISPBITEQU48H

T2SCNTAEQU49H

T2SCNTBEQU4AH

TEMPEQU4BH

ORG00H

LJMPSTART

ORG0BH

LJMPINT_T0

START:

MOVSECOND,#00H

MOVMINITE,#00H

MOVHOUR,#12

MOVDISPBIT,#00H

MOVT2SCNTA,#00H

MOVT2SCNTB,#00H

MOVTEMP,#0FEH

LCALLDISP

MOVTMOD,#01H

MOVTH0,#(65536-2000)/256

MOVTL0,#(65536-2000)MOD256

SETBTR0

SETBET0

SETBEA

WT:

JBSECONDK,NK1

LCALLDELY10MS

JBSECONDK,NK1

INCSECOND

MOVA,SECOND

CJNEA,#60,NS60

MOVSECOND,#00H

NS60:

LCALLDISP

JNBSECONDK,$

NK1:

JBMINITEK,NK2

JBMINITEK,NK2

INCMINITE

MOVA,MINITE

CJNEA,#60,NM60

NM60:

JNBMINITEK,$

NK2:

JBHOURK,NK3

JBHOURK,NK3

INCHOUR

MOVA,HOUR

CJNEA,#24,NH24

MOVHOUR,#00H

NH24:

JNBHOURK,$

NK3:

LJMPWT

DELY10MS:

MOVR6,#10

D1:

MOVR7,#248

DJNZR7,$

DJNZR6,D1

RET

DISP:

MOVA,#DISPBUF

ADDA,#8

DECA

MOVR1,A

MOVB,#10

DIVAB

MOV@R1,A

DECR1

MOVA,B

MOVA,#10

MOV@R1,A

INT_T0:

ADDA,DISPBIT

MOVR0,A

MOVA,@R0

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVP1,A

MOVA,DISPBIT

MOVDPTR,#TAB

MOVP3,A

INCDISPBIT

CJNEA,#08H,KNA

KNA:

INCT2SCNTA

MOVA,T2SCNTA

CJNEA,#100,DONE

INCT2SCNTB

MOVA,T2SCNTB

CJNEA,#05H,DONE

CJNEA,#60,NEXT

CJNEA,#24,NEXT

NEXT:

DONE:

RETI

TABLE:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H

TAB:

DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH

END

6数字钟源程序的仿真

6.1编译、连接

将数字钟源程序输入到keil软件,建立工程项目,添加完成程序的编译、连接,通过后无错误。

如图所示:

图6.1编译、连接图

6.2仿真

6.2.1生成HEX文件

利用keil将编译、连接无误的源程序生成hex文件,准备与protues联调进行仿真。

图6.2.1从keil里生成十六进制文件

6.2.2仿真结果

在protues里面将HEX文件导入单片机,运行。

得到仿真如下:

图6.2.2仿真结果显示

7数字钟硬件原理图

1.把“单片机系统”区域中的P1.0-P1.7端口用8芯排线连接到“动态数码显示”区域中的A-H端口上;

2.把“单片机系统:

区域中的P2.0-P2.7端口用8芯排线连接到“动态数码显示”区域中的端口上;

3.把“单片机系统”区域中的P0.0/AD0、P0.1/AD1、P0.2/AD2端口分别用导线连接到“独立式键盘”区域中的SP3、SP2、SP1端口上;

8主要原器件清单

元件名称

规格型号/参数

数量

单片机

AT89C51

1

电容

15pF

2

晶振

11.0592MHz

10uF

数码管

7SEG-MPX6-CC-RED

电阻

10K

12

按键

BUTTON

3

小结

本次课程设计我们小组选择的课题是简易数字钟的设计。

主要的设计思路是运用5个单元模块的组合来实现符合设计要求的数字钟。

五大模块设置合理,各自发挥自己的作用,成为一个整体。

分模块来调试,最终实现。

课程设的三周是忙碌、充实而又紧张的。

虽然临近期末考试早已结束近一个月之久,但我们不仅没有把这当成一种考试后的娱乐,去随意对待,反而调整好自己心态,把这次课程设计当作一次难得的全面复习机会。

通过这次课程设计,我学会了很多书本上学不到的知识,熟练掌握了Keil的开发环境,也加深了软件的使用。

这个课设从自己找相关软件、装软件、学软件再到仿真,充满许多艰辛,付出了很多汗水和时间,在同组人员互相鼓励,互相探讨,互相竞争的团队协作下,克服这探索道路上的种种困难,最后终于做成了一份完整的课程设计。

心里还是不免有一种成功后的喜悦之情。

刚开始拿到题目,心中不免有一丝欣喜,因为对于数字钟这个课题,我想我们大部分人拿来就会有很清晰的思路,因为我们已经做了很多运用单片机来进行定时、计数的相关习题。

后来经过查找一些资料,写出了定时、循环计数、动态扫描等各部分程序段。

硬件部分由于是焊接好的实验箱,极大方便了本次设计。

但是在软硬件融合的阶段还是遇到了一些难题,经过几天反复的调试,最后发现是动态扫描的程序段,在循环移位的时候出现了问题,最后终于调试出来了希望得到的实际效果。

对于自己的设计,最大的败笔就是最后想加入一个跑秒程序段没能调出来,虽然基本满足设计的要求,但还是有点不甘心,造成这一现象的原因经过分析讨论认为是程序中对于此项功能的中断设置不合理,一个中断源不应该同时应用2个功能程序段。

最后由于时间等方面因素,我放弃了加这一项功能。

总之,回顾这一次单片机原理及应用的课程设计,让人感慨颇多,既为这门学科知识之深奥、奇妙所吸引,更为那些设计出那些经典程序的前人所折服。

学习的道路是没有尽头的,也是艰辛的,但只要我们能够独立去思考、去想、去做,那么我们总能学到真正的实用知识。

参考文献

[1]单片机原理及应用,黄勤、李楠、杨天怡编著,清华大学出版社。

[2]单片机程序设计及应用,杨将新、李华军、刘东骏编著,电子工业出版社。

[3]基于PROTEUS的电路及单片机仿真,周景润等著,北京航空航天工业出版社。

[4]C程序设计(第二版),谭浩强编著,清华大学出版社。

[5]TCP/IP,W.RichardStevens编,范建华译.机械工业出版社。

[6]计算机网络(第4版),AndrowS.tanenbaum编,机械工业出版社。

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

当前位置:首页 > 工作范文 > 演讲主持

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

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