基于单片机的智能闹钟设计Word格式文档下载.docx
《基于单片机的智能闹钟设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能闹钟设计Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
soft,hardware
partofintelligent
digitalalarmclock
inthedesignprocessand
someproblemsinthe
designof
theprocessofdebugging
andsolutions.
Keywords:
Single-ChipMicrocomputer;
Intelligentdigitalalarmclock;
bellsystem
第一章前言
1.1前言
21世纪是信息时代,电子技术的飞速发展,令单片机以其体积小,价格低,在工业控制,自动化,家用电器,智能仪器仪表,航空航天,通信,导航,车载功能齐全,性价比高等优点在电子领域日益广泛的应用了起来。
电子信息技术的MCU开发已成为许多领域不可或缺的一项技术。
其中通信,自动化,机电一体化,电气等相关专业,工程技术人员尤其必须掌握。
SCM应用并不局限于它带来的绝对意义上的实用功能以及巨大的经济效益,更重要的是它从根本上改变了人们对传统的控制系统的设计思路和方法,前者必须是由模拟或数字电路来实现大部分控制功能,不易操作且成本较高,而现在实现了单芯片控制,能够使用仅仅一个芯片就取代了硬件和软件,不仅易操作和节约成本,还提高了系统性能控制技术即微控制技术,它的成立标志着一个新的概念。
单片机的众多优点及其鲜明的特点为其广泛普及以及后续的微控制技术将因此日益发展复杂,更加充实,成为今后技术开发领域冉冉升起的一颗新星。
本论文的目的是在理论研究的基础上,通过完成包括微控制器的资源和一个小的系统集成设计和编程功能的应用程序的应用,使我不但能够将在教室学习的理论知识和实际动手能力联系起来,而且还让我对电子电路,电子元器件等这方面书本以外的知识,进一步加深了解,以获得更全面的锻炼和提高。
本方案采用软件编程,涉及到设备的使用等布局调试技巧,丰富了自己的设计思维,为我以后能够独立开展今后的一些单片机的应用开发和设计工作打下了基础。
该论文通过采用89C51单片机为基础的智能型数字闹钟应用程序,实现了单芯片微控制器的电子钟系统控制打铃。
时间可以设定,保存,修改,并通过软件与32段每一天打铃交流设置。
在实际应用中,微控制器是一个单一的多主机系统中,也就是说,只用一个单一芯片上系统的应用程序。
目前已经有大量的领域在逐渐使用单片机来做控制系统,如工业控制系统,包括单芯片,自适应控制系统和控制系统,数据采集系统等;
用单片机测量,智能电表控制,实现了仪表数字化,智能化,多功能,综合性,灵活的单芯片计算机编程错误校正,线性的过程[1]。
1.2需求分析
整个系统通过程序取代硬软件来降低成本,打铃设置可以适应当前的学校系统,目前,大多数小学,幼儿园的下课铃尤其是农村,山区仍用人工方法,时间通常用普通的时钟,采取人工打铃时间不精确,而本方案使用一个低成本的程序设计,功能简单实用,有一定的市场推广价值。
并有一定的可扩展性,采用继电器控制,可减少重复投资,还可以节省许多人工上的资费,如此简单易行且成本低廉的设计,操作合理将有很大的市场空间。
程序使用了一个可扩展的微控制器作为主控单元,采用专用的时钟芯片作为处理时间,测量精度高,功耗低,而使用超级电容器作为备用电源,充电时间可以在几秒钟内被控制,可掉电使用一个月,有极长的使用寿命,按铃时间可以支持独立的工作和PC设置两种模式,在易用性,耐久性和可维护性对整个程序有很大的技术特点。
一、矩阵键盘的按键识别方法
介绍一种“行扫描法”用来确定矩阵式键盘上何键被按下。
行扫描,也就是一种逐行(或列)进行扫描的查询法,是一种很常用的按键的识别方法之一,介绍如下。
1,以确定键盘按键是否按下整个行线Y0-Y3被设置为低,则状态列线检测。
只要有一排水平低,这意味着该键盘的键被按下时,该封闭粘合线处于低电平和四个键中4相交的行线。
如果所有的列线为高,键盘按不出键。
2关闭,以确定在确认键被按下时,键输入确定所述特定盖的过程中的关键位置。
其方法是:
依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。
在确定低行线,列线,然后一根根的位置来检测状态的渐进层次。
如果列出的低,列线和行线设定按钮是在一个封闭的低调的交点[2]。
二、LCD的结构及工作原理
对于液晶显示屏,它通常包括制造胶合板,ITO(铟锡氧化物)膜构成,配向膜,偏光板,从上层和下层的玻璃基板。
每个夹层包括电极和取向膜,所述槽形成,具有90度的上部和下部玻璃基板。
三明治的地方下来的液晶,液晶将按照沟槽的方向。
总体看起来像液晶分子的扭转取向排列在螺旋。
当光线穿过液晶分子竖立,结果会出现黑色屏幕上。
一种液晶显示器(LCD)将根据电压是否,液晶分子与面板来实现显示的列方向。
LCD的分类,有各种不同的分类。
根据自己的显示段,点字符式,点阵等通常被划分。
除了以前采用的黑白显示,由于技术的发展现在有多种灰度和彩色显示器以供采用[3]。
128*64液晶显示屏,可显示日期,时间,正确的,和其他信息。
当时间达到设定的报警继电器会响钟,铃10秒,自动停止,液晶也会显示相关信息。
整个系统钟还有一个蜂鸣器报警装置来保证系统是否处于正常运行状态。
整个系统软件支持通信和报警时间的设置,有多种方式通过键盘输入。
操作方便,界面友好。
1.3指标及技术
采用MC5-51系列单片机制作支持打铃的时钟控制器。
●支持打铃每天设置,每次调节的铃声。
●掉电运行的时钟,时钟仍然正常精确运行约一个月。
●支持LCD菜单显示,可显示打铃备注。
●支持按周打铃设置为每天重复一次,按响了门铃,支持每个周六和周日停止功能。
●支持键盘输入功能,有多级菜单。
●内置海量国标汉字库,采用简体中文16点阵汉字显示。
●打铃采用继电器和内部蜂鸣器控制,兼容目前市面上使用的大部分打铃设备。
●中文点阵液晶显示技术。
●I2C总线及EPROM数据存储技术。
●单片机与pc机串行通讯技术。
●单片机系统数据分配及结构存储技术。
●单片机系统多级菜单控制技术。
●单片机系统低功耗设计技术。
1.4实现功能方法
本系统设计通过查询预想采用的单片机是89C516RD+。
其中89C51是51系列CPU中最普遍使用的,单片机应用项目为电子元件常用,体积小,功能强大,性能稳定,价格低廉。
已经广泛应用于各类家用电器和玩具,智能测试设备,机电一体化产品,自动监测和控制系统,计算机控制和通信技术。
液晶采用广泛使用的128*64字符液晶显示屏,SMG12864,时间是由外部时钟芯片DS1302的控制,键盘采用的是标准的4*4矩阵键盘。
存储芯片用用24LC08。
整个系统可以在装配进行编程,KeiluVision3用来使用软件调试,整个系统是通过以下步骤来完成:
首先,大量的在线以及图书馆搜索工具及书籍,得到了大量资源,对其进行整理学习,设计电路原理图,并最终用软件调试将其模拟出来。
第二章硬件设计
2.189C51内部结构简介
89C51包含8位微控制器,分别是CPU,ROM,RAM,串行端口,并行I/O接口,定时器/计数器,中断系统几个单位和数据总线,地址总线和控制总线组件。
●中央处理器:
89C51是8位数据宽度的处理器,它的功能是能迅速处理8位二进制数或代码。
主要是由逻辑单元,控制单元和特殊寄存器组成。
●存储器:
89C51采用哈佛结构而不是冯·
诺依曼结构是因为其ROM和RAM是分开的。
它有4096个8位ROM存储单元,256个RAM单元,其中低128个为用户单元,高128个为特殊寄存器单元。
●定时/计数器:
,为了实现内部定时和外部计数,产生中断,以及作为扩展中断源,89C51有2个16位的定时/计数器。
●并行输入输出口:
89C51共有P0,P1,P2,P3,4个8位的并行I/O口,且都是双向。
其中P3口还可作为第二功能扩展口。
●全双工串行口:
89C51内置一个既可用于异步通信,也可用作同步通信的全双工串行通信口,用于与其他设备间的串行数据传送。
●中断系统:
89C51有2个外部中断源,2个定时/计数中断和1个串口中断。
具有2级的中断优先级。
●时钟电路:
89C51内部包含时钟电路,可以外接晶振和电容作为整个单片机运行的时钟脉冲,也可接外部时钟源作为工作时钟,其最高频率达24MHz。
89C51的引脚功能:
●电源引脚:
VCC:
电源端,正电源接4.0~5.0V电压,正常工作电压为+5V。
VSS:
接地端。
●外接晶振或外部晶振器引脚:
XTAL1:
时钟XTAL1脚,片内振荡电路的输入端。
XTAL2:
时钟XTAL2脚,片内振荡电路的输出端。
●输入输出端口引脚:
P0口:
双向数据传输口。
当89C51外接存储器时,作为分时复用端口,需要地址锁存器,89C51从P0口分时传输数据或者存储器低8位地址。
P1口:
P2口:
外接存贮器时传输存储器高8位地址。
P3口:
当P3口用做第二功能扩展口时时,各引脚含义如下:
P3.0:
串行数据接受口;
P3.1:
串行数据发送口;
P3.2:
外部中断0信号输入;
P3.3:
外部中断1信号输入;
P3.4:
计数器0外部输入;
P3.5:
计数器1外部输入;
P3.6:
外部RAM读选通;
P3.7:
外部RAM写选通;
RST:
单片机内部复位信号输入端;
ALE/___________PROG:
地址锁存;
__________PSEN:
外部程序存储器读选通信号;
______EA/VPP:
访问内部或外部程序存储器选通信号。
2.2外部接口设备介绍
该系统使用的外部接口设备包括:
4×
4列的矩阵键盘,DB-9串行接口RS-232C,ds130时钟芯片。
电源电路,存储器芯片24C08,128*64LCD液晶。
2.2.1矩阵式键盘
有许多单片键盘,其采用最多的是独立键盘和矩阵键盘,前者是相对简单的,后者是用于多按钮的情况下。
2.2.2矩阵式键盘的结构与工作原理
在键盘多个键的数目,从而减少I/O端口被占用时,通常配置成矩阵形式的键。
在矩阵键盘的交叉口处的每个水平和垂直线交点处都用一个按钮来进行连接。
在这种方式中,端口可以构成4*4=16个按键,比线为键盘直接向端口增加了一倍多,并且更多的线,不同的是比较明显的,如两条线,然后更能够构成24或25键的键盘,而直接用端口线则只能多出两个键。
因此,需要相对较多的键的数目设计,使用的键盘矩阵方法做是比较合理的。
由此可见键盘矩阵结构相比直接法也更复杂,通过连接到正电源线和连接到微控制器的线I/O端口的输出端的线路的电阻以确定该列,该列连接到I/O口线作为输入。
因此,当没有按下按钮,所有的输出端子为高,表示没有键按下。
当有一个键被按下时,输入行会很低,从而使通过读取输入线的状态,便可以得知是否有键被按下了。
具体的识别及编程方法如下所述。
2.2.3矩阵式键盘的按键识别方法
键盘I/O端口使用8031的P1口,键盘连接到列线低4P1口,键盘线P1口接收到的四高。
列线P1.0-P1.3,分别接有四个拉电阻到正电源+5V,和P1.0-P1.3设置为输入线,列线,该线被设置对线P1.4-P.17输出线。
四行四列线线形成16交集。
检测当前键是否被按下。
方法检测P1.4-P1.7输出全为“0”,读取P1.0-P1.3的状态,P1.0-P1.3,仿佛所有的“1”,没有任何按键被关闭,否则有纽扣。
拔出钥匙抖动。
当检测到一个键时,延迟时间做测试,以确定下一个步骤。
如果该键被按下时,哪一个应确定键关闭。
方法是扫描键盘线[4]。
P1.4-P1.7按顺序输出的以下四种组合:
P1.71110
P1.61101
P1.51011
P1.40111
2.2.4液晶显示模块概述
液晶显示模块用来显示汉字及图形,采用的是一块128*64点阵使的液晶模块,其内置了海量简体的国标的字体(16X16点阵),128个字符(8X16点阵)点阵显示RAM和64X256(GDRAM)。
其中还有位并行和串行两种连接-8:
可与CPU提供两个接口连接到微处理器直接接口。
具有多种功能:
光标显示,画面移位,睡眠模式等[5]。
一、模块引脚说明
液晶液晶模块引脚图如表2.1所示。
表2.1液晶模块引脚说明
2.3电路设计
2.3.1.接口电路
程序做完后,通过电路设计,使用ISP下载线和软件操作处理转成文件,将文件输进单片机内,就可以把程序烧到单片机内。
2.3.2.电源电路
为了能给系统提供稳定的直流电源,保证系统的正常工作.系统接用了一个简单的电路,为了防止正负接反,其中还采用了一个桥堆器,它也可以起到稳压的作用。
2.3.3.打铃系统电路
打铃系统电路引脚程序为低电平时,继电器闭合,打铃开始。
低级别的信号为0时的电流放大晶体管,从而导致继电器闭合,打铃开始运行。
电路作为续流二极管,续流二极管被反向并联于电感线圈,由反电动势产生的回路以提供能量耗散整流电路中,电流通过二极管释放。
2.3.4.整个系统电路
P1口连接矩阵键盘,蜂鸣器通过晶体管的电流放大的发音,液晶显示器与单片机的连接把中详细LCD模块描述。
整个系统电路从电源电路开始,到DS1302时钟芯片电路,24C08EEPROM内存芯片电路,液晶显示模块电路,ISP下载电路,继电器以及蜂鸣器报警电路。
2.4电路图中硬件介绍
2.4.1继电器
一、继电器的工作原理和特性
继电器是一种既具有控制系统(也称为输入电路)又包括控制系统(也称为输出电路),通常应用于自动控制电路的电子控制装置,它实际上是用于控制大电流小的电流“自动开关“。
它在自动调整电路,安全性,转换电路的作用。
二、电磁继电器的工作原理和特性
电磁继电器由铁芯,线圈,衔铁,触点和簧片等组成。
其中通过给线圈两端加上电压,使线圈产生电流,产生电磁场。
磁场产生的电磁力使衔铁被吸引,用来克服弹簧的压力,铁芯被这种相反的两种力的做用下,逐渐吸向衔铁。
这种动作便使常开触点吸合。
当线圈断掉电压以后,电流消失,电磁吸力随之消失,衔铁弹簧的反作用力将退开回到起初位置,以便与原来的静触点(常闭触点)与动触点吸合。
因而时拉,时释放,从而达到导通电路中导通与断开的目的。
对于继电器,“常开,常闭”触点,它可以区分:
继电器线圈未通电的静触点断开状态,称为“常开触点”;
在ON状态,所述固定触头的是“常闭触点”。
2.4.2MAX232
MAX232是一个电压转换芯片,TTL电平计算机串口可以被转换成电压匹配。
MAX232芯片接口电路为标准PC口设计,采用+5V的单电源。
内部结构基本可分三个部分:
第一部分是电荷泵电路。
由四个电容构成,其中上面包含1,2,3,4,5,6等六个引脚。
它的功能是给RS-232串行端口供电。
第二部分是数据转换通道。
包含两个数据通道,由八个引脚组成,其中:
13脚(4R1IN),12脚(R1OUT),11脚(T1IN),14脚(T1OUT)为第一数据信道。
8脚(R2IN),9脚(R2OUT),10脚(T2IN),7脚(T2OUT)为第二数据通道。
从T1INTTL/CMOS数据,T2IN输入转换为从T1OUT,T2OUTDP9插头连接到计算机的RS-232数据;
DP9插头从R1IN,R2IN输入的RS-232数据从R1OUT,R2OUT输出TTL/CMOS数据[6]。
第三部分是供电。
15脚DNG、16脚VCC(+5v)。
2.4.3DS1302
现在市面上有很多流行的串行时钟电路,有DALLAS公司的DS系列的DS1302,DS1307,另外还有PCF8485等。
这些被广泛采用的电路的接口有着鲜明的特点,其简单实用,价格低廉。
本文介绍的实时时钟电路是在网上搜阅到的一款DALLAS公司带涓流充电电流的能力的DS1302,它的主要特点是采用串行数据传输,提供可编程的充电功能,以保护断电,并且可以关闭的充电功能。
DS1302采用普通32.768kHz晶体。
一、DS1302的结构及工作原理
DALLASDS1302是美国一家公司推出的一款实时时钟电路,其性能高,功耗较低。
可以对年,月,日,时,分,秒计时码表,还有闰年补偿功能,工作电压为2.5V〜5.5V。
它与CPU可以同步通信,有可以传送多个字节的三线接口和一个RAM寄存器的临时存储。
DS1302是1202的升级版,升级增加了主电源/背双电源引脚,还提供了1202不具备的备份电源涓流充电电流的能力。
二、引脚功能及结构
DS1302有VCC1和VCC21两个引脚,分别为后备电源和主电源。
当主电源关闭的情况下,备用电源将启用,以保证时钟继续正常运行。
DS1302进行供电时以较高者为准。
即假如当电源Vcc2大于VCC1时,电源Vcc2给DS1302的供电,反之DS1302搭载VCC1。
RST是复位/片选线,RST输入有两种功能:
第一,要将地址/命令序列送入移位寄存器时,将RST接控制逻辑;
另外,RST可以作为一个提供终止发送数据的装置。
当RST输入驱动置高电平时,数据传输启动,这时所有的数据传输初始化,对DS1302的操作。
如果传输过程中,将I/O引脚变为高阻抗便可以设置RST将终止数据传输。
在开机运行时,工作电压≥2.5V之前,RST必须保持在较低水平。
只有当SCLK为低,以便设置RST。
三、DS1302的控制字节
当要写入数据到DS1302时,必须控制字节的最显著位置逻辑1,置0则无效。
位6是访问日历时钟数据,当置0时访问;
位5至位1指示操作单元的地址;
至少显著位(位0)为0的情况下表示写,为1表示读操作,控制字节总是从最低的输出开始。
四、数据输入输出(I/O)
在控制输入时钟SCLK的上升沿将指令字之后,该数据被写入到DS1302,从低即位0输入的数据,反之即由低到高,读出数据时从低位0位到高位7。
五、DS1302的寄存器
DS1302有12个寄存器,均用BCD码形式寻访数据,其中与日历和时钟相关联的寄存器有7个。
此外,还有控制寄存器,充电寄存器,寄存器和寄存器或类似相关的时钟脉冲RAM等等。
所有寄存器的时钟突发寄存器内容可以除了一次性收费寄存器序列之外读取。
。
六、DS1302实时显示时间的软硬件
通过SCLK,I/O和RST可以将DS1302连接至CPU上。
事实上,当调试器不能增加一个电容,只需添加一个32.768kHz晶体可以。
如果只是选择水晶,不同的晶体,误差较大。
此外,该设计还可以扩展,比如在加一个CPU口线,添加一个温度感应电路就可以显示温度。
液晶显示器也可以被替换位LED灯,比如杰伊威尔逊制作了10多用8段液晶显示模块LCM101,可显示任意字段笔画,低功耗,可与任何单片机像连,可以显示清晰的工作电压。
普通时钟存在精度不高,对环境敏感,且易时钟混乱等特点。
DS1302可以用于数据记录,一些特定的数据点的记录具有特殊的意义,并且数据可以发生在同一时间的数据记录。
连续监测系统,并找出原因的结果,此长记录的分析出现异常数据具有重要意义。
当记录模式是采样间隔或采样定时,没有具体的时间记录,并且因此,记录的数据不能准确地记录在其出现的时间传统的数据;
如果使用单芯片的时序,人们往往需要添加计数器设置中断和查询等,将耗费单片机的资源,但有些人可能不会允许监控和控制系统。
所以,为了解决这个问题,我们可以在系统中引入DS1302时钟芯片。
第三章软件设计
3.1.电路原理图的设计步骤
电路原理图的设计一般有如下步骤:
(1)设置原理图设计环境;
(2)放置元件;
(3)原理图布线;
(4)编辑和调整;
(5)检查原理图;
(6)生成网络表。
3.2软件过程设计
3.2.1程序流程图
图3.1主程序流程
图3.2按键扫描流程
3.2.24*4矩阵键盘
一、原理
4*4矩阵键盘扫描,以检测原则是否被按下,并按下按钮。
其原理是每个键盘扫描信号传送到一列,然后使用关键信号返回线检测是关键打开,如果键是打开的,这意味着该按钮被按下,那么你就可以知道哪些补按下一个按钮。
利用这个原理,在第一P^0〜P2^3的列的位置,那么P2^4〜P2^7的线的位置。
接着,在P2^0〜P2^3作为输入,和P2^0〜P2^3,如图4.5中所示的输出。
图3.3输入/输出
当用户按下某一按键时,会有一支引脚电平变成低电位,从而根据返回的数据值可以判断时按下的哪一个按键。
二、扫描码
扫描码,如表4.1所示。
表3.1扫描码
P2^3~P2^0
1110(E)
1101(D)
1011(B)
0111(7)
P2^7~P2^4
F
E
D
C
B
3
6
9
A
2
5
8
1
4
7
程序输出按键上的数字
由表读出的数字,有以下的顺序:
0x7E,0x7D,0xBD,0xDD,0x7B,0xBB,0xDB,0x77,
0xB7,0xD7,0xBE,0xDE,0xE7,0xEB,0xED,0xEE
这些数据都将会存储在key_code中。
三、调用函数步骤
子程序gotkey()可以读取到用户按下按钮时的数据记录,如下步骤:
第一次调用keypad_scan()键被按下在读变量temp/临时的键盘扫描码会比较储存在key_code值扫描一个接一个,当扫描代码,如果他们是平等的在key_code订单将被退回。
如果不相等时就返回16。
程序如下所示:
Temp=keypad_scan();
For(i=0;
i<
=15;
i++)
{
if(temp==key_code[i