单片机数字时钟课程设计
单片机课程设计
第1章 概述
近年来,随着电子产品的发展,随着社会竞争的激烈,人们对数字时钟的要求越来越高。时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间,忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。
因此从人们的日常生活到工厂的自动控制,从民用时钟到科学发展所需的时钟,现代人对时间的精度和观察时间的方便有了越来越多的需求。人们要求随时随地都能快速准确的知道时间,并且要求时钟能够更直观、更可靠、价格更便宜。这种要求催生了新型时钟的产生。
除此之外,由于对社会
责任
安全质量包保责任状安全管理目标责任状8安全事故责任追究制幼儿园安全责任状占有损害赔偿请求权
的更多承担,人们要求所设计的产品能够产生尽量少的垃圾、能够消耗尽量少的能量。因此人们对时钟的又有了体积小、功耗低的要求。
传统的机械表由于做工的高精细要求,造价的昂贵,
材料
关于××同志的政审材料调查表环保先进个人材料国家普通话测试材料农民专业合作社注销四查四问剖析材料
的限制,时间指示精度的限制,使用寿命方面,以及其它方面的限制,已不能满足人们的需求。另外,近些年随着科技的发展和社会的进步,人们对时钟的要求也越来越高,而使得新型电子钟表成了大势所趋。
20世纪末,电子技术获得了飞速的发展,在其推动下微机开始向社会各个领域渗透同时大规模集成电路获得了高速发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
另外单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,
1
单片机课程设计
具有更更长的使用寿命,因此得到了广泛的使用。
这正符合了现代时钟的设计要求。另一方面,电子技术的告诉发展,有力地推动了社会生产力的发展和社会信息化程度的提高,这些使时间显得更加宝贵,从时间就是生命,时间就是效率这些名言警句中就能看出。
数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字时钟及扩大其应用,有着非常现实的意义。
因此本论文所做的数字时钟采用了以单片机(STC89C51)为核心,结合相关的外围元器件例如液晶显示、按键电路、复位电路、报警电路,再配以相应的软件,达到制作简易数字钟的目的,能实现实时时钟显示的功能,能进行年、月、日、时、分、秒和实时温度的显示,并且有远程通信功能。其硬件部分难点在于元器件的选择、布局及焊接。
2
单片机课程设计
第2章 单片机数字时钟的原理 2.1
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
论证
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过1、2、3、3代的发展,正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、强I/O功能及较好的结构兼容性方向发展。
凌阳16位单片机有丰富的中断源准确度相当高,并且C语言和汇编兼容的编程环境也很方便来实现一些递归调用。I/O口功能也比较强大,方便使用。用凌阳16位单片机做控制器最有特色的就是它的可编程音频处理,可完成语音的录制播放和识别。这些都方便对设计进行扩展,使设计更加完善。成本也相对低一些。但是,在控制与显示的结合上有些复杂,显示模组资源相对有限,而且单片机的稳定性不是很高,而且就需要完成万年历这个不太复杂的设计可以不必用凌阳16位单片机来完成,采用单片机既能够实现既定功能,成本也不高。综合考虑最后选择用单片机来作为中心控制器件。
液晶显示效果出众,可以运用菜单项来方便操作,比较简单,所以,最后选择液晶显示方案。
传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。但是,如果在系统中采用时钟芯片DS1302,则能很好地解决这个问题。
2.2系统设计
2.2.1 晶体振荡器电路
晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数字钟的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都
3
单片机课程设计
使用了晶体荡器电路。本设计中的震荡电路如图2.1所示
图2.2.1 晶振电路
2.2.2 分频器电路
分频器电路将高频方波信号经分频后得到1Hz的方波信号供秒计数器进行计数,分频器实际上也就是计数器。
2.2.3 时间计数器电路
时间计数电路由秒个位和秒十位计数器,分个位和分十位计数器及时个位和时十位计数器电路构成,其中秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器而根据设计要求,时个位和时十位计数器为12进制计数器。 2.2.4 内部时钟电路
内部时钟电路如图3.2所示,在XTAL1和XTAL2引脚上外接定时元件,内部振荡电路就产生自激振荡。定时元件通常石英晶体和电容组成的并联谐振回路,晶体振荡器选择12MHZ,电容采用30PF。
图2.2.2 内部时钟电路
4
单片机课程设计
2.2.5复位电路
MCS-51单片机的复位是由外部的复位电路来实现的。复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
上电复位:上电复位电路是—种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。
图2.2.3 复位电路RC
上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。电路如图2.3所示
2.2.6 按键部分
本设计总的用了五个按扭开关作为键盘,用于调整时间和设置状态。电路如图3.4所示
5
单片机课程设计
图2.4 按键电路
2.2.7声光报警电路
利用单片机的IO口控制一个8550的三极管,三极管控制蜂鸣器的电源通断。
从而实现输出声音。声光报警电路如图2.5所示
图2.5 声光报警电路
6
单片机课程设计
第3章 硬件电路设计
3.1器件
6V电源
单片机1个
液晶显示器LCD12864 1个
DS1302 1个 DHT21 1个
电阻 10K的滑动变阻器1个、1K的电阻的2个、2K的1个、排阻1个、导线若干
8550三极管
晶振12M的一个 32768K的一个
电容(30P的4个)
蜂鸣器1个
LED二极管1个
1μf电容2个、47μf的电解电容1个、轻触开关6个、发光二极管2个 3.2 硬件介绍
3.2.1 AT89S52
本设计采用的是PDIP封装40管脚的单片机,各引脚如图3.1所示。40个引脚中, 4组8位共32个I/O口,正电源和地线两根,外置石英振荡器的时钟线两根,现在对这些引脚的功能加以说明:
(1)Pin9:RESET/Vpp复位信号复用脚,当AT89S52通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统开始复位。而RESET由高电平下降为低电平后,系统即从0000H地址单元开始执行程序。
(2)Pin29:PESN当访问外部程序存储器时,此脚输出负脉冲选通信号,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。
(3)Pin30:ALE/PROG 地址锁存允许信号端。单片机上电后,ALE引脚不断向外输出正脉冲信号, ALE信号可以用作对外输出时钟或定时信号。
(4)Pin31:EA/Vpp程序存储器的内外部选通线,89S52单片机,内置有4kB的
7
单片机课程设计
程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指
令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。
图3.1 AT89S52的PDIP封装引脚图
3.2.2 LCD12864简介
1.概述
带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块
2. 基本特性
(1)低电源电压(VDD:+3.0--+5.5V)
(2)显示分辨率:128×64点
8
单片机课程设计
(3)内置汉字字库,提供8192个16×16点阵汉字(简繁体可选) (4)内置 128个16×8点阵字符
(5)2MHZ时钟频率
(6)显示方式:STN、半透、正显
(7)驱动方式:1/32DUTY,1/5BIAS
(8)视角方向:6点
(9)背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10 (10)通讯方式:串行、并口可选
(11)内置DC-DC转换电路,无需外加负压
(12)无需片选信号,简化软件设计
(13)工作温度: 0? - +55? ,存储温度: -20? - +60?
3.2.3 DS1302
S1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5,5.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。DS1302的外部引脚分配如图3.1所示及内部结构如图3.2所示。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中各引脚的功能为:
Vcc1:主电源;Vcc2:备份电源。当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2< Vcc1时,由Vcc1向DS1302供电。SCLK:串行时钟,输入; I/O:三线接口时的双向数据线;CE:输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。
9
单片机课程设计
图3.1 DS1302的外部引脚分配
图3.2 DS1302的内部结构
3.2.4 DHT21
DHT21数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集激素和和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个NTC测湿元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT21传感器都在极为精确的湿度校验室进行校准。校准系数以程序的形式储存在OPT内存中,传感器内部在
检测
工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训
检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离高达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选择。产品为4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。
10
单片机课程设计
第4章 软件设计 4.1程序框图
开始
开启定时器1
50ms中断一次;counter++
counter=20
Y
second++; counter置位0
second=60
Y
minute++; second置位0
minute=60
Y
hour++; minute置位0
hour=24
结束
4.2系统程序清单
#include
#include
11
单片机课程设计
#define uchar unsigned char
#define uint unsigned int
uchar code DSY_CODE[] =
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
uchar DSY_BUFFER[] = {0,0,0xBF,0,0,0xBF,0,0};
uchar Scan_BIT;
uchar DSY_IDX;
uchar Key_State;
uchar h,m,s,s100;
void DelayMS(uchar x)
{
uchar i;
while(x--) for(i = 0; i<120;i++); }
void Increase_Hour()
{
if(++h > 23) h = 0;
DSY_BUFFER[0] =DSY_CODE[h / 10];
DSY_BUFFER[1] =DSY_CODE[h % 10]; }
void Increase_Minute()
{
if(++m > 59)
{
m = 0;Increase_Hour();
}
DSY_BUFFER[3] =DSY_CODE[m / 10];
DSY_BUFFER[4] =DSY_CODE[m % 10];
12
单片机课程设计
}
void Increase_Second()
{
if(++s > 59)
{
s =0 ; Increase_Minute(); }
DSY_BUFFER[6] =DSY_CODE[s / 10];
DSY_BUFFER[7] =DSY_CODE[s % 10]; }
void T0_INT() interrupt 1 {
TH0 = (65536 - 1000 ) / 256;
TL0 = (65536 - 1000 ) % 256;
P3 = Scan_BIT;
P0 = ~DSY_BUFFER[DSY_IDX];
Scan_BIT = _crol_(Scan_BIT,1);
DSY_IDX=(DSY_IDX+1)%8;
}
void T1_INT() interrupt 3 {
TH1 = (65536 - 50000) / 256;
TL1 = (65536 - 50000) % 256;
if ( ++s100 == 20)
{
s100 = 0; Increase_Second();
}
} void main()
13
单片机课程设计
{
P0 = P3 = 0xFF;
TMOD = 0x11;
TH0 = (65535 - 1000) / 256;
TL0 = (65535 - 1000) % 256;
TH1 = 0xDC;
TL1 = 0;
TCON = 0x01;
EA = 1;
ET0 = 1;
ET1 = 1;
h = 12; m = s = s100 = 0;
DSY_BUFFER[0] = DSY_CODE[h / 10];
DSY_BUFFER[1] = DSY_CODE[h % 10];
DSY_BUFFER[3] = DSY_CODE[m / 10];
DSY_BUFFER[4] = DSY_CODE[m % 10];
DSY_BUFFER[6] = DSY_CODE[s / 10];
DSY_BUFFER[7] = DSY_CODE[s % 10];
Scan_BIT = 0xFE;
TR0 = TR1 = 1;
Key_State = 0xFE;
while(1)
{
if (P1 ^ Key_State)
{
DelayMS(10);
if (P1 ^ Key_State)
{
Key_State = P1;EA= 0;
14
单片机课程设计
if((Key_State & 0x01) == 0) Increase_Hour();
else if((Key_State & 0x02) ==0)
{
m = (m + 1) % 60;
DSY_BUFFER[3] = DSY_CODE[m / 10];
DSY_BUFFER[4] = DSY_CODE[m % 10];
}
EA = 1;
}
}
}
}
15
单片机课程设计
第5章 总结
这次是单片机的第一次课程设计比以往的课程设计要难,不仅仅是只写论文就可以了,还得自己买电器元气,自己做电路板。这在很大程度上锻炼了我们各自的思考能力和动手能力,避免了以往的抄袭和偷懒的行为,凡是都是自己亲力亲为,这样就将自己以前不懂的、一知半解的一网打尽。但在老师的指导下和同学们的帮助下经过两个多星期的不停的设计,终于把STC89S52单片机芯片数字时钟的电路原理图以及单片机实物完成了。经过了这次课程设计,极大地提高了我的独立思考
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
问题的能力,同时激发了我对这方面的兴趣。
这次课程设计,让我学到了很多有用的知识和加强了能力,让我知道了STC89S52在整个时钟电路中的作用以及各部分电路的原理,更是看到了上拉电阻的作用,通过做出一个实物来,自己在焊接方面的技术也有的很大的提高。可谓受益匪浅,当然也发现自己许多不足之处,尤其是在理论与实践中脱节。也体会到其实自己想到的并不一定是自己能够轻易做到的,凡事都要靠自己的不断实践,进而将自己的实践水平不断提高到相应的理论水平上来,当然自己的理论知识也不够火候,还得努力加强。这次课程设计明白其实动手操作是以牢固的理论知识为基础的。因而这就要求我更加努力去学好课本知识。
在这次的课程设计中主要用的软件就是Proteus,之前我对它的了解是少之甚少,更别说用。刚开始设计电路图是完全就无从下手,最后没办法只好拿起以前的书本从头学起,幸好在同学的帮助与鼓励下,循序渐进,总算能够独立画出自己想画的电路了,虽然比那些学得好的同学画的差很多,但心里很高兴,因为自己学到了东西,我觉得每一次的课程设计不仅很有必要也很有意义,因为它能让我们既学到知识又让我们体会到了学习的快乐。
16
单片机课程设计
参考文献
[1] 余锡存,曹国华.《单片机原理及接口技术》.西安电子科技大学出版社 [2] 张志良, 主编 :《单片机原理及控制技术》(第2版)(北京:机械工业出版社
[3] 余永权, 《MCS-51系列单片机实用接口技术》.北京:北京航空航天大学出版
[4] 余西存, 曹国华.《单片机原理及接口技术》.西安:西安电子科技大学出版 [5] 《求是科技,单片机典型模块设计实例导航》.北京:人民邮电出版社 [6] 张振荣, 晋明武.《MSC-51系列单片机原理及实用技术》. 人民邮电出版社 [7] 吉雷, 主编 :《Protel99从入门到精通》.西安:西安电子科技大学出版社
17