APP下载

基于STC89C52的多功能电子时钟的设计与实现

2018-02-27江志晃周丽琳郭凯晴

电子技术与软件工程 2018年19期
关键词:温湿度时钟端口

江志晃 周丽琳 郭凯晴

摘要

随着人民生活水平的不断提高,多功能的电子时钟在生活中应用的场景越来越广泛,现在很多制造商都已经整合多功能电子时钟的功能进行物联网等应用,本文主要以探析多功能电子时钟的功能,从电路设计、闹钟等研究如何应用基于STC89C52系列芯片的电子时钟的多功能实现。

【关键词】STC89C52 电子时钟

新型多功能电子时钟,它有别于传统意义上的时间,无级管控技术的应用不但能满足人们对时间显示的功能,更多的是拓展其它功能,如温度感应、闹钟、定时等。基于STC89C52的多功能电子时钟,它比传统时钟走时更精准、体积更小,更容易为其它物联网设备提供基础性的功能。采用STC89C52系列芯片有着无比的稳定性而且价格便宜,功能强大。利用STC89C52系列芯片设计和实现的多功能电子时钟可以很好地解决传统电子钟设计和运行时的多发问题,同时它还具备显示效果好、功能多、电路简单等优点,可更好地服务于人们的工作和生活。

1 多功能电子时钟的功能及方案

多功能电子时钟的主要功能有LED显示时间、定时闹钟、整点定时报时、温度感应显示、定时电源控制等。多功能电子时钟的设计是51单片机的实际控制类应用,本设计方案主要包括以下几部分内容。

(1)选用主芯片时考虑到多功能电子时间的使用环境复杂,应用场景多样以及保养维修方便的特点,系统的主芯片选用价格便宜、参数合适和性能稳定的STC89C52系列,STC89C52系列芯片具备良好的ISP在线可编写可烧录技术,当程序对电路进行调用及调试时,支持程序对芯片进行烧录应用,对51单片机兼容性良好,具备有8K的ROM以及超低的3V启动工作电压。

(2)时间芯片采用DS1302,DS1302芯片价格较为便宜,它是一种高准度、高性能的时钟芯片。它可在2-5V之间的工作电压环境下正常运行,且能耗较低,芯片内部可自动对时间和日期进行补偿运算和计数。

(3)温度和湿度传感器选用DHT11芯片,该芯片价格便宜。采用单总结式访问结构,便于單片机直接直接调用资源,而且感应的数值较为准确,电路设计较为简单。

(4)LCD显示模块选用LCM12864芯片,它可显示最多32个字符,有接口与单片机直接相连,价格便宜,功耗较低。但LCD亮度流明不足在强光下环境下可能会有一定的不清晰现象,但与其它实现方案相比,此方案优点较为明显。

(5)控制模块,设计为独立的按压式按键实现,此实现办法便于操作,程度调用较为简单。

整个系统的设计方案,由主芯片STC89C52、时间芯片DS1302等配合系统协同工作,系统可正常实现设计的6大功能,功能框架图所图1所示。

2 多功能电子时钟功能的实现

2.1 多功能电子时钟功能的硬件设计

根据系统设计方案对系统硬件电路设计,系统的整体设计系统与6个模块协同工作,共同处理数据。

2.1.1 STC89C52芯片设计

系统设计中STC89C52芯片为系统的主运行芯片,它的正常规范设计直接影响着整个系统的稳定、高效运行。STC89C52共有引脚40个,各个引脚的功能均己定义。

(1)PO口,是8位开路型双向的,它是地址与数据总线的复用口,当它接收到输入数据时,能驱动8个逻辑电路,当对端口以高电平时可视为具备高阻抗的输入端口。当FLASH进行编程或者烧录时,PO口接收外部指令;当在输出指令或者校验时,必须有电阻配合其工作。

(2)P1口,是8位的双向型输入输出的,且自带内部上拉电阻功能。P1口可驱动4个逻辑电路,对端口处于高电平或者低电平时,将直接影响着P1口的输入输出特性。

(3)P3口,它是芯片中较为重要的端口,它可处理4个逻辑电路,同时也是一个可自动上拉电阻型的双向输入输出端口,它不但可作为FO接口,而且它还具备着其它第三方功能的处理的能力,对于FALSH存储器编程能接收和处理。如表1所示。

(4)其它端口,此芯片还有复位输入、可编程端口、振荡电路、自动定时、自动计数、中断系统等,此芯片有6个不同的中断源,可以允许更多的系统中断请求和服务。

2.1.2 DS1302时钟芯片设计

DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能,它采用普通32.768kHz晶振,具体的封装如图2所示。

在芯片中“X1,X2”为别代表32.768kHz晶振引脚端口,“GND”为地线端口,“RST"指复位端;“I/O”是指传输的数据输入和输出端口;“SCLK”为串行时钟端口;“VCCL”是慢速充电引脚端口;“VCC2”是指电源引脚端口。

DS1302芯片与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位Write Protect(D7)必须高逻辑电平,如果D为低逻辑电平,则写保护,不能写入DS 1302;若D6=0,指定时钟数据;最低位LSB(DO)为低逻辑电平时指定写输入操作;若DO=1,指定读操作输出操作。在DS1302的时钟日历或RAM传送,首先发送命令8位字节,若进行单字节传送,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。

根据以上原则,DS1302的具体设计电路如图

2.4 所示,VCC1为备用电源,VCC2为主要接入供电电源,VCC1可确保VCC2在中断的情况下,DS1302仍然能确保正常运行。

2.1.3 DHT11传感器设计

DHTt l数字温湿度传感器是一款含有己校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。每个DHT11传感器都在极为精确的湿度校验室中进行校准,校准系数以程序的形式存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为该类应用中,在苛刻应用场合的最佳选择。

DHT11传感器易于连接STC89C52,STC89C52的P2.0口用来发收串行数据,而连接传感器的Pin2,传感器的电源端口Pin1和Pin4接STC89C52的VDD和GND端。传感器的第三脚悬浮放置。DHT11传感器电路原理图如3所示。

整个多功能电子时钟还有几个模块均需要设计电路及串连,分别有LCD显示模块、复位电路模块、按键模块,在上述的模块中均需要用到系统开始选用的芯片设计,在此不——列出。

2.2 多功能电子时钟功能的软件设计

不管硬件选用如何合理,如果没有一个好的程序控制,各种芯片之间将不能很好的协同工作,此系统通过功能区,划分为不同的程序模块,分别对不同的模块进行编程、调试和测试,最后由主程序将各子模块之间串接,各个子模块之间的修改将不会对整个程序造成基础性变化。本系统主要有以下子模块进行设计,分别是日历程序、温度湿度程序、按键输入控制程序、显示程序、主调用程序。主调用程序将各子模块的数据整合,在LCD上显示相关的数据。

主程序的主函数

void main()

{beep=0;//开机叫BEEP叫一声

delay_1ms(150);

P0=P1=P2=P3=0xff;//单片机IO口初始化为1

init_61302();//ds1302初始化

read_clocks;

init_12864()://1cd12864初始化

init_12864_dis();//1cd12864初始化显示

time0_init();//初始化定时器

dst11();//先读出温湿度的值

{if(flag_clock_en==0)//只有闹钟关了才能进入设置

key_with();

else

{beep=1;

flag_clock_en=0;}}//按下任意键可关闭闹钟

if(flag_200ms==1)

{flag_200ms=0;

dst11();//先读出温湿度的值

ds1302_dis();}//时钟显示函数

if(flag_100ms==1){

menu_dis();

//闹钟报警函数

flag_100ms=0;

}

delay_1ms(1);}}

2.2.1 时间芯片显示程序

把时间芯片的数据显示在LCD上,需要进行调用和驱动,具体的程序如下。

Conversion(O,nian,yue,ri);//农历转换

……

write_shu16(2,3,nian);//显示年

write_shu16(2,5,yue);//显示月

write_shu16(2,7,ri)://显示日

write_shu16(3,7,week);//显示星期addr_12864(3,2);//地址转换

……addr_12864(4,0);//地址轉换

write_shu10(1,6,table dhtll[0]);//显示湿度

write_shu10(1,2,table_dhtll[2]);//显示温度

}}}

2.2.2 温度湿度程序设计

在总线上有初始化数据、写和读数据3种基本操作,初始化数据是对总线上的器件清理状态复位清零操作,写数据操作用于主节点向总线上写入一位数据,读用于主节点从总线上读取一位数据。具体程序设计如下。

void dstll()

{staticuint value;

uchari,j;//读温湿度时不能打开中断

delay_uint(4);//50us

if(dht11==0)//判断是否响应。为响应

……

value=0;

while(dht11==1)//等待响应时间过完

(value++;

if(value>=2000)

return;}

for(i=0;i<5;i++)

{for(j=0;j<8;j++)

{table_dht11[i]

<<=1;

while(dht11==0);

delay_uint(4);

if(dht11==1)

{table_dhtll[i]|=0x01;

while(dht11==1);

在多功能电子时钟的实现过程中,调用了很多的函数进行数据读写以及驱动等操作,具体的实现方法和程序使用的技巧和方法略有不同,此处将不——列出。

2.3 多功能电子时钟的整体设计

多功能电子时钟系统的核心采用的是STC89C52单片机;数据显示模块采用的是LCD液晶显示;温湿度采集模块用的是DHT11温湿度传感器,整个系统设计如图4所示。

多功能电子时钟系统在整体联调后,可实现6大模块的功能,显示效果在光线照明不强的情况下显示良好,各种功能均能正常实现,按键功能系统能控制各种功能模块,模块间互相调用正常,系统功能实现。

3 结论

多功能电子时钟整个系统设计具备了多种功能,在实际应用上非常广泛,它可以应用于一些较为恶劣的环境下,更可以实现定时工控等功能,为物联网的接入提供了一定的基础,具备着良好的发展前景。各种制作商应关注多功能电子时钟的扩展功能及硬件设计的优化方案,进一步提高质量和适应环境的能力,促进设计及工艺的进一步飞跃。

参考文献

[1]冉秦翠,彭厚德,汪海军.多功能电子时钟[J].物理实验,2014(04):36-41.

[2]翟玉文,王庆伟,赵岩.实用多功能电子时钟设计[J].吉林化工学院学报,2001(01):31-33.

[3]周中孝等.嵌入式ARM系统开发与实战[M].北京:电子工业出版社,2014.

[4]姚国旺.基于单片机的智能电子时钟设计[J].电子世界,2015,17:82-84.

猜你喜欢

温湿度时钟端口
别样的“时钟”
温湿度控制器在回收砂冷却系统中的应用
古代的时钟
基于DSP的多路温湿度监测系统
基于温湿度控制的天气预测装置
端口阻塞与优先级
蒸发冷却温湿度独立控制空调系统的应用
时钟会开“花”
初识电脑端口
8端口IO-Link参考设计套件加快开发速度