基于单片机的时钟控制器设计课程设计报告论文.docx
- 文档编号:16503544
- 上传时间:2023-07-14
- 格式:DOCX
- 页数:24
- 大小:289.09KB
基于单片机的时钟控制器设计课程设计报告论文.docx
《基于单片机的时钟控制器设计课程设计报告论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的时钟控制器设计课程设计报告论文.docx(24页珍藏版)》请在冰点文库上搜索。
基于单片机的时钟控制器设计课程设计报告论文
单片机原理与应用技术课程设计报告
基于单片机控制的时钟控制器
专业班级:
_电气XX班___
姓 名:
_____XXX_____
时间:
2013/11/25~12/15
指导教师:
XXXXXXX
2013年12月11日
基于单片机控制的时钟控制器课程设计任务书
1。
设计目的与要求
设计出一个基于单片机控制的时钟控制器。
通过向单片机输入不同的指令可以实现24小时制时钟的基本显示和连续的调时,调分和调秒的功能,同时又扩展了整点报时功能。
该电路硬件较为简单、计时精度高、可控性好,可以随时调整和设定时间,并且调时间的误差小,操作简单、通用性强。
(1)基本功能
<1>、显示:
可以显示时、分和秒
<2>、调时功能:
时(0-24)、分和秒(0-60)可以连续可调
(2)性能:
时间日误差<2秒
(3)扩展功能
<1>.增加整点报时功能
<2>.增加闹钟任意设定功能
2.设计容
(1)画出电路原理图,正确使用逻辑关系;
(2)确定元器件与元件参数;
(3)进行电路模拟仿真;
(4)SCH文件生成与打印输出;
3.编写设计报告
写出设计的全过程,附上有关资料和图纸,有心得体会。
4.答辩
在规定时间,完成叙述并回答问题。
摘要1
1.引言1
2.设计目的和要求1
3.总体设计方案1
3.1方案设计要求1
3.2方案设计与论证1
3.3整体设计框图2
3.4系统设计流程图2
4.设计原理分析3
4.1外接晶振电路3
4.2复位电路3
4.3数码管显示电路3
4.4键盘控制电路4
4.5Proteus仿真电路4
4.6单片机程序的编写5
4.7电路的检测5
4.8CAD电路的连接与PCB电路布线并做出电路板5
4.9软件与硬件的调试5
5.总结与体会5
6.附录5
6.1CAD电路连接图5
6.2PCB电路布线图6
6.3时钟控制器参考源程序6
7.参考文献13
基于单片机控制的时钟控制器
班级:
电气115班:
传阳
摘要:
近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点。
本次设计的时钟控制器是以单片机(AT89C51)为核心,结合相关的元器件(3个2位共阳数码管,一个发光二极管和一个蜂鸣器)和应用程序(在Proteus软件和KEIL编译软件),构成相应的应用系统。
关键词:
单片机AT89C51共阳数码管发光二极管蜂鸣器Proteus软件KEIL编译软件中断
1.引言
随着科技的发展,电子技术得到了飞速的发展,尤其是单片机的应用更为普遍。
单片机的应用已深入众多技术领域,从军事、工业到家庭日常生活,单片机因体积小、功能强、价格低廉而得到广泛应用。
在此基础上,越来越多各式各样的时钟也逐渐走进我们的生活,它们设计精巧、方便、耐用、美观,深得各领域的厚爱。
随着科技的进步,基于单片机控制的时钟控制器的出现则打破了人们对时钟的传统概念,因为数字时钟不仅可以通过数字直观地显示出时间,还可以定时发出各种声、光、电信号,以启动各种设备实现实时控制、时间顺序控制。
该课程设计既有一般时钟的基本显示和调整功能,同时又增加了整点报时功能,复位功能与实时时钟控制功能。
2.设计目的与要求
设计出一个基于单片机控制的时钟控制器。
通过向单片机输入不同的指令可以实现24小时制时钟的基本显示和连续的调时,调分和调秒的功能,同时又扩展了整点报时功能。
该电路硬件较为简单、计时精度高、可控性好,可以随时调整和设定时间,并且调时间的误差小,操作简单、通用性强。
在一个单片机应用系统中,时钟有两方面的含义:
一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间。
本文主要介绍用单片机为核心部件的时钟控制器,本设计由单片机AT89C51芯片和3个两位一体的共阳极的数码管为核心,辅以必要的电路,构成了一个单片机时钟控制器。
基本要求:
1.显示:
可以显示时、分和秒
2.调时功能:
时(0-24)、分和秒(0-60)可以连续可调并进行校准
3.能够完成时间的显示、定时闹钟、整点报时与复位功能
3.总体设计方案
3.1.方案设计要求
设计制作一个时钟控制器,要求能实现基本走时,并以数字形式显示时、分、秒,采用24小时制,能实现校时、校分连续可调、整点报时功能、复位功能以与闹钟任意设定功能。
3.2方案设计与论证
方案一:
采用各种纯数字芯片实现数字时钟的设计。
优点:
各个模块功能清晰,电路易于理解实现。
缺点:
各个模块功能已定不能进行智能化调整,整体电路太庞大。
方案二:
采用FPGA模块用硬件语言实现功能。
优点:
运算速度快,走时精度高,算法简单。
缺点:
成本高,大材小用。
方案三:
采用单片机最小系统实现功能。
优点:
电路简单,能通过程序进行随机调整并扩展功能,成本低,易于实现。
缺点:
走时有一定的误差。
经过综合考虑成本问题以与电路实现问题,选择第三种方案实现设计要求。
3.3整体设计框图
整体设计框图如图1所示:
图1整体设计框图
3.4系统设计流程图
设计流程图如2图所示:
图2系统设计流程图
4.设计原理分析
4.1外接晶振电路
晶振连接电路图如图3,以12MHZ晶振为基准。
图3外接晶振电路连接图
XTAL1、XTAL2:
XTAL1是片振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。
部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。
晶振的频率可以在1MHz-24MHz选择,一般选用12MHZ晶振,电容取30PF左右。
4.2复位电路
常用复位电路图如图4:
图4复位电路连接图
在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引:
脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。
复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。
4.3数码管显示电路
二位一体共阳极数码管电路连接图如图5,以PNP三极管为驱动。
图5数码管显示电路连接图
4.4键盘控制电路
键盘控制电路如图6。
图6时钟按键控制电路图
通过S1、S2、S3和S4四个按键,对时间进行修改和闹钟的设置,S0控制闹钟的启动和停止。
按下S4键显示闹钟,松开后显示时间;按下S1键进入时间修改模式,再按S1键时间的时加1,按S3分加1,调整结束后按下S4恢复正常显示;按下S2键进入闹钟修改模式,再按S3键闹钟的时加1,按S3分加1,调整结束后按下S4恢复正常显示。
在按键按下和放开时会出现抖动现象。
通过延时程序,可以进行去抖动设计。
4.5Proteus仿真电路
整体电路连接图如图7:
图7整体电路连接图
4.6单片机程序的编写
用KEIL编译软件进行程序的设计、编译并生成可执行文件。
4.7电路的检测
电路连接完毕后,应用单片机程序烧录工具进行程序烧录,然后单击运行按钮进行仿真,检测电路是否有误。
4.8CAD电路的连接与PCB电路布线并做出电路板
待仿真电路检测无误后,则通过CAD软件进行电路图的连接并对元件进行封装,确定无误后生成PCB图进行电路的布线,之后做出电路板进行元件的焊接。
4.9软件与硬件的调试
单片机应用系统的调试包括硬件和软件两部分,但是它们并不能完全分开。
一般的方法是排除明显的硬件故障,再进行综合调试,排除可能的软件或硬件故障。
软件调试是指用仿真软件进行仿真调试,验证系统的各项功能;硬件调试即软件调试成功后,将程序下载至AT89C51芯片中,用焊接好的电路来进行各项功能的验证与检测。
需要特别注意的是软件调试与硬件调试的差异,软件调试只是初步的估测,硬件的调试才是最真实的。
5总结与体会
经过三周的实习设计,我设计的时钟控制器实现了它最基本功能,三个星期的紧实习,让我获益非浅,更加熟练的掌握了Proteus软件、KEIL软件与CAD软件的应用,使我看到了自己专业知识的浅薄与不足。
通过本次的课程设计,我对单片机这门课程有了更深的了解,单片机课程设计则是人生课程,我学到了很多课堂上无法学到的东西,懂得了学习的不容易,在以后的学习中我会更加努力的去学习和研究,以取得更好的成绩。
6.附录
6.1CAD电路连线图如图8。
图8CAD电路连接图
6.2PCB电路布线图如图9。
图9PCB布线电路图(注:
未连线的端口用外接线连接)
6.3时钟控制器参考源程序
使用keil软件编写源程序
ORG0000H
LJMPSTART
ORG000BH
LJMPTIME
;********初始化*********
START:
MOVSP,#50H
MOV20H,#00H;定义秒
MOV21H,#00H;定义分
MOV22H,#00H;定义时
MOV23H,#01H;定义闹钟分钟
MOV24H,#01H;定义闹钟小时
MOV25H,#00H
MOV26H,#01H
MOV30H,#00H;BCDSECOND
MOV31H,#00H
MOV32H,#00H;BCDMINUTE
MOV33H,#00H
MOV34H,#00H;BCDHOUR
MOV35H,#00H
MOV36H,#01H
MOV37H,#00H
MOV38H,#01H
MOV39H,#00H
MOV50H,#00H;按键次数
MOVTMOD,#01H;16位计数器
MOVTH0,#03CH;赋初值
MOVTL0,#0B0H
MOVIE,#87H;中断允许
SETBTR0;启动T0
MOVR2,#14H
MOVP2,#0FFH
;*********主程序**********
MAIN:
P1.4,GB
LCALLTIMEPRO;调用闹钟判断
GB:
LCALLDISPLAY1;调用时间显示
P1.3,M1;P1.3=1时转移S4没有按下
LCALLSETTIME;调用SETTIME调时子程序
LJMPMAIN
M1:
P1.2,M2;P1g.2=1时转移 S3
LCALLSETATIME;调用SETATIME子程序
LJMPMAIN
M2:
P1.0,M4;P1.0=1时转移S1
LCALLLOOKATIME;调用LOOKATIME显示闹钟子程序
M4:
LJMPMAIN
;*********延时子程序********
DELAY:
MOVR4,#030H
DL00:
MOVR5,#0FFH
DL11:
MOVR6,#9H
DL12:
DJNZR6,DL12
DJNZR5,DL11
DJNZR4,DL00
RET
;***********时间调整*******
SETTIME:
;设置时间
L0:
LCALLDISPLAY1
MM1:
P1.3,L1;P1.3=1时转移
MOVC,P1.3
JCMM1
LCALLDELAY1;延时
JCMM1
MSTOP1:
MOVC,P1.3;P1.3为0时转移
JNCMSTOP1
LCALLDELAY1;延时
MOVA,50H
INC50H
CJNEA,#00H,HJ1
LJMPL0
HJ1:
MOVC,P1.3
JNCMSTOP1
INC22H;小时自加一
MOVA,22H
CJNEA,#18H,GO12;小时计数循环
MOV22H,#00H;复位
MOV34H,#00H
MOV35H,#00H
LJMPL0
L1:
P1.1,L2;P1.1=1时转移
MOVC,P1.1
JCL1
LCALLDELAY1;延时
JCL1
MSTOP2:
MOVC,P1.1;P1.1=0时转移
JNCMSTOP2
LCALLDELAY1;延时
MOVC,P1.1
JNCMSTOP2
INC21H;分钟加一
MOVA,21H
CJNEA,#3CH,GO11;分钟计数循环
MOV21H,#00H;复位
MOV32H,#00H
MOV33H,#00H
LJMPL0
GO11:
MOVB,#0AH
DIVAB
MOV32H,B;将A的低4位存入32单元
MOV33H,A;将A的高4位存入33单元
LJMPL0
GO12:
MOVB,#0AH
DIVAB
MOV34H,B;将A的低4位存入34单元
MOV35H,A;将A的高4位存入35单元
LJMPL0
L2:
P1.0,L0;P1.0=1时转移
MOVC,P1.0
JCL2
LCALLDELAY1;延时
MOVC,P1.0
JCL2
STOP1:
MOVC,P1.0;P1.0=0时转移
JNCSTOP1
LCALLDELAY1;延时
MOVC,P1.0
JNCSTOP1
MOV50H,#00H
LJMPMAIN
;*******设置闹钟*******
SETATIME:
LCALLDISPLAY2;调用DISPLAY2显示闹钟
N0:
LCALLDISPLAY2
MM2:
P1.2,N1;P1.2=1时转移
MOVC,P1.2
JCMM2
LCALLDELAY1;延时
JCMM2
MSTOP3:
MOVC,P1.2;P1.2=0时转移
JNCMSTOP3
LCALLDELAY1;延时
MOVA,50H
INC50H
CJNEA,#00H,HJ2
LJMPN0
HJ2:
MOVC,P1.2
JNCMSTOP3
INC24H;小时加一
MOVA,24H
CJNEA,#24,GO22;小时计数循环
MOV24H,#00H;复位
MOV38H,#00H
MOV39H,#00H
LJMPN0
N1:
P1.1,N2;P1.1=1时转移
MOVC,P1.1
JCN1
LCALLDELAY1;延时
JCN1
MSTOP4:
MOVC,P1.1;P1.1=0时转移
JNCMSTOP4
LCALLDELAY1;延时
MOVC,P1.1
JNCMSTOP4
INC23H;分钟加一
MOVA,23H
CJNEA,#60,GO21;分钟计数循环
MOV23H,#00H;复位
MOV36H,#00H
MOV37H,#00H
LJMPN0
GO21:
MOVB,#0AH
DIVAB
MOV36H,B;将A的低4位存入36单元
MOV37H,A;将A的高4位存入37单元
LJMPN0
GO22:
MOVB,#0AH
DIVAB
MOV38H,B;将A的低4位存入38单元
MOV39H,A;将A的高4位存入39单元
LJMPN0
N2:
P1.0,N0;P1.0=1时转移
MOVC,P1.0
JCN2
LCALLDELAY1;延时
MOVC,P1.0
JCN2
STOP2:
MOVC,P1.0
JNCSTOP2
LCALLDELAY1
MOVC,P1.0
JNCSTOP2
MOV50H,#00H
LJMPMAIN
;*******闹钟判断*****************
TIMEPRO:
MOVA,21H
MOVB,23H
CJNEA,B,BK;判断定时闹钟的分钟
MOVA,22H
MOVB,24H
CJNEA,B,BK;判断定时闹钟的小时
SETB25H.0
MOVC,25H.0
LCALLTIMEOUT;调用TIMEOUT
BK:
RET
;**************喇叭报警*****************
TIMEOUT:
X1:
LCALLBZ;调用喇叭响应程序
CLR25H.0;调用喇叭响应程序结束
LCALLDELAY;延时
CLR25H.0
LJMPDISPLAY1
BZ:
MOVC,25H.1
MOVP1.6,C
CLRP1.7
MOVR7,#0FFH;喇叭响应时间
T2:
MOVR6,#0FFH
T3:
DJNZR6,T3
DJNZR7,T2
SETBP1.7
RET
;*************显示闹钟时间************
LOOKATIME:
LCALLDISPLAY2
MM:
JNBP1.0,LOOKATIME
LCALLDELAY1
LJMPMAIN
DELAY1:
MOVR4,#14H;时间延时
DL001:
MOVR5,#0FFH
DL111:
DJNZR5,DL111
DJNZR4,DL001
RET
;***********定时**************
TIME:
PUSHACC;保护现场
PUSHPSW
MOVTH0,#03CH;初值
MOVTL0,#0B0H
DJNZR2,RET0
MOVR2,#14H
MOVA,20H
CPL25H.1
CLRC
INCA;秒自加一
CJNEA,#3CH,GO1;秒计数循环
MOV20H,#0;复位
MOV30H,#0
MOV31H,#0
MOVA,21H
INCA;分钟自加一
CJNEA,#3CH,GO2;分钟计数循环
MOV21H,#0H;复位
MOV32H,#0
MOV33H,#0
MOVA,22H
INCA;小时自加一
CJNEA,#18H,GO3;小时计数循环
MOV22H,#00H;复位
MOV34H,#0
MOV35H,#0
AJMPRET0
GO1:
MOV20H,A
MOVB,#0AH
DIVAB
MOV31H,A;将A的低4位存入31单元
MOV30H,B;将A的高4位存入30单元
AJMPRET0
GO2:
MOV21H,A
MOVB,#0AH
DIVAB
MOV33H,A;将A的低4位存入33单元
MOV32H,B;将A的高4位存入32单元
AJMPRET0
GO3:
MOV22H,A
MOVB,#0AH
DIVAB
MOV35H,A;将A的低4位存入35单元
MOV34H,B;将A的高4位存入34单元
AJMPRET0
RET0:
POPPSW;恢复现场
POPACC
RETI
;********显示子程序**********
DISPLAY1:
MOVR0,#30H
MOVR3,#0FEH
MOVA,R3
PLAY1:
MOVP2,A
MOVA,R0;取要显示的数据
MOVDPTR,#DSEG1;指向字形段码首地址
MOVCA,A+DPTR
CJNER0,#34H,PA
ORLA,#80H
PA:
CJNER0,#32H,PB
ORLA,#80H
PB:
CPLA;查表取字形段码
MOVP0,A;指向P0口
LCALLDL1
MOVP2,#0FFH
MOVA,R3;判断是否显示到最低位
RLA;左移一位
JNBACC.6,LD1
INCR0;缓冲器地址加一
MOVR3,A
LJMPPLAY1
LD1:
RET
DISPLAY2:
PUSHACC;保护现场
PUSHPSW
MOVR0,#36H
MOVR3,#0FBH
MOVA,R3
PLAY2:
MOVP2,A
MOVA,R0;取要显示的数据
MOVDPTR,#DSEG1;指向字形段码首地址
MOVCA,A+DPTR
CJNER0,#38H,PP
ORLA,#80H
PP:
CPLA;查表取字形段码
MOVP0,A;指向P0口
LCALLDL1;调用DL1
MOVP2,#0FFH
MOVA,R3;判断是否显示到最低位
RLA;左移一位
JNBACC.6,LD2
INCR0;缓冲器地址加一
MOVR3,A
LJMPPLAY2;调用PLAY2
LD2:
POPPSW
POPACC;恢复现场
RET
;******DELAY*******
DL1:
MOVR7,#20H
DL:
MOVR6,#20H
DL6:
DJNZR6,$
DJNZR7,DL
RET
DSEG1:
DB3FH,06H,5BH,4FH,66H;七段码表
DB6DH,7DH,07H,7FH,6FH
END
7.参考文献
[1].王建校,建国.51系列单片机与C51程序设计.:
科学,2002.
[2].吴金戊,庆阳等.8051单片机实践与应用.:
清华大学,2002.
[3].建忠.单片机原理与应用(第二版).:
电子科技大学,2008.2.
[4].毅刚.新编MCS-51单片机应用设计(第3版).:
工业大学,2006.10.
[5].学礼.基于Proteus的8051单片机实例教程.电子工业出版时间,2008.6.
[6].XX文库:
wenku.baidu./view/a9243c18fad6195f312ba6d3.html
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 时钟 控制器 设计 课程设计 报告 论文