单片机课程设计定时闹钟设计Word格式.docx
- 文档编号:20552765
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:25
- 大小:269.69KB
单片机课程设计定时闹钟设计Word格式.docx
《单片机课程设计定时闹钟设计Word格式.docx》由会员分享,可在线阅读,更多相关《单片机课程设计定时闹钟设计Word格式.docx(25页珍藏版)》请在冰豆网上搜索。
[2]杜树春.单片机C语言和汇编语言混合编程实例详解.北京:
北京航空航天大学出版社,2006.6
[3]张毅刚·
单片机原理及应用·
北京:
高等教育出版社,2009·
2
工作计划:
5月7号接受任务,分析题目并查阅相关资料,做出整体硬件电路的设计方案。
5月8号-9号根据所提出电路的设计方案,绘制硬件电路。
5月10号查阅资料,分析所设计系统的软件结构,并做出设计方案。
5月11号-12号由系统软件的设计方案,绘制程序流程图,并且根据流程图编写系统程序。
5月15号结合程序和硬件电路,用Proteus、Keil、Matlab进行电路仿真调试,
5月16号-18号进行焊接,调试仿真,完成设计验收上交设计报告。
任务下达日期:
2012年5月7日
任务完成日期:
2012年5月18日
指导教师(签名):
学生(签名):
摘要:
定时闹钟设计主要有硬件部分和软件部分组成,硬件部分以单片机为核心,在其周围有电源电路、时钟电路、复位电路、驱动电路和显示电路组成。
软件部分用汇编语言编程,用keil软件编译、调试。
最后用proteus软件仿真,形成以单片机为枢纽,以程序为动力,使闹钟实现功能。
关键词:
AT89S52定时闹钟keilproteus汇编语言
目录
1.设计背景…………………………………………………1
1.1设计课题及目的…………………………………………1
1.2相关技术与应用领域…………………………………………1
2.设计方案…………………………………………………………1
2.1总体方案……………………………………………………1
2.2硬件设计………………………………………………………2
2.3软件设计………………………………………………………7
3.方案实施…………………………………………………………8
3.1方案流程图………………………………………………………8
3.2proteus的系统仿真……………………………………………8
4.结果与结论………………………………………………………9
4.1课程设计结果……………………………………………………9
4.2课程设计结论……………………………………………………9
5.收获与致谢…………………………………………………………9
6.参考文献……………………………………………………………10
7.附件…………………………………………………………………11
7.1系统总体电路图…………………………………………………11
7.2系统实物图…………………………………………………………11
7.3程序源代码…………………………………………………………12
7.4元器件清单…………………………………………………………16
1.设计背景
1.1设计课题及目的
本课题是以单片机为核心,通过动态扫面的方式,实现定时闹钟功能。
单片机即单片微型计算机,是集CPU,RAM,ROM,定时,计数,和多种接口于一体的微控制器,他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上,AT89S52单片机是各单片机中比较具有代表性的一种。
这次课程设计通过对他的学习,应用,从而达到学习,设计,开发软硬件的能力.
1.2相关技术与应用领域
电子闹钟是采用数字电路实现对时分秒数字显示的机试装置,广泛用于个人家庭,车站,码头办公室等公共场所,称为人们日常生活中不可缺少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超于老式钟表,中标的数字化给人们生产生活带来了极大的方便,而且大大地拓展了钟表的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动启闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
数字钟已经成为人们日常生活中必不可少的必需品,广泛用于个人家庭、车站、码头、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优势,它还用于计时自动报时及自动控制的领域。
因此,研究定时数字闹钟及扩大其应用,有着非常现实的意义。
2.设计方案
2.1总体方案
2.1.1方案比较
方案一:
采用数字电路实现。
数字电子钟是用数字集成电路构成的,用数码管显示“时”,“分”,“秒”的现代计时装置。
若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。
方案二:
用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,另外,使用是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。
经过上面的对比本设计采用单片机作为设计的主体
本系统采用单片机AT89S52作为本设计的核心元件,利用7段共阳LED作为显示器件。
接入共阳LED显示器,可显示,分钟,秒,单片机外围接有定时报警系统,定时时间到,扬声器发出报警声,提示预先设定时间到。
电路有下列部分组成:
时钟电路、复位电路、控制电路、LED显示,报警电路,芯片选用AT89S51单片机。
系统基本框图:
图1系统基本框图
2.2硬件设计
2.2.1单片机AT89S52
AT89S52为ATMEL所生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flsah存储器。
(一)、AT89S52主要功能列举如下:
1、拥有灵巧的8位CPU和在系统可编程Flash
2、晶片内部具时钟振荡器(传统最高工作频率可至12MHz)
3、内部程序存储器(ROM)为8KB
4、内部数据存储器(RAM)为256字节
5、32个可编程I/O口线
6、8个中断向量源
7、三个16位定时器/计数器
8、三级加密程序存储器
9、全双工UART串行通道
(二)、AT89S52各引脚功能介绍:
图2AT89S52管脚图
VCC:
AT89S52电源正端输入,接+5V。
VSS:
电源地端。
XTAL1:
单芯片系统时钟的反相放大器输入端。
XTAL2:
系统时钟的反相放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一20PF的小电容,可以使系统更稳定,避免噪声干扰而死机
RESET:
AT89S52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。
EA/Vpp:
"
EA"
为英文"
ExternalAccess"
的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。
因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。
如果是使用8751内部程序空间时,此引脚要接成高电平。
此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。
ALE/PROG:
ALE是英文"
AddressLatchEnable"
的缩写,表示地址锁存器启用信号。
AT89S52可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0~A7)锁进锁存器中,因为AT89S52是以多工的方式送出地址及数据。
平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。
此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。
PSEN:
此为"
ProgramStoreEnable"
的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。
AT89S52可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。
PORT0(P0.0~P0.7):
端口0是一个8位宽的开路汲极(OpenDrain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。
其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。
如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0~A7)及数据总线(D0~D7)。
设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0~A7,再配合端口2所送出的A8~A15合成一完整的16位地址总线,而定址到64K的外部存储器空间。
PORT2(P2.0~P2.7):
端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。
P2除了当做一般I/O端口使用外,若是在AT89S52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当做I/O来使用了。
PORT1(P1.0~P1.7):
端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LSTTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。
如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。
PORT3(P3.0~P3.7):
端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。
其引脚分配如下:
P3.0:
RXD,串行通信输入。
P3.1:
TXD,串行通信输出。
P3.2:
INT0,外部中断0输入。
P3.3:
INT1,外部中断1输入。
P3.4:
T0,计时计数器0输入。
P3.5:
T1,计时计数器1输入。
P3.6:
WR:
外部数据存储器的写入信号。
P3.7:
RD,外部数据存储器的读取信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
反向振荡放大器的输入及内部时钟工作电路的输入。
来自反向振荡器的输出。
2.2.2时钟电路
单片机的时,钟产生方法有两种:
内部时钟方式和外部时钟方式。
本系统中AT89S52单片机采用内部时钟方式。
最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。
震荡晶体为1.2MHz~12MHz之间。
电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响。
AT89S52单片机的时钟电路如图3所示。
图3时钟电路
2.2.3数码管显示电路
单片机中通常使用7段LED,LED是发光二极管显示器的缩写。
LED显示器由于结构简单,价格便宜,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,颜色鲜艳,配置灵活,与单片机接口方便而得到广泛使用。
图4引脚配置
LED七段数码管显示器由8个发光二极管组成显示字符,根据内部发光二极管的连接形式不同,LED有共阳和共阴极两种,如上图4所示:
采用高亮共阴型数位数码管,为示区别,显示秒的两个数码管个头较小,另外4个较大。
共阴数码管接线如下:
一般用7个发光二极管构成显示数字和符号,另外还用一段发光二极管显示小数点。
这种显示器一般分为两种,共阴极显示器是把每个二极管的阴极连在一起,共阳极显示器是把每个二极管的正端连在一起。
一只显示器是有8个发光二级管构成,当把某段加正向电压时,则该段所对应的笔划亮,不加正向电压则暗,为了保护各种不收损坏需要加限流电阻,无论是共阳极显示器还是共阴极显示器,它的8段排列顺序都是一样的:
A段、B段、C段、D段、E段、F段、G段、和DP段。
在单片机中通常使用7段LED。
2.3软件设计
2.3.1系统软件设计
该系统软件主要是有主程序模块,定时中断服务程序,终端等待服务程序,键盘程序,显示子程序等六大模块组成,因为汇编语言使用助记符,符号和数字等来表示指令程序的语言,容易理解和记忆,所以我们用汇编语言来写程序。
2.3.2LED
七段LED由七个发光二级管按日字排开,所有发光二极管的阳极连在一起成共阳极。
当采用芯片驱动时不需要加限流电阻,其他情况下一般应用外接限流电阻。
动态显示电路有显示快,字型码封锁驱动器,字位锁存驱动器三部分组成。
2.3.3蜂鸣报警电路
在AT89s52外围的一个管口上加蜂鸣器,通过软件与硬件的结合可实现定时闹钟功能。
2.3.4电源电路
电源电压稳压流程方框图如图5。
图5电源电压稳压流程方框图
电源电路如图6所示,220V交流电经过变压器,再经过桥堆2W10整流,然后由电容C6滤波后变为脉动比较稳定的直流电,最后通过三端稳压器7805输出稳定的5V直流电压。
图中C5用于抵消输入线产生的电感效应,以防止电路产生自激振荡其容较小,一般小于1μF。
电容C4用于消除输出电压的高频噪声,可取小于1μF的电容,也可取几微法甚至几十微法的电容,以便输出较大的脉动电流。
图6电源电路
3.方案实施
3.1系统流程图
图7程序流程图
3.2proteus的系统仿真
操作过程:
设几个按键从上往下为k1,k2,k3,k4。
k1与p1.0相连,k2与p1.1相连,k3与p1.2相连,k4与p1.4相连。
当需要设定当前时,按一下k1键,进入时间设定状态,按一下k2,小时加1,按一下k3,分加1.如此反复来设定当前时间。
调好时间后按k4退出当前设定状态。
如下图6:
4.结果与结论
4.1课程设计结果
经过多次的软件仿真测试,该系统均能够产生与我们设计目标相符的结果。
但是在元器件焊接完毕之后,却不能够正常的工作,经过多方查证,觉得可能是由于电阻电容等器件参数设置有误,导致电源模块不能够正常供电。
之后我们对电路的原理图又进行了进一步的分析,更换了几个电阻和电容之后,定时闹钟终于能够正常工作了。
4.2课程设计结论
对电路的分析,对元器件参数的设置,这些都是影响一件产品能否正常运行的重要指标,有时候理论上成功,并不代表实际生产能够成功,我们必须进行反复的、细致的研究。
5.收获与致谢
这是我第一次用单片机设计制作系统,在设计过程中,我对单片机了解进一步加深,学会了对keil软件和proteus软件的使用。
程序是整个系统的核心,没有程序,硬件就无法运行,所以程序成为了我们组重点解决的问题。
学好每一个软件的使用方法,自己就可以在软件里做自己想实现的功能。
单片机作为我们的主要专业课之一,虽然在开学初我们对这门课并没有什么兴趣,觉得那些程序枯燥乏味,但在这次课程设计后,我发现自己在一点一滴的努力对单片机的兴趣也在逐渐增加,我觉得做单片机课程设计是十分有意义的,而且是十分必要的,在一度过的大学时间里,我们大多数接触的是专业课,我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力,如何把我们所学的专业基础理论知识运用到实践中去呢?
我想做课程设计就为我们提供了良好的实践平台。
要做好一个课程设计,就必须做到:
在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内部有哪些资源,要有一个清晰的思路和一个完整的软件流程图,再设计程序时,不要妄想一次就将整个程序设计好,反复修改,不断改进是程序设计的必经之路。
回顾此次单片机课程设计,从理论到实践的日子这两个星期了,自己之前对单片机课程学习的不够,最后吃了很大的苦头,由于之前知识的欠缺导致在本次实习中,遇到很多问题,程序的编写,硬件和软件的设计。
第一星期大家主要是对软件和硬件的设计,第二星期,主要负责元器件的焊接,之前有多焊接的实操,所以进行起来比较上手,出现的问题就是用万用板时元器件的排版和布局。
最后,通过这次的课程设计使我懂得自己的知识还远远不够,只有不断的学习才能成就一个自我。
同时要感谢我们的指导老师郭丽霞老师对我们这两个星期的指导和讲解,也感谢我们的团队。
6.参考文献
7.附件
7.1系统总体电路图
7.2系统实物图
7.3程序源代码
ORG0000H
LJMPMAIN
ORG000BH
LJMPTIME
×
主程序部分×
ORG0100H
MAIN:
MOVSP,#50H
MOV20H,#00H
MOV21H,#00H
MOV22H,#00H
MOV23H,#01H
MOV24H,#01H
MOV25H,#00H
MOV30H,#00H
MOV31H,#00H
MOV32H,#00H
MOV33H,#00H
MOV34H,#00H
MOV35H,#00H
MOV36H,#01H
MOV37H,#00H
MOV38H,#01H
MOV39H,#00H
MOVTMOD,#01H;
16位计数器
MOVTH0,#03CH;
赋计数初值
MOVTL0,#0B0H
MOVIE,#10000111B
SETBTR0;
T0启动计数
MOVR2,#14H
MOVP2,#0FFH
LOOP:
LCALLTIMEPRO
LCALLDISPLAY1
JBP1.0,M1
LCALLSETTIME;
调用设定时间程序
LJMPLOOP
M1:
JBP1.1,M2
LCALLSETATIME
LJMPLOOP
M2:
JBP1.3,M4
LCALLLOOKATIME
M4:
DELAY:
MOVR4,#030H
DL00:
MOVR5,#0FFH
DL11:
MOVR6,#9H
DL12:
DJNZR6,DL12
DJNZR5,DL11
DJNZR4,DL00
RET;
设定时间程序×
SETTIME:
L0:
LCALLDISPLAY1
MM1:
JBP1.1,L1
MOVC,P1.1
JCMM1
LCALLDELAY1;
调用延时
JCMM1
MSTOP1:
MOVC,P1.1
JNCMSTOP1;
判断P1.1是否释放?
释放则继续
JNCMSTOP1
INC22H
MOVA,22H
CJNEA,#18H,GO12
MOV34H,#00H
MOV35H,#00H
LJMPL0
L1:
JBP1.2,L2
MOVC,P1.2
JCL1
LCALLDELAY1
MSTOP2:
MOVC,P1.2
JNCMSTOP2;
判断P1.2是否释放?
释放则继续
JNCMSTOP2
INC21H
MOVA,21H
CJNEA,#3CH,GO11
GO11:
MOVB,#0AH
DIVAB
MOV34H,B
MOV35H,A
LJMPL0
L2:
JBP1.3,L0
MOVC,P1.3
JCL2
LCALLDELAY1
MOVC,P1.3
STOP1:
MOVC,P1.3
JNCSTOP1
设置闹钟时间×
SETATIME:
LCALLDISPLAY2
N0:
MM2:
JBP1.2,N1;
判断P1.2是否按下?
JCMM2
MSTOP3:
JNCMSTOP3
LCALLDELA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 定时 闹钟 设计