精编基于单片机的电子时钟的设计与实现.docx

上传人:b****1 文档编号:22867984 上传时间:2023-04-28 格式:DOCX 页数:42 大小:26.91KB
下载 相关 举报
精编基于单片机的电子时钟的设计与实现.docx_第1页
第1页 / 共42页
精编基于单片机的电子时钟的设计与实现.docx_第2页
第2页 / 共42页
精编基于单片机的电子时钟的设计与实现.docx_第3页
第3页 / 共42页
精编基于单片机的电子时钟的设计与实现.docx_第4页
第4页 / 共42页
精编基于单片机的电子时钟的设计与实现.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

精编基于单片机的电子时钟的设计与实现.docx

《精编基于单片机的电子时钟的设计与实现.docx》由会员分享,可在线阅读,更多相关《精编基于单片机的电子时钟的设计与实现.docx(42页珍藏版)》请在冰豆网上搜索。

精编基于单片机的电子时钟的设计与实现.docx

精编基于单片机的电子时钟的设计与实现

(精编)基于单片机的电子时钟的设计与实现

武汉大学电子信息学院

电子系统综合设计课程论文

基于51单片机的电子时钟的设计与实现

专业:

年级:

作者:

指导教师:

2012年6月26日

1课题背景与立项缘由1

2实验方案设计2

2.1设计要求2

2.2数字钟的构成2

2.3系统总体框图3

3软件系统方案设计与选择4

3.1主程序流程图4

3.2定时器子程序流程图6

3.3方案选择7

4硬件系统方案设计与选择7

4.1单片机的结构7

4.2开发板的结构和使用方法...8

4.3方案选择...10

5系统测试11

5.1测试环境11

5.2测试过程11

5.3测试结果...12

6实验心得12

参考文献13

附录1系统电路图13

附录2系统软件代码14

附录3系统器件清单38

1课题背景及立项缘由

所谓单片机,就是把中央处理器CPU(CentralProcessingUnit)、存储器(Memory)、定时器、I/0(Input/Output)接口电路等一些计算机的主要功能部件集成在一块集成电路芯片上的微型计算机。

虽然单片机只是一个芯片,但从组成和功能上看,它已具有了微型计算机系统的含义。

中文“单片机”的称呼由英文名称“SingleChipMicrocomputer”直接翻译而来。

单片机把微型计算机的各主要部分集成在一块芯片上,大大缩短了系统内信号传送距离,从而提高了系统的可靠性及运行速度。

因而在工业测控领域中,单片机系统是最理想的控制系统。

所以,单片机是典型的嵌人式系统,是嵌入式系统低端应用的最佳选择。

单片机的发展经历了以下4个阶段:

1、芯片化探索阶段

20世纪70午代,美国的Fairchild(仙童)公司首先推出了第一款单片机F-8,随后Intel公司推出了影响面大、应用更广的MCS48单片机系列。

MCS48单片机系列的推出标志着在工业控制领域,进入到智能化嵌入式应用的芯片形态计算机的探索阶段。

参与这一探索阶段的还有Motorola、Zilog和TI等大公司,它们都取得了满意的探索效果,确立了在SCMC的嵌入式应用中的地位。

2、结构体系的完善阶段

在MCS-48探索成功的基础上很快推出了完善的、典型的单片机系列MCS-5l。

MCS-51系列单片机的推出,标着SingleChipMicrocomputer体系结构的完善。

3、从SCMC向MCU化过渡阶段

Intel公司推出的MCS96单片机,将一些用于测控系统的模数转换器(ADC)、程序运行监视器(WDT)、脉宽调制器(PWM)、高速I/O口纳入片中,体现了单片机的微控制器特征。

MCS-51单片机系列向各大电气商的广泛扩散,许多电气商竞相使用80C51为核,将许多测控系统中使用的电路技术、接口技术、可靠性技术应用到单片机中;随着单片机内外围功能电路的增强,强化了智能控制器特征。

微控制器(Microcontrollers)成为单片机较为准确表达的名词。

4、MCU的百花齐放阶段

单片机发展到这一阶段,表明单片机已成为工业控制领域中普遍采用的智能化控制工具-----小到玩具、家电行业,大到车载、舰船电子系统,遍及计量测试、工业过程控制、机械电子、金融电子、商用电子、办公自动化、工业机器人、军事和航空航天等领域。

为满足不同的要求,出现了高速、大寻址范围、强运算能力和多机通信能力的8位、16位、32位通用型单片机,小型廉价型、外围系统集成的专用型单片机,以及形形色色各具特色的现代单片机。

可以说,单片机的发展进人了百花齐放的时代,为用户的选择提供了空间。

在日常生活和工作中,我们常常使用到定时控制。

早起常用的一些时间控制单元都是使用模拟电路设计和制作的,其定时准确性和重复精度都不是很理想,现在基本上都是基于数字技术的新一代产品,随着单片机性能价格比的不断提高,新一代产品的应用也越来越广泛,大可构成复杂的工业过程的控制系统,完成复杂的控制功能。

小则用于家电控制,大则用于工业和科学研究中的精确时间定位,配以适当的接口芯片,可以构造各式各样的微电子产品。

我们专业在本学期的数字逻辑电路实验中已经能使用脉冲信号发生器、相关芯片、数码管和导线在实验箱上实现基于基本门电路的数字时钟;在电子系统综合设计

(2)这门课上,我们学习了单片机的相关知识,了解了其低功耗、可靠性和稳定性强、可以在内部的EPROM上写入和擦除程序的相对先进的特点与功能。

因此,我们希望在有单片机芯片的开发板上通过编程实现数字钟,并期望它能有更多的功能和更好的稳定性。

2实验方案设计

2.1设计要求

◆实现时、分、秒的计时功能

◆实现年、月、日的日历功能

◆体现平闰年的区别,各时间单位之间进制准确

◆实现闹钟报警功能

2.2数字钟的构成

数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路.由于计数的起始时间不可能与标准时间一致,故需要在电路上加一个校时电路,同时标准的1MHZ时间信号必须做到准确稳定.通常使用石英晶体振荡器电路构成数字钟。

⑴晶体振荡器电路

晶体振荡器电路给数字钟提供一个频率稳定准确的12MHz的方波信号,可保证数字钟的走时准确及稳定.不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。

⑵时间计数器电路

时间计数电路由秒个位和秒十位计数器,分个位和分十位计数器电路构成,秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器。

⑶译码驱动电路

译码驱动电路将计数器输出的8421BCD码转换为数码管需要的逻辑状态,并且为保证数码管正常工作提供足够的工作电流。

⑷数码管

数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管,本设计提供的为LED数码管。

2.3系统总体框图

3软件系统方案设计与选择

3.1主程序流程图

3.1主程序流程图(续)

3.2定时器子程序流程图

3.3方案选择与相关技术

方案一:

基本门电路搭肩,用基本门电路来实现数字钟,电路结构复杂,鼓掌系数大,不易调试。

方案二:

单片机编程,用单片机设计电路,由于使用软硬件结合的方式,所以电路结构简单,调试也相对方便。

与第一种方案比较优点的是非常明显的。

我们选择了第二种方案。

4硬件系统方案设计与选择

4.1单片机的结构

4.1.1结构框图

4.2开发板结构与使用方法

4.2.1开发板的结构

4.2.2通过SST51实现开发板只读模式和程序烧写的切换

打开SSTEasyIAP11F.exe程序,选择串口

选择芯片型号和内部程序存储器

选择PC串口,MCU晶振和波特率

先选择确定在复位MCU

通讯成功后窗口右上角显示芯片信息和版本信息

点击DownloadSoftICE选项,将MCU中的BOOTLOADER监控程序替换为SoftICE监控程序

选择确认更换

打开KeilC51程序,新建一个工程

保存在自己新建的文件夹中

点击保存出现CPU选择对话框,选择SST系列的89X516RD2

出现是否添加标准51初始代码对话框,选“否”

工程建立之后新建源程序文件,点击”File”菜单下“New”选项

保存在工程文件夹内,C程序文件后缀为“.C”,汇编程序文件后缀为“.ASM”

在文本编辑区编写源程序并保存;在SourceGroup上右击选择“AddFilesToGroup…”选项添加源文件至工程

选择编写好的源程序文件,点击Add添加所选文件

点击编译按钮,编译工程

进入目标板调试选项设置,点击“Project”菜单下“OptionsforTarget…”选项

选择为硬件仿真功能

点击Setting进入通讯参数设定菜单,去掉所有Cache选项。

至此设置完毕,进入仿真调试阶段

点击DEBUG下的“Start/StopDebugSession”选项进入DEBUG界面

进入后可以看到信息栏中由显示连接成功信息。

在此仿真界面可以进行单步、全速、断点等调试方式

由SoftICE监控程序转换回SSTBoot-StrapLoader监控程序

打开编辑器SUPERPRO程序

进入SUPERPRO程序界面,单击“选择器件选项”

进入器件选择对话框,在器件类型处选择“MCU/MPU”在查找处输入要器件名称,找到之后选择“确定”

单击“装入文件”选项

进入下载文件选择对话框,选择要下载的SoftICE监控程序,文件格式一般为“.hex”或“.bin”格式

因为SST单片机的监控程序存储在Block1中,Block1的地址为10000h,故数据缓冲区起始地址改为“10000”,下载一般执行程序则直接默认

具体步骤为:

Erase=》Program=》Verify;

打开SSTBOOT-STRAPLOADER软件工具,并按之前的步骤与单片机通讯连接成功。

在界面的右下方IAPFunction菜单中有下载选项,选择“Download”选项下载程序

进入了下载文件选择界面

在文件查找对话框中找到要下载的用户程序,一般为.Hex或.bin格式文件

选择好用户程序后,单击步骤二中的OK选项开始下载,界面最下面的状态栏显示下载进度,当显示为Done时表示程序下载已经完成,单片机上电执行用户程序了

4.3方案选择与相关技术

4.3.1显示模块

显示模块是本次单片机课程设计最核心的部分。

方案一:

采用LCD1602。

LCD1602为工业字符型液晶,能够同时显示16x02即32个字符。

其采用标准的16脚接口,该液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,所以可分容易的实现数字钟数码显示。

方案二:

采用LED共阴极数码管。

共阴数码管在应用时将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。

当某一字段的阳极为低电平时,相应字段就不亮。

基于以上分析,我们考虑到现实经济因素,所以选择了方案二。

共阴极数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类:

方案一:

静态显示驱动。

就是每一个数码管显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。

这样单片机只要把要显示的字形代码发送到接口电路,直到要显示新的数据时,再发送新的字形码,因此,使用这种办法单片机中CPU的占用较小。

但对于静态显示方式,所需的数据锁存装置很多,引线多而复杂,且可靠性也较低。

方案二:

动态显示驱动。

通过单片机对数码管位选通COM端电路的控制,只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

动态显示可以大幅度地降低硬件成本和电源的功耗,因为某一时刻只有一个数码管工作,也就是所谓的分时显示,故显示所需要的硬件电路可分时复用。

动态显示方式,可以避免静态显示的问题。

但设计上如果处理不当,易造成亮度低,闪烁问题。

因此合理的设计既应保证驱动电路易实现,又要保证显示后的数据稳定,无闪烁。

动态显示采用多路复用技术的动态扫描显示方式,复用的程度不是无限增加的,因为利用动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短,发光的亮度等因素.我们通过实验发现,当扫描刷新频率(发光二极管的停闪频率)为50Hz,发光二极管导通时间≥1ms时,显示亮度较好,无闪烁感.。

鉴于上述的方案分析,我们采用方案二

4.3.2闹铃模块

方案一:

采用语音芯片ISD1110闹铃。

ISD1110具有多种采样率对应,多种录放时间,可以利用振荡电阻自已决定采样率。

操作简单,灵活。

音质好,适应电压范围广。

可先对录放音设备录入一段音乐或其他报时方式,当到设定时间时,单片机控制录放音设备放音。

方案二:

采用蜂鸣器闹铃,当到设定时间时,单片机向蜂鸣器送出低电平,蜂鸣器响铃。

采用蜂鸣器闹铃结构简单,只需要单路信号控制,发出的闹铃声音可以根据响和不响的不同的软件延时时间来控制,当然也能发出音乐声音。

基于两种方案分析,虽然语音芯片ISD1110具备更多优点,但鉴于经济因素,我们本次设计还是决定采用方案二。

4.3.3LED灯显示模块

采用LED灯可以方便的用不同的流水方式或单个LED灯来判断系统的工作状态,实现不同的显示功能,是一种经济又实用的方式。

5系统测试

5.1测试环境

硬件平台:

计算机一台、通讯电缆一根、数据线一根、单片机系统学习平台V1.1

软件平台:

WINDOWSXP操作系统、SoftICE监控程序、Keil软件

5.2测试过程

硬件测试:

用SoftICE查看和改变单片机工作状态

软件测试:

将数字钟程序烧入单片机,并测试其功能是否完善

5.3测试结果

时钟精度分析:

为进一步使本次的系统做得更完美,我使用了标准的秒表对自己设计的时间进行了精度测量。

本次设计系统使用的晶振为12MHZ.数码管显示

00:

5:

00时,用秒表测得相应的数据如表3所示:

序号

1

2

3

4

5

T(min)

5.00.5781

5.00.4787

5.00.5040

5.00.3096

4.59.2587

序号

6

7

8

9

10

T(min)

5.01.4335

5.00.2003

4.59.4556

5.01.2026

5.00.2597

序号

11

12

13

14

15

T(min)

4.58.9750

5.00.1181

5.00.9604

5.02.5060

4.59.8985

序号

16

17

18

19

20

T(min)

10.00.1081

10.01.0545

10.00.9560

10.00.7854

5.00.4355

通过计算可得数码管显示:

00:

5:

00时

秒表测得的数值平均值为:

00:

5:

2343

6实验心得

本次数字钟实验耗时很久,最后做出的来的功能也是经过反复多次调试才全部达标,是一次很有意义的学习和动手经历。

从完全不懂单片机到在单片机上编出数字钟的程序,我们的感受主要有一下几点:

◆看再多的课本可能效果也不如实际编程的学习效率高。

事实上我们编跑马灯的程序的时候缺什么就看什么,非常有针对性,在短时间内掌握了汇编语言编程的基础。

从本课程的角度来说,实践对理论的反馈作用体现的更加明显。

◆调试程序比编程本身枯燥的多,但是在某种意义上更加重要。

编程是靠灵感的,脑袋里有了算法可以很快写出来,但是实际结果能不能达到还要看调试,要考虑算法逻辑、语法、内存地址等诸多方面。

这一点在对硬件编程上体现的尤为明显。

◆本实验最后完成了数字钟的诸多功能,并没有向其他领域拓展的功能,是比较遗憾的地方。

希望能在电子系统综合设计

(2)中得到弥补!

参考文献

[1]楼然苗.《单片机课程设计指导》.北京航空航天大学出版社,2007.7.

[2]苏家健.《单片机原理及应用技术》.高等教育出版社,2004.11.

[3]深圳市精敏数字机器有限公司单片机入门背景知识,2012.5.

[4]张毅坤陈善久裘雪红.单片微型计算机原理及应用.西安电子科技大学出版,1998.91版.

[5]李学海.《标准80C51单片机基础教程:

原理篇》.北京航空航天大学出版社,2006.

[6]王建校.《51系列单片机及C51程序设计》.科学出版社,2002.

[7]陈龙三.《C语言控制与应用》.清华大学出版社,1999.8.

[8]赵建领.《51系列单片机开发宝典》.电子工业出版社,2007.

附录一系统电路图

附录二软件完整代码

ORG0000H

LJMPMAIN

ORG0003H;时钟中断入口

LJMPJIA1

ORG000BH;日期中断入口

LJMPCLOCK

ORG0013H

LJMPJIAN1

ORG001BH

LJMPNAOZHO

ORG0030H

DATELED1EQU55H;日期月地址

DATELED2EQU56H;日期日地址

DATELED3EQU57H;日期年高位地址

DATELED4EQU67H;日期年低位地址

SHUNAOEQU58H

NAOHEQU59H

NAOMEQU40H

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

ORG0100H

MAIN:

MOVR3,#0

MOVR0,#12

MOVR1,#0

MOVNAOH,#12

MOVNAOM,#0

MOVSHUNAO,#40

MOVP1,#0FFH

MOVR5,#0FFH

MOV66H,#0FFH

MOVSP,#30H

MOVR2,#0

MOVR7,#7FH

MOVDATELED1,#01

MOVDATELED2,#01H

MOVDATELED3,#00H

MOVDATELED4,#20

MOVTMOD,#21H

MOVTH0,#3CH

MOVTL0,#0B0H

MOVTH1,#00H

MOVTH0,#00H

SETBTR0

CLRTR1

MOVIE,#087H

SETBIT1;外部中断模式

SETBIT0

CLRPS

CLRPT1

CLRPT0

SETBPX1

SETBPX0

LED:

MOVA,R0

MOVR7,#7FH

LCALLLED1

LCALLTIME

MOVA,R0

CJNEA,NAOH,NONAO

MOVA,R1

CJNEA,NAOM,NONAO

JBTR1,NONAO

LJMPNAOKAI

NONAO:

INCNAOM

MOVA,NAOM

MOV38H,R1

CJNEA,38H,NONAO1

CLRTR1

NONAO1:

DECNAOM

MOVA,R1

MOVR7,#0EFH

LCALLLED1

LCALLTIME

MOVA,R2

MOVR7,#0FDH

LCALLTIME

LCALLLED1

LCALLTIME

JNBP3.4,SETM

JNBP3.5,DATEH

LJMPLED

NAOKAI:

SETBET1

SETBTR1

LJMPNONAO

DATEH:

LJMPDATE

SETM:

CLRET1

LCALLTIME3

JBP3.4,LED

SETM3:

JNBP3.4,SETM3

LCALLTIME3

JNBP3.4,SETM3

MOVP1,#11111110B

SETM1:

MOVA,R1

MOVR7,#0EFH

LCALLLED1

LCALLTIME

MOVA,R0

MOVR7,#7FH

LCALLLED1

LCALLTIME

JBP3.4,SETM1C1

LCALLTIME3

JNBP3.4,SETH

SETM1C1:

DJNZR5,SETM1

MOVR5,#0FFH

SETM2:

MOVA,#00H

MOVDPTR,#0FAFFH

MOVX@DPTR,A

MOVDPTR,#0FBFFH

MOVA,#0EFH

MOVX@DPTR,A

LCALLTIME

MOVA,#00H

MOVDPTR,#0FAFFH

MOVX@DPTR,A

MOVDPTR,#0FBFFH

MOVA,#0F7H

MOVX@DPTR,A

LCALLTIME

MOVA,R0

MOVR7,#7FH

LCALLLED1

LCALLTIME

JBP3.4,SETM1C2

LCALLTIME3

JNBP3.4,SETH

SETM1C2:

DJNZR5,SETM2

MOVR5,#0FFH

LJMPSETM1

SETH:

JNBP3.4,SETH

LCALLTIME3

JNBP3.4,SETH

MOVP1,#11111101B

SETH1:

MOVA,R0

MOVR7,#07FH

LCALLLED1

LCALLTIME

MOVA,R1

MOVR7,#0EFH

LCALLLED1

LCALLTIME

JBP3.4,SETH2

LCALLTIME3

JNBP3.4,SETD

SETH2:

DJNZR5,SETH1

MOVR5,#0FFH

SETH3:

MOVA,R1

MOVR7,#0EFH

LCALLLED1

LCALLTIME

MOVA,#00H

MOVDPTR,#0FAFFH

MOVX@DPTR,A

MOVDPTR,#0FBFFH

MOVA,#07FH

MOVX@DPTR,A

LCALLTIME

MOVA,#00H

MOVDPTR,#0FAFFH

MOVX@DPTR,A

MOVDPTR,#0FBFFH

MOVA,#0BFH

MOVX@DPTR,A

LCALLTIME

JBP3.4,SETH4

LCALLTIME3

JNBP3.4,SETD

SETH4:

DJNZR5,SETH3

MOVR5,#0FFH

LJMPSETH1

SETD:

JNBP3.4,SETD

LCALLTIME3

JNBP3.4,SETD

MOVP1,#11111011B

SETD1:

MOVA,DATELED4

MOVR7,#7FH

LCALLLED1

LCALLTIME

MOVA,DATELED3

MOVR7,#0DFH

LCALLLED1

LCALLTIME

MOVA,DATELED1

MOVR7,#0F7H

LCALLLED1

LCALLTIME

MOVA,DATELED2

MOVR7,#0FDH

LCALLLED1

LCALLTIME

JBP3.4,AGAIN2

LCALLTIME3

JNBP3.4,SETDM

AGAIN2:

DJNZR5,SETD1

MOVR5,#0FFH

SETD3:

MOVA,DATELED4

MOVR7,#7FH

LCALLLED1

LCALLTIME

MOVA,DATELED3

MOVR7,#0DFH

LCALLLED1

LCALLTIME

MOVA,DATELED1

MOVR7,#0F7H

LCALLLED1

LCALLTIME

MOVA,#00H

MOVDPTR,#0FAFFH

MOVX@DPTR,A

MOVDPTR,#0FBFFH

MOVA,#0FDH

MOVX@DPTR,A

LCALLTIME

MOVA,#00H

MOVDPTR,#0FAFFH

MOVX@DPTR,A

MOVDPTR,#0FBFFH

MOVA,#0FEH

MOVX@DPTR,A

LCALLTIME

JBP3.4,AGAIN3

LCALLTIME3

JNBP3.4,SETDM

AGAIN3:

DJNZR5,SETD3

MOVR5,#0FFH

LJMPSETD1

SETDM:

JNBP3.4,SETDM

LCALLTIME3

JNBP3.4,SETDM

MOVP1,#11110111B

SETDM1:

MOVA,DATELED4

MOVR7,#7FH

LCALLLED1

LCALLTIME

MOVA,DATELED3

MOVR7,#0DFH

LCALLLED1

LCALLTIME

MOVA,DATELED1

MOVR7,#0F7H

LCALLLED1

LCALLTIME

MOVA,DATELED2

MOVR7,#0FDH

LCALLLED1

LCALLTIME

JBP3.4,AGAIN1

LCALLTIME3

JNBP3.4,SETDYD

AGAIN1:

DJNZR5,SETDM1

MOVR5,#0FFH

SETDM3:

MOVA,DATELED4

MOVR

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

当前位置:首页 > 小学教育 > 小学作文

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

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