51单片机课程设计.docx
《51单片机课程设计.docx》由会员分享,可在线阅读,更多相关《51单片机课程设计.docx(17页珍藏版)》请在冰点文库上搜索。
51单片机课程设计
目录
1绪论-1-
2系统方案与论证-1-
2.1统设计与结构框图-1-
2.2方案论证及选择-2-
2.2.1时钟电路部分-2-
2.2.2止闹功能-2-
2.2.3显示模块的选择-3-
2.3测温部分-3-
3系统硬件设计-3-
3.151最小系统-3-
3.2时钟芯片DS12C887-4-
3.2.1DS12C887各引脚功能-4-
3.2.2DS12C887各寄存器地址-4-
3.2.3DS12C887的典型应用:
-5-
3.3闹铃提醒电路-5-
3.4测温模块-5-
3.5显示模块-6-
3.6非接触式止闹功能电路-7-
3.7电源模块-7-
4系统软件设计-8-
4.1软件流程图:
-8-
5结论-8-
参考文献-9-
致谢-10-
附录-11-
多功能时钟设计
摘要本作品是以89C52单片机为核心,12C887时钟芯片、12864液晶显示器、18B20温度传感器以及信号处理电路构成的24小时制多功能数字钟。
这种多功能数字钟不仅具有了一般数字钟的基本功能,并且具有以下功能:
闹钟时间设置、闹钟开关、非接触式止闹功能,显示年月日,实时检测环境温度,既可以使用220V市电,也可以使用电池进行供电等一系列功能。
拥有这样的闹钟,不仅可以设定所需时间,而且可以随时检测室内温度,同时可以实现非接触关闭闹铃,这无疑给我们带来了许多的方便。
在电子产品盛行的今天,如此新颖又有较高使用价值的闹钟相信会有很好的发展空间。
关键词89C52;12C887;温度传感器;非接触式止闹
1绪论
20世纪末,单片机技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代节奏也越来越快。
目前单片机正朝着高性能和多品种方向发展。
进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格等几个方面发展。
数字钟是对年、月、周、日、时、分、秒数字显示及到时提醒的计时装置,广泛应用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可缺少的必需品。
由于数字集成电路的发展和石英晶体振荡器的广泛使用,使得数字钟的精度远远超过老式时钟,钟表的数字化给人们生活带来了极大地便利,而且大大扩展了钟表原先的报时功能。
诸如定时报警、按时自动打铃、定时广播甚至何种定时电器的自动启用。
2系统方案与论证
2.1统设计与结构框图
根据设计要求和设计指标需要,系统主要由:
微控制器模块、显示模块、按键模块、声光器模块、时钟芯片模块、温测量模块、红外开关模块,电源等组成。
系统总体结构框图如图2.1所示。
图2.1系统总体结构框图
2.2方案论证及选择
2.2.1时钟电路部分
方案一:
利用单片机内部的定时功能来实现时钟的走时,通过计算可知,使定时器每25ms产生一次中断,当产生40次中断后秒单元将加一,以此类推,从而实现时、分、秒的走时,并加以显示。
由于这种方式在断电的情况下将停止走时,且通电后必须再初始化,而且需要调表,故不用此方法。
方案二:
我们选用DS12C887时钟芯片,这是一种跨越2000的时钟芯片,它是DS1287的增强型品种。
它内含晶体振荡器、振荡电路、充电电路和可充电锂电池并且封装成一个集成模块,这种芯片可记录时间,年、月、日,并且成功解决“千年虫”问题,是一种广泛应用的万年历时钟芯片。
基于以上内部结构,该芯片具有记忆、掉电重起、时间准确不需重新调表的优点。
由于它内部装有锂电池,断电后系统依然可靠运行。
对于芯片的软件编程,首先,需要对其进行初始化,对芯片内部寄存器设立标志位并赋初值,同时加载时钟的计数初值。
初始化完成后,即可以在该芯片中读取时间。
该芯片口地址为0BF00H,读过此地址,把数读出,并放入一储存单元,同时调用显示子程序进行显示。
故采用方案二。
2.2.2止闹功能
一般钟表都具有闹钟功能,定时时间到,便自动启动闹钟,发出铃声、音乐声以提醒人们,再由人按下止闹按钮停止闹钟工作。
一般每天只能设置一次闹钟、并要由人按下按钮止闹,使用不是很方便。
智能处理器应用可改变这种状况,一天可按自己需要设置闹钟的开关、多次闹钟设置并可用非接触方式止闹。
方案一:
采用声音控制实现非接触止闹功能,优点是方便,但由于声控存在灵敏度的问题,在现场条件差的环境中较容易引起误动作。
方案二:
采用红外实现非接触止闹功能,因为光电开关利用物体对红外线的反射,可检测到物体的有无,方便有效,人只需挥挥手就可产生信号,完成止闹功能。
故设计采用光电开关止闹形式。
2.2.3显示模块的选择
方案一:
采用数码管显示。
数码管亮度高、体积小、重量轻,但其显示信息简单、有限,在本题目中应用受到很大的限制。
方案二:
采用液晶显示。
液晶显示功耗低,轻便防震。
由于本题显示信息比较复杂,采用液晶显示界面友好清晰,操作方便,显示信息丰富。
故采用方案二。
2.3测温部分
方案一:
使用热敏电阻器。
热敏电阻器是利用对温度敏感的半导体材料制成的,可以通过电阻值的改变来产生变化的电压信号,以实现对温度的检测,但是它的线性不是很好,需要线性校正电路,比较复杂,故不选此方案。
方案二:
使用元件AD590,AD590是恒流源式的温度传感器,它的测温范围是-55℃~150℃,完全符合题目的要求0~60℃。
其电源电压可取+4~+30V之间的任意值。
AD590是二端元件,线性度极好,工作电压范围宽(4~30V),基于以上优点,我们采用方案二。
3系统硬件设计
3.151最小系统
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。
另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35Mhz,6T/12T可选。
图3.151最小系统
3.2时钟芯片DS12C887
由于DS12C887能够自动产生世纪、年、月、日、时、分、秒等时间信息,其内部又增加了世纪寄存器,从而利用硬件电路解决子“千年”问题;DS12C887中自带有锂电池,外部掉电时,其内部时间信息还能够保持10年之久;对于一天内的时间记录,有12小时制和24小时制两种模式。
在12小时制模式中,用AM和PM区分上午和下午;时间的表示方法也有两种,一种用二进制数表示,一种是用BCD码表示;DS12C887中带有128字节RAM,其中有11字节RAM用来存储时间信息,4字节RAM用来存储DS12C887的控制信息,称为控制寄存器,113字节通用RAM使用户使用;此外用户还可对DS12C887进行编程以实现多种方波输出,并可对其内部的三路中断通过软件进行屏蔽。
3.2.1DS12C887各引脚功能
*TOM:
计算机总线选择端;
*SQWF:
方波输出,速率是否输出有专用寄存器A,B的预制参数决定;
*AD0~AD7:
地址/数据双向总线,有ALE的下降沿锁存8位地址;
*WR:
写数据,低电平有效;
*ALE:
地址锁存器信号端,低电平有效;
*RD:
数据读信号端,低电平有效;
*CS:
选通信号端,低电平有效;
*IRQ:
中断请求,低电平有效,有专用寄存器决定;
*RESET:
复位端,低电平有效;*NC:
空引端。
3.2.2DS12C887各寄存器地址
地址单元
用途
地址单元
用途
00H
秒
01H
秒闹
02H
分
03H
分闹
04H
时
05H
时闹
06H
星期
07H
日(两位数)
08H
月(两位数)
09H
年(两位数)
0AH
寄存器A
0BH
寄存器B
0CH
寄存器C
0DH
寄存器D
表3.1寄存器的地址
3.2.3DS12C887的典型应用:
DS12C887采用连续工作制,一般无需每次初始化,即使在系统复位时也是如此。
但初始化时,首先应禁止芯片内的更新操作。
所以,应先将DS12C887内的寄存器B的位置“1”,然后再进行初始化各寄存器,再通过读写状态寄存器C,清除寄存器C中的周期中断标志位PF,报警中断标志位AF,更新周期中断标志位UF。
再通过读寄存器D中的VRT位后将自动使该位置“1”。
最后,将状态寄存器B中的SET位置“0”,芯片开始计时工。
图3.2时钟电路
3.3闹铃提醒电路
当闹钟定时到点时,会触发声、光报警,电路如图11所示。
3.4测温模块
DSl8B20数字温度传感器提供12位(二进制)温度读数指示器件的温度信息。
经过单线接口送入DSl8B20或从DSl8B20送出。
因此从主机CPU到DSl8B20仅需一条线(和地线)。
DSl8B20的电源可以由数据线本身提供而不需要外部电源。
因为每一个DSl8B20在出厂时已经给定了唯一的序号,因此任意多个DSl8B20可以存放在同一条单线总线上,这允许在许多不同的地方放置温度敏感器件。
DSl8B20的测量范围从-55℃到+125℃,分辨率可达0.0625℃,可在lS(典型值)内把温度变换成数字。
每只DS18B20都可以设置成两种供电方式即数据总线供电方式和外部供电方式,采取数据总线供电方式可以节省一根导线但完成温度测量的时间较长,采取外部供电方式则多用一根导线但测量速度较快,因此该系统采用外部供电方式。
图3.3测温电路
3.5显示模块
液晶特别是具有汉字显示功能的液晶显示器,来实现显示功能,不仅可以实现基本的显示信息,而且可以显示丰富的符号指示信息以及文字指示信息,如AM/PM,闹钟符号等,信息量丰富且直观易懂。
SMG12864是一种128*64点阵的液晶显示器。
其控制器内部有两个64*64位(512字节)的RAM缓冲区,用户可以通过控制器内部设定的数据地址页指针和列指针来访问全部RAM字节。
这里将SMG12864的数据口和数据总线相连,片选信号、读写控制信号、使能信号、复位信号等控制线与P1口的部分口线相连,通过单片机的控制可以方便的实现对液晶的写入。
SMG12864引脚说明见表3.2:
引脚
名称
方向
说明
引脚
名称
方向
说明
1
VLED
I
背光源负极
10
DB5
I
数据
2
VLED
I
背光源正极
11
DB6
I
数据
3
VSS
I
(+5)
12
DB7
I
数据
4
VDD
I
数据
13
BUSY
O
应答信号=1忙,=0空闲
5
DB0
I
数据
14
REQ
I
请求信号高电平有效
6
DB1
I
数据
15
RES
I
复位信号低电平有效
7
DB2
I
数据
16
NC
8
DB3
I
数据
17
RT1
LCD灰度调整,外接电阻端
9
DB4
I
数据
18
RT2
LCD灰度调整,外接电阻端
表3.2SMG12864引脚说明
3.6非接触式止闹功能电路
当闹钟定时到点时,会触发声、光报警,系统设计时采用漫射光电传感器检测人体止闹行为。
当人体靠近传感器20CM以内时,CPU会检测到传感器信号,自动发出停止闹钟行为。
图见2.4
图3.4非接触式止闹功能电路
3.7电源模块
220V经变压器降压、整流桥整流、电容滤波、7805稳压后与电池并联,给系统供电。
78**系列的稳压集成块的极限输入电压是36V,最低输入电压比输出电压高3-4V。
还要考虑输出与输入间压差带来的功率损耗,所以一般输入为9-15V之间。
7805典型应用电路图:
78XX系列集成稳压器的典型应用电路如下图所示,这是一个输出正5V直流电压的稳压电源电路。
IC采用集成稳压器7805,C5、C7分别为输入端和输出端滤波电容,P3接负载电阻。
当输出电流较大时,7805应配上散热板。
图3.5电源电路
4系统软件设计
4.1软件流程图:
图4.1主程序图
5结论
通过我们合作动手做课程设计使我们深刻认识到:
使我们更加认识到合作的重要性,做任何事情都要根据自己的能力订好合理的计划,合理分工,这样那个才能督促你,加强自己的时间观念;增强了我们的动手能力,培养了我们对实用电子学习的兴趣。
初步掌握了画图软件AltiumDesignerSummer09和编程软件KeiluVision3;通过写论文,使我们掌握了论文的写法,为以后毕业设计报告垫下了基础。
参考文献
[1]姜威.实用电子系统设计基础[D].北京理工大学出版社,2008.
[2]郭天祥.郭天祥51单片机C语言教程[D].电子工业出版社,2009,12.
[3]黄智伟.全国大学生电子科技竞赛训练教程[D].电子工业出版社,2010,6.
[4]余孟尝.数字电子技术基础简明教程[D].高等教育出版社,2006,7.
[5]童诗白华成英.模拟电子技术基础[D].高等教育出版社,2006,5.
[6]IbrahimKayaNusretTanDerekP.Atherton.ArefinementprocedureforPIDcontrollers[J].ElectricalEngineering,2006,5.
[7][美]KatsuhikoOgata.陆伯英,于海勋等(译).现代控制工程(第三版)[M].北京:
电子工业出版社,2000,3.
[8]KeithH.Billings,C.Eng.,M.I.E.E.,SWITCHMODEPOWERSUPPLYHANDBOOK[M],HammondManufacturingCompany,Ltd,2005.
[9]范立南.单片微型计算机控制系统设计[M].北京:
人民邮电出版社,2004.
[10]蔡明生.电子设计[M].北京:
高等教育教育出版社,2004.
[11]A.S.KKasalkin.ElectricalEngineering[M].MirPublishersMoscow,2004.
[12]王幸之.AT89系列单片机原理与接口技术[M].北京:
北京航空航天大学出版社,2004.
[13]PaulScherz发明都电子设计宝典.福建科学技术出版社著,2005.
致谢
首先我衷心感谢老师给予我的帮助在此期间,他们对我的指导为我指明了研究的方向,对我的鼓励使我勇于面对困难,对我的鞭策让我充满了前进的动力。
借此机会,向他们表示衷心的谢意!
其次,感谢实验室的老师帮助我很快的融入了实验室这个崭新的环境,和他们在学术上的讨论使我受益匪浅,与他们的友好相处使我的学习生活变得轻松愉快。
然后还要感谢大学所有的老师,为我们打下专业知识的基础;同时还要感谢所有的同学们,正是因为有了你们的支持和鼓励。
此次课程设计才会顺利完成。
最后,感谢我的母校-德州学院对我的大力栽培。
我还要感谢培养我长大含辛茹苦的父母,谢谢您们!
附录
1.总体电路图
2.程序
#include
#include
#include<12864yejing.h>
#include
#include
#include
voidmain()
{
lcd_init();
write_com(0x0c);
while
(1)
{
keyscan();
if(flag==0)
{
yejingxianshi();
/*****************闹钟声光报警**************************/
if((shi==ashi)&&(fen==afen)&&(miao==amiao))
flag_nao=1;
while(flag_nao==1)
{
di();
yejingxianshi();
if(flag_nao==1)
{
if((s2==0))/***红外遥控闹钟声音解除****/
{
delay(5);
if((s2==0))
{
while(!
s2);
flag_nao=0;
}
}
}
}
/******************整时校对******************/
if((fen==0)&&(miao==0))
flag1=1;
if(flag1==1)
{
while(i<50)
{
di();
i++;
yejingxianshi();
}
i=0;
flag1=0;
}
}
}
}