学位论文单片机电子时钟设计Word格式.docx
《学位论文单片机电子时钟设计Word格式.docx》由会员分享,可在线阅读,更多相关《学位论文单片机电子时钟设计Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
![学位论文单片机电子时钟设计Word格式.docx](https://file1.bdocx.com/fileroot1/2023-1/8/f0367ae6-ce31-4d29-95f8-aea286f30866/f0367ae6-ce31-4d29-95f8-aea286f308661.gif)
(5)、通过实验验证功能的实现
(6)、编写课程设计说明书
第二章总体方案设计
2.1课题总体功能分析与设计
2.1.1系统需求分析
本课题要求设计一个电子钟,利用四个数码管进行时间显示,在其上显示分、秒;
但考虑到电子钟的实用性,这里将对其进行扩充,是利用六个数码管进行时间显示,在其上显示时、分、秒;
用6个小键盘分别进行时+1、时-1、分+1、分-1、秒+1、秒-1来改变时间值。
2.1.2系统功能分析与设计
有分析可得系统功能图2-1所示:
图2-1系统功能分析设计图
2.1.3系统设定详细说明
本课题设计需要六个数码管进行时间显示,刚打开电源时,系统初始状态显示的时间为12:
00:
00,然后电路会自动开始计时。
当秒到60时,则分上加1同时秒位清零显示00,然后再从00自动开始计时;
当分到60时,则小时上加1同时分位清零显示00,然后再从00开始;
当小时显示变为23:
59:
59时,接下来的显示则变为00:
00,电路自动开始计时,然后循环上述过程进行计时。
电路中有对时、分、秒进行加/减1的各自单独的时间调整按钮,时间调整按钮每按一次,则相应调整的显示时间值加/减1。
按S1键,则秒+1;
按S2键,则秒-1;
按S3键,则分+1;
按S4键,则分-1;
按S5键,则小时+1;
按S6键,则小时-1。
2.2实现时钟计时的基本方法
利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现时钟计数。
(1)计数初值计算:
把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位1s。
定时器方式1为16位定时/计数器工作方式,用于定时工作方式时,计数时间为:
T=(216-T0初值)×
振荡周期×
12
假设使用T/C0,方式1,50ms定时,晶振频率fosc=12MHz。
则初值X满足:
(216-X)×
1/12MHz×
12×
1μs=50000μs
X=15536D→0011110010110000B→3CB0H
(2)采用中断方式进行溢出次数累计,计满20次则为秒计时(1秒);
(3)从秒到分和从分到时的计时是通过累加和数值比较实现。
2.3电子钟的时间显示
电子钟的时钟时间要在六位数码管上进行显示,则要在内部RAM中设置缓存地址单元。
显示寄存器单元位:
32H
31H
30H
时显示寄存器单元位
分显示寄存器单元位
秒显示寄存器单元位
2.4电子钟的时间调整
时间调整:
用6个按键S1、S2、S3、S4、S5、S6,通过P1.0~P1.5口将调整信号输入单片机,再通过程序控制来完成时间调整的功能。
2.5总体方案介绍
2.5.1计时方案
利用AT89C51单片机内部的定时/计数器进行中断时,配合软件延时实现时、分、秒的计时。
该方案节省硬件成本,且能使读者在定时/计数器的使用、中断及程序设计方面得到锻炼与提高,对单片机的指令系统能有更深入的了解,从而对学好单片机技术这门课程起到一定的提升作用。
2.5.2控制方案
AT89C51的P0口外接6位LED显示数码管的段选信号,P2口外接6位LED显示数码管的位选信号,P1口外接6个调整时、分、秒加减的按键。
2.5.3硬件介绍
(1)AT89C51是一种低功耗,高性能的CMOS8位微型计算机。
片内有4KBFLASH(EPROM)可系统编程的只读存储器,该器件采用ATMEL公司的高密度非易失性存储器技术制造,与工业上标准的8031、8051和8751的指令系统及引脚兼容,它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8
位微处理器于单片芯片中,
片内Flash集成在一个芯片上,可用与解决复杂的问题,且成本较低。
简易电子钟的功能不复杂,可灵活应用于各种领域。
AT89C51
提供以下标准功能:
4k
字节Flash
闪速存储器,128字节内部RAM,32
个I/O
口线,看门狗(WDT),两个数据指针,两个16
位定时/计数器,一个5
向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51
可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU
的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM
中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
(2)六位LED显示数码管
由于考虑到充分利用DJ-598K试验仪的硬件资源,所以使用DJ-598K试验仪的六位数码管作为显示器,其是带有驱动器的六位数码显示管,如图2-2。
图2-2显示数码管实形图
图2-3显示数码管模块电路图
数据插座:
JS__LED位选扫描线;
JLED__LED段选码。
第三章系统硬件电路设计
根据以上的电子时钟的设计要求可以分为以下的几个硬件电路模块:
单片机模块、数码显示模块与按键模块,模块之间的关系图如下面得方框电路图3-1所示。
图3-1硬件电路方框图
3.1单片机模块设计
3.1.1芯片分析
MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,AT89C51单片机引脚图3-2所示:
图3-2AT89C51
MCS-51单片机是标准的40引脚双列直插式集成电路芯片,其各引脚功能如下:
VCC:
+5V电源。
VSS:
接地。
RST:
复位信号。
当输入的复位信号延续两个机器周期以上的高电平时即为有效,用完成单片机的复位初始化操作。
XTAL1和XTAL2:
外接晶体引线端。
当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;
当使用外部时钟时,用于接外部时钟脉冲信号。
P0口:
P0口为一个8位漏极开路双向I/O口,当作输出口使用时,必须接上拉电阻才能有高电平输出;
当作输入口使用时,必须先向电路中的锁存器写入“1”,使FET截止,以避免锁存器为“0”状态时对引脚读入的干扰。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,它不再需要多路转接电路MUX;
因此它作为输出口使用时,无需再外接上拉电阻,当作为输入口使用时,同样也需先向其锁存器写“1”,使输出驱动电路的FET截止。
P2口:
P2口电路比P1口电路多了一个多路转接电路MUX,这又正好与P0口一样。
P2口可以作为通用的I/O口使用,这时多路转接电路开关倒向锁丰存器Q端。
P3口:
P3口特点在于,为适应引脚信号第二功能的需要,增加了第二功能控制逻辑。
当作为I/O口使用时,第二功能信号引线应保持高电平,与非门开通,以维持从锁存器到输出端数据输出通路的畅通。
当输出第二功能信号时,该位应应置“1”,使与非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出,具体第二功能如
表所示。
3.1.2晶振电路
图3-2所示为时钟电路原理图,在AT89C51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。
而在芯片内部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。
时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉。
图3-2晶振电路
3.1.3复位电路
单片机复位的条件是:
必须使RST/VPD或RST引(9)加上持续两个机器周期(即24个振荡周期)的高电平。
例如,若时钟频率为12MHz,每机器周期为1μs,则只需2μs以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。
单片机常见的复位如图所示。
电路为上电复位电路,它是利用电容充电来实现的。
在接电瞬间,RESET端的电位与VCC相同,随着充电电流的减少,RESET的电位逐渐下降。
只要保证RESET为高电平的时间大于两个机器周期,便能正常复位。
图3-3复位电路
3.2数码显示模块设计
系统采用动态显示方式,动态显示通常都是采用动态扫描的方法进行显示,即循环点亮每一个数码管,这样虽然在任何时刻都只有一位数码管被点亮,但由于人眼存在视觉残留效应,只要每位数码管间隔时间足够短,就可以给人以同时显示的感觉。
图3-4数码显示电路
3.3按键模块设计
图3-5为按键模块电路原理图,时钟调整按键,分钟调整按键,秒钟调整按键。
图3-5按键模块电路图
四、系统软件设计
4.1系统总体流程图
基本的程序流程应该是:
程序执行,先通过初始化各个寄存器,在主程序中经过扫描按键来检测各个时间按键是否有动作,从而决定是否设定参数来执行相应功能的程序,进而在数码管上显示,若有就储存并修改相关的的时间寄存器的值,若没有就继续检测。
在计时子程序中将各时间寄存器的值逐个加1,每加一次就要检查是否已超过显示的上限值,这样在后面就便于处理,在扫描显示子程序中,将扫描位数指针与数字字码表首地址相加,从而得到相应的显示数据;
然后按照显示的位数将数据从P0和P2口输出到数码管上去显示,当然还有定时中断子程序,在这里,它实现计时1S的时间延时。
图4-1系统总体流程图
4.2源程序代码
S_SETBITP1.0;
秒+1端口
SO_SETBITP1.1;
秒-1端口
M_SETBITP1.2;
分+1端口
MO_SETBITP1.3;
分-1端口
H_SETBITP1.4;
时+1端口
HO_SETBITP1.5;
时-1端口
SEQU30H;
MEQU31H;
HEQU32H;
ORG0000H
LJMPSTART
ORG000FH
LJMPINT_T0
ORG0100H
START:
MOVDPTR,#TAB
MOVH,#12
MOVM,#0
MOVS,#0
MOVR0,#0
MOVTMOD,#01H
MOVTH0,#3CH
MOVTL0,#0B0H
SETBTR0
SETBET0
SETBEA
S1:
ACALLDEL
JBS_SET,A1
INCS
MOVA,S
CJNEA,#60,J1
LJMPK1
S2:
JBSO_SET,A1
DECS
CJNEA,#00,J2
LJMPA1
S3:
JBM_SET,A1
K1:
INCM
MOVA,M
CJNEA,#60,J3
MOVM,#0
LJMPK2
S4:
JBMO_SET,A1
DECM
CJNEA,#00,J4
S5:
JBH_SET,A1
K2:
INCH
MOVA,H
CJNEA,#24,J5
MOVS,#0
MOVH,#0
S6:
JBHO_SET,A1
DECH
CJNEA,#00,J6
A1:
ACALLDISPLAY
JNBS_SET,S1
JNBSO_SET,S2
JNBM_SET,S3
JNBMO_SET,S4
JNBH_SET,S5
JNBHO_SET,S6
J1:
SJMPJ1
J2:
SJMPJ2
J3:
SJMPJ3
J4:
SJMPJ4
J5:
SJMPJ5
J6:
SJMPJ6
INT_T0:
MOVTH0,#3CH;
设置定时初值50ms
INCR0
MOVA,R0
CJNEA,#20,RETUNE;
设置中断20次
CJNEA,#60,RETUNE
CJNEA,#24,RETUNE
RETUNE:
RETI
DISPLAY:
MOVA,S
MOVB,#10
DIVAB
CLRP2.6;
秒片选H位
MOVCA,@A+DPTR
CPLA
MOVP0,A;
段选信号输出口
SETBP2.6
MOVA,B
CLRP2.7;
秒片选L位
MOVP0,A
SETBP2.7
CLRP2.3;
分片选H位
SETBP2.3
CLRP2.4;
分片选L位
SETBP2.4
CLRP2.0;
时片选H位
SETBP2.0
CLRP2.1;
时片选L位
SETBP2.1
RET
TAB:
DB03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H;
数字字码表
DEL:
MOVR6,#10
LOOP1:
MOVR7,#100
LOOP2:
DJNZR7,LOOP2
DJNZR6,LOOP1
END
五、系统仿真与测试
5.1系统仿真
运用proteus软件进行仿真现在proteus软件中建立一个新的文件,再根据自己的要求选择所需的器件,把器件进行适当的排位后进行连接,连接后运行软件进行仿真。
如图5-1。
图5-1系统仿真图
5.2实验接线
此接线以在DJ-598K试验仪上为例,因为课题要求利用DJ-598K试验仪的硬件资源,又由于DJ-598K试验仪内关于电源线、地线、晶振、复位等部分接线均以接好,且最终也要在DJ-598K试验仪上实现系统。
接线1
接到
秒加
P1.0
P0.0
JLED.7
P2.
JS.0
秒减
P1.1
P0.1
JLED.6
JS.1
分加
P1.2
P0.2
JLED.5
分减
P1.3
P0.3
JLED.4
JS.2
时加
P1.4
P0.4
JLED.3
JS.3
时减
P1.5
P0.5
JLED.2
P0.6
JLED.1
JS.4
P0.7
JLED.0
JS.5
接线2
设置
开关
JK
外接
CPU卡上
拨码开关
K1、K8
ON
uVision
中的debug
USE:
Keil
Monitor-51
Driver
Port:
COM1口
KB6
51
K2、K3、K4、K5、K6、K7
OFF
Bandrate:
57600
仿真实验接线,则按系统仿真图进行线路的连接。
5.3实验测试
电子时钟主要的设计要求是能够实现时钟的一般功能,以及包括时间的调整功能,这个基于单片机的电子时钟基本上实现了上述功能,能够通过时间调整电路对时间进行调整以及时间计时。
图5-2为23:
45:
10的仿真图:
图5-223:
10时刻的仿真效果
总结
单片机作为我们主要的专业课程之一,我觉得单片机课程设计很有必要,而且很有意义。
但当拿到题目时,确实不知道怎么着手,有些迷茫,但想到谢永宁老师在上课时,给我们很详细的开发、分析过一个工业实例,在这个案例的启发、帮助下,历时一个星期,解决了一个又一个难题,终于完成本次课题任务。
通过本课程设计培养我的系统设计能力,使我得到了能力上的训练,培养和提高我以下方面的能力:
(1)、调查研究、分析问题的能力
(2)、使用设计手册、技术规范的能力
(3)、查阅中外文献的能力
(4)、制定设计方案的能力
(5)、计算机应用的能力
(6)、设计计算和绘图的能力
(7)、技术经济指示的分析能力
(8)、语言文字表达的能力
在这次课程设计中,运用到了很多以前的专业知识,虽然过去从未独立应用过它们,但在学习的过程中带着问题去学,我发现效率很高,这是我做这次课程设计的一大收获。
另外,要做好一个课程设计,就必须做到:
在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;
要有一个清晰的思路和一个完整的的软件流程图;
在设计程序时,不能妄想一次就将整个程序设计好,而反复修改、不断改进是系统设计的必经之路;
要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;
在设计课程过程中遇到问题是很正常,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。
课程设计结束了,但从中学到的知识会让我受益终身。
发现问题、提出问题、分析问题、解决问题和实践能力的提高都会使我在以后的学习、工作和生活中受益。
设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。
在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,不能灵活运用。
在此也了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的铺垫!
参考文献
[1]童诗白:
《模拟电子技术基础》高等教育出版社
[2]苏家健:
《单片机原理及应用技术》高等教育出版社
[3]肖婧:
《单片机入门与趣味实验设计》,北京航天航空大学出版社
[4]李朝青:
《单片机原理及接口技术》,北京航天航空大学出版社
[5]邓锦城:
《单片机专题制作》,学苑出版社
附录
附录1硬件总电路