LCD倒计时
lcd倒计时

淮阴师范学院物理与电子电气工程学院课程设计报告学生姓名石伟学号171108025 班级1108专业电气工程及其自动化题目LCD1602显示数字倒计时器的设计指导教师魏东旭、周凯杰2013 年12 月1 任务和设计要求基于AT89C52单片机的LCD1602数字倒计时器。
功能如下:⑴LCD1602显示倒计时时间。
⑵倒计时过程中能设置闹钟,当到达闹钟时间时会发出报警。
⑶通过按键能对倒计时设定初值。
2 系统设计系统框图3 硬件设计3.1 电路原理图3.2 主要单元电路LCD电路图蜂鸣器电路独立键盘电路复位电路3.3 元件清单4 软件设计4.1 程序流程图4.2 主要功能程序设计void time() interrupt 1{TH0=(65536-5000)/256;TL0=(65536-5000)%256;count++;if (count==200)count=0;miao--;if(miao==-1){miao=59;fen--;if(fen==-1){fen=59;shi--;if(shi==-1){shi=23;}}}}}4.3 程序清单#include <reg52.h>#define uchar unsigned charsbit beep=P2^3;sbit key1=P3^4;sbit key2=P3^5;sbit key3=P3^6;sbit key4=P3^7;sbit lcdrs=P2^0;sbit lcden=P2^1;uchar num,m,n;int miao,fen,shi,count,nn,keyon,alarm,exit;uchar code table[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39}; void delay(uchar x);uchar scan();void display1();void display2();void lcdwritecom(uchar);void lcdwritedata(uchar);void init();{alarm=0;exit=0;m=0;n=0;EA=1;ET0=1;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;miao=10;fen=10;shi=8;while(1){init();nn=scan();if(keyon){switch(nn){case 1:if(alarm){m++;if(m==24)m=0;}if(!alarm){shi++;if(shi==24)shi=0;miao=59;}keyon=0;break;case 2:if(alarm){n++;if(n==60)n=0;}if(!alarm){fen++;if(fen==60)fen=0;miao=59;}keyon=0;break;case 3:alarm=1;keyon=0;break;case 4:exit=1;alarm=0;keyon=0;break;}}if(alarm){display2();}if(!alarm){display1();}if(exit){if(shi==m&fen==n&miao==0){beep=0;}if(shi==m&fen==n-1&miao==50){beep=1;exit=0;}}}}void time() interrupt 1{TH0=(65536-5000)/256;TL0=(65536-5000)%256;count++;if (count==200){count=0;miao--;if(miao==-1){miao=59;fen--;if(fen==-1){fen=59;shi--;if(shi==-1){shi=23;}}}}void delay(uchar x){uchar m,n;for(m=x;m>0;m--)for(n=100;n>0;n--); }uchar scan(){keyon=0;if(key1==0){delay(50);if(key1==0){keyon=1;num=1;}while(!key1);delay(10);while(!key1);}if(key2==0){delay(50);if(key2==0){keyon=1;num=2;}while(!key2);delay(5);while(!key2);if(key3==0){delay(50);if(key3==0){keyon=1;num=3;}while(!key3);delay(5);while(!key3);}if(key4==0){delay(50);if(key4==0){keyon=1;num=4;}while(!key4);delay(5);while(!key4);}return num;}void writecom(uchar com) {lcdrs=0;lcden=0;P0=com;lcden=1;delay(10);lcden=0;}void writedata(uchar date){lcdrs=1;lcden=0;P0=date;lcden=1;delay(10);lcden=0;}void init(){lcden=0;writecom(0x38);writecom(0x0c);writecom(0x06);writecom(0x80);}void display1(){writedata(table[shi/10]);writedata(table[shi%10]);writedata(0x3a);writedata(table[fen/10]);writedata(table[fen%10]);writedata(0x3a);writedata(table[miao/10]);writedata(table[miao%10]); }void display2(){writedata(table[m/10]);writedata(table[m%10]);writedata(0x3a);writedata(table[n/10]);writedata(table[n%10]);writedata(0x3a);writedata(table[0]);writedata(table[0]);}5 系统仿真及调试5.1 仿真原理图5.3 仿真结果及分析Key1表示设置时钟初始值的时或闹钟的时;Key2表示设置时钟初始值的分或闹钟的分;Key3表示进入设置闹钟时间;Key4表示退出设置闹钟时间;复位键按下回到程序初始。
LCD显示的定时闹钟设计方案

LCD显示的定时闹钟设计方案1.设计要求使用AT89C51单片机结合字符型LCD显示器设计一个简易的定时闹钟LCD 时钟,若LCD选择有背光显示的模块,在夜晚或黑暗的场合中也可使用。
定时闹钟的基本功能如下:显示格式为“时时:分分”。
由LED闪动来做秒计数表示。
一旦时间到则发出声响,同时继电器启动,可以扩充控制家电开启和关闭。
程序执行后工作指示灯LED闪动,表示程序开始执行,LCD显示“ 00:00”,按下操作键K1〜K4动作如下:(1)K1 —设置现在的时间。
(2)K2 —显示闹钟设置的时间。
(3)K3 —设置闹铃的时间。
⑷K4 —闹铃ON/OFF勺状态设置,设置为ON时连续三次发出“哗”的一声,设置为OFF发出“哗”的一声。
设置当前时间或闹铃时间如下。
(1)K1 —时调整。
(2)K2 —分调整。
(3)K3 —设置完成。
(4)K4 —闹铃时间到时,发出一阵声响,按下本键可以停止声响。
本项目的难点在于4 个按键每个都具有两个功能,以最终实现菜单化的输入功能。
采用通过逐层嵌套的循环扫描,实现嵌套式的键盘输入。
2.设计方案2.1 原理本LCD定时闹钟,是以单片机及外围接口电路为核心硬件,辅以其他外围硬件电路,用汇编语言设计的程序来实现的。
根据C51单片机的外围接口特点扩展相应的硬件电路,然后根据单片机的指令设计出数字钟相应的软件,再利用软件执行一定的程序来实现数字钟的功能。
由于采用集成芯片性的单片机来制作电子钟,这样设计制作简单而且功能多、精确度高,也可方便扩充其他功能,实现也十分简单。
本设计是利用AT89C51单片机为主控芯片,由LCD晶振、电阻、电容、发光二极管、开关、喇叭等元件组成硬件电路,通过编写软件程序来实现和控制的数字定时闹钟2.2系统总框图2.3原理及工作过程说明(1)定时闹钟的基本功能如下:(a)启动仿真软件,使用LCD液晶显示器来显示现在的时间。
(b)程序执行之后显示“ 00:00”并且LED闪烁,表示开始已经计时。
倒计时电路的原理

倒计时电路的原理
倒计时电路的基本原理是利用时序控制信号来控制计数器的工作,实现倒计时功能。
该电路主要由计数器、时钟信号源、时序控制逻辑电路和显示电路组成。
首先,时钟信号源提供稳定的时钟信号作为计数器的驱动。
计数器是一个数字电路,能够按照时钟信号的脉冲进行计数。
当计数器的计数值达到预设的初始值时,会触发一个时序控制信号。
时序控制逻辑电路根据时序控制信号的触发条件,生成控制信号来控制计数器的状态转换。
在倒计时电路中,当时序控制信号触发时,控制信号会使计数器的计数值减1,实现倒计时的效果。
显示电路用来将计数器的输出结果转换为可视化的形式,例如数字显示器或LED灯等。
在倒计时电路中,显示电路会实时显示计数器的当前计数值,从而实现倒计时的可视化效果。
综上所述,倒计时电路通过计数器、时钟信号源、时序控制逻辑电路和显示电路的协同工作,实现了倒计时的功能。
通过调整初始值和控制信号的触发条件,可以实现不同的倒计时时间设置。
倒计时系统设计

河南农业职业学院专科毕业设计(论文)题目倒计时系统设计学生姓名专业班级所在系指导教师倒计时系统设计摘要:本论文针对倒计时系统的设计的需求,介绍了MCS-51单片机的部分基本原理,如51单片机的接口功能、中断、定时器等等。
倒计时系统需要用到锁存器、矩阵键盘、LED数码显示器等主要模块,通过不同的模块之间相互作用,完成倒计时的初步硬件结构。
对于倒计时器中的LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即采用Keil uVision3软件程序进行译码。
关键词:倒计时器/单片机/矩阵键盘/Keil uVision3/LED数码显示器THE DESIGN OF COUNTDOWN SYSTEMABSTRACT:This paper focuses on the needs of the countdown system design, introduced the MCS-51 MCU of some of the basic principles.Such as the 51 single-chip interface functions, interrupt, timer and so on. Countdown system needs to use latch, matrix keyboard, LED digital display and other major modules, through interaction between different modules to complete the Countdown to the initial hardware. The countdown device in the LED digital display, In order to simplify the circuit, reduce costs, we adopt a software-based interface method, namely using Keil uVision3 software program for decoding.KEYWORDS:Counter-down,SCM,Matrix keyboard,Keil uVision3,LED digital display目录中文摘要 (II)英文摘要 (III)目录 (III)第一章引言 (2)1.1 课题开发的作用及意义................................. - 0 -1.2 发展方向............................................. - 0 - 第二章原理设计 ................................................ - 2 -2.1 设计任务与要求....................................... - 2 -2.2 方案设计与论证....................................... - 2 -2.3 系统框图............................................. - 2 - 第三章器件的选择及介绍........................................ - 4 -3.1 单片机AT89S51 ......................................... - 4 -3.1.1 主要功能特性 ..................................... - 4 -3.1.2 AT89S51的引脚说明................................ - 4 -3.1.3 单片机定时器的使用 ............................... - 7 -3.2 显示器件选择........................................... - 7 - 第四章硬件电路的设计......................................... - 10 - 第五章各部分电路介绍......................................... - 11 -5.1 复位电路.............................................. - 11 -5.2 时钟电路.............................................. - 12 -5.3 按键电路.............................................. - 13 -5.4 蜂鸣器电路............................................ - 13 -5.5 数码管显示电路........................................ - 14 - 第六章软件设计与流程图....................................... - 16 -6.1 倒计时器主程序流程图................................ - 16 -6.2 定时器0的中断程序流程图............................ - 17 -6.3 定时器1的中断程序流程图............................ - 18 - 第七章 PCB制板图及仿真图...................................... - 20 -7.1 PCB制板图 ............................................ - 20 -7.2 整体电路仿真图以及仿真结果分析........................ - 21 - 第八章安装与调试 ............................................. - 23 -8.1 电路安装.............................................. - 23 -8.2 电路调试.............................................. - 23 -8.3 性能测试与分析........................................ - 23 - 结束语 ........................................................ - 24 - 致谢 ........................................................ - 25 - 参考文献 ...................................................... - 26 - 附录 ........................................................ - 27 -第一章引言1.1课题开发的作用及意义随着社会的发展人们对时间的要求越来越精确,而倒计时的应用也越来越广泛比如;奥运会开幕式的倒计时,篮球比赛的倒计时器,还有爆破时用的倒计时器等等。
LCD倒计时

《单片机原理及应用》课程设计任务书题目:LCD显示的音乐倒计时制作姓名:学号:学院:电气工程与自动化学院专业:电气工程与自动化学院年级:2012级指导教师:高伟设计任务一,技术要求利用PIC16F887单片机控制字符型LCD显示器制作一个简易的倒数计数器,可以用来煮方便面、煮开水或小睡片刻等。
先进行一小段时间倒计数,当倒计数到0时,则发出一段音乐声响,通知主人时间到,去做该做的事情。
该程序共有有5个功能键:K1——设置,LCD显示5:00;K2——时间增加倍数切换键,在1分钟和10分钟之间切换;K3——时间增;K4——时间减;K5——开始倒计数。
定时闹钟的基本功能如下。
●字符型LCD(16 2)显示器。
●显示格式为“TIME 分分:秒秒”。
用4个按键操作来设置当前想要倒计数的时间。
一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。
设计任务一、技术要求使用单总线的DS18B20测量温度,进行LCD液晶显示,当温度超过50℃时,通过指示灯报警。
请根据需求撰写任务书,写出详细的功能,以及设计步骤。
在课程设计之前提交给老师。
(可以对内容进行扩展,可适当加分)二、拟采用的方法(包括芯片的选型等)51芯片采用国产STC89C52作为主控.美国达拉斯公司生产的DS18B20温度传感器芯片进行温度采集。
和DALLAS公司的实时时钟芯片DS1302对年月日周日分秒进行计时。
采用LCD1602进行温度、实时时间等显示。
用蜂鸣器与LED灯进行报警。
基于ZigBee无线通信的开关柜发热点无线测温终端设计姓名:卢国仪指导老师:高伟专业:电气工程与自动化学号:010800321摘要:本论文主要从无线测温终端的设计入手,采用了新型ZigBee无线通信技术,从硬件电路设计与软件程序设计两方面展开了课题的研究。
考虑到封闭式开关柜内工作温度高,变电站运行过程中不能频繁停电两大因素。
因此选择了能够耐高温而且可以工作于低功耗模式下的元器件。
24秒倒计时器的设计和制作

24秒倒计时器的设计和制作设计和制作一个24秒倒计时器可以分为硬件设计和软件设计两个部分。
硬件设计:1. 选择一个适合的开发板或者单片机作为控制器。
常见的选择有Arduino、Raspberry Pi等。
2.连接一个LCD显示屏,用于显示倒计时的时间。
3.连接一个按钮,用于启动倒计时。
4.使用一个蜂鸣器或者其他声音装置,用于倒计时结束时发出提示音。
软件设计:1. 在选定的控制器上,使用相应的开发环境进行编程。
例如使用Arduino IDE进行Arduino编程。
2.编写倒计时函数,用于倒计时的逻辑。
3.编写LCD显示函数,用于在LCD上显示倒计时的时间。
4.编写按钮检测函数,用于检测按钮的按下事件。
5.编写蜂鸣器控制函数,用于在倒计时结束时发出提示音。
下面是一个简单的伪代码示例,展示了如何实现一个24秒倒计时器:```cpp#include <LiquidCrystal.h> // 引入LCD库LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // 初始化LCD引脚const int buttonPin = 6; // 按钮引脚const int buzzerPin = 7; // 蜂鸣器引脚int buttonState = 0; // 按钮状态int countdownTime = 24; // 倒计时时间void setulcd.begin(16, 2); // 设置LCD行数和列数pinMode(buttonPin, INPUT); // 设置按钮引脚为输入pinMode(buzzerPin, OUTPUT); // 设置蜂鸣器引脚为输出void loobuttonState = digitalRead(buttonPin); // 读取按钮状态if (countdownTime > 0 && buttonState == HIGH) countdownTime--; // 倒计时减1秒displayTime(countdownTime); // 显示倒计时时间delay(1000); // 延迟1秒}if (countdownTime == 0)tone(buzzerPin, 1000, 500); // 发出提示音digitalWrite(buzzerPin, LOW); // 停止提示音delay(1000); // 延迟1秒countdownTime = 24; // 重置倒计时时间}lcd.setCursor(0, 0); // 设置LCD光标位置为第一行第一列lcd.print("Countdown: "); // 显示文本```这个示例使用了Arduino控制器和连接了16x2 LCD显示屏展示倒计时时间。
led数字倒计时器设计自我总结

led数字倒计时器设计自我总结LED数字倒计时器是一种常见的倒计时装置,它通过使用LED(发光二极管)来显示倒计时的时间。
设计一个LED数字倒计时器不仅需要掌握电子电路的知识,还需要了解数字显示技术和计时原理。
在设计和制作过程中,我遇到了一些挑战,但通过不断努力和学习,我成功地完成了LED数字倒计时器的设计。
我需要确定倒计时的时间范围和精度。
LED数字倒计时器可以根据需求设计不同的时间范围,例如从1分钟到24小时等。
在我的设计中,我选择了一个常见的时间范围,从1分钟到60分钟。
为了提高倒计时的精度,我采用了时钟模块来提供准确的时间基准。
接下来,我需要选择适当的LED显示器来显示倒计时的时间。
LED 显示器可以分为共阳极和共阴极两种类型。
在我的设计中,我选择了共阳极的LED显示器。
为了实现倒计时功能,我需要控制LED显示器的每个数码管的每个数字的亮灭。
通过使用逻辑门和计数器等电子元件,我成功地实现了LED数字倒计时器的数字显示功能。
为了使倒计时器更加实用和易于操作,我还添加了一些附加功能。
例如,我增加了开始、暂停和复位按钮,以控制倒计时的启动、暂停和重置。
我还添加了一个蜂鸣器,用于在倒计时结束时发出警报声。
通过这些附加功能,LED数字倒计时器不仅可以简单地显示倒计时的时间,还可以提供更多的操作和警示功能。
在完成LED数字倒计时器的设计后,我进行了一系列的测试和调试。
我验证了倒计时功能的准确性和稳定性,并确保LED显示器的亮灭正常。
同时,我还测试了按钮和蜂鸣器的功能,以确保它们能够正常工作。
通过这些测试和调试,我确保了LED数字倒计时器的正常运行和可靠性。
在这个设计过程中,我学到了很多关于电子电路和数字显示技术的知识。
我深入了解了LED显示器的工作原理和控制方法,并学会了使用逻辑门和计数器等电子元件来实现数字显示和倒计时功能。
通过解决各种问题和挑战,我提高了自己的解决问题的能力和创新能力。
通过设计LED数字倒计时器,我不仅加深了对电子电路和数字显示技术的理解,还提高了自己的实践能力和创新能力。
正泰KG316时控操作说明

正泰KG316时控操作说明正泰KG316时控是一款多功能的电子自动时控设备,能够帮助用户合理安排时间、提高生产效率。
本文将详细介绍正泰KG316时控的操作方式,让用户能够更加熟练地使用这款设备。
一、外观和按键说明正泰KG316时控外观简洁大方,具有LCD液晶显示屏和多个按键。
在LCD液晶显示屏上可以显示时间、日期、以及各种操作参数。
按键包括设置键、确认键、加减键等,用户可以通过按键进行各种操作。
二、时钟设置1. 首先按下“设置”键进入设置模式,LCD液晶显示屏将显示闪烁的时间数字。
2. 使用加减键调整时间,并按下“确认”键确认。
接着LCD将显示日期的调整,同样使用加减键进行调整并确认。
3. 设置完成后再次按下“设置”键退出设置模式即可。
三、定时任务设置1. 按下“设置”键,进入设置模式,LCD显示屏显示当前时间数字。
2. 使用加减键调整所需的定时任务开始时间,并按下“确认”键确认。
3. LCD显示屏将显示定时任务结束时间的调整,同样使用加减键进行调整并确认。
4. 接着LCD显示屏将显示其他参数的调整,如定时任务重复设置、定时任务执行方式选择等。
5. 完成所有参数设置后,再次按下“设置”键退出设置模式。
四、定时任务执行1. 正确设置定时任务后,设备将在设定的时间执行任务。
LCD液晶显示屏将会有相应的提示。
2. 当设备执行定时任务时,LCD显示屏将显示任务执行情况,并进行倒计时。
用户可以根据LCD显示屏上的信息来监控任务执行情况。
五、其他功能说明正泰KG316时控设备除了基本的时钟设置和定时任务设置外,还具有其他一些功能,如闹钟设置、倒计时功能等。
用户可以根据实际需求进行设置和操作。
六、注意事项1. 在操作设备时,请仔细阅读使用说明书,确保操作正确。
2. 避免设备受到严重的撞击或挤压,保持设备干燥清洁。
3. 定期检查电池情况,及时更换电池。
通过本文的详细介绍,相信用户对正泰KG316时控的操作方式有了更清晰的了解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《单片机原理及应用》课程设计任务书题目:LCD显示的音乐倒计时制作姓名:学号:学院:电气工程与自动化学院专业:电气工程与自动化学院年级:2012级指导教师:高伟设计任务一,技术要求利用PIC16F887单片机控制字符型LCD显示器制作一个简易的倒数计数器,可以用来煮方便面、煮开水或小睡片刻等。
先进行一小段时间倒计数,当倒计数到0时,则发出一段音乐声响,通知主人时间到,去做该做的事情。
该程序共有有5个功能键:K1——设置,LCD显示5:00;K2——时间增加倍数切换键,在1分钟和10分钟之间切换;K3——时间增;K4——时间减;K5——开始倒计数。
定时闹钟的基本功能如下。
●字符型LCD(16 2)显示器。
●显示格式为“TIME 分分:秒秒”。
用4个按键操作来设置当前想要倒计数的时间。
一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。
设计任务一、技术要求使用单总线的DS18B20测量温度,进行LCD液晶显示,当温度超过50℃时,通过指示灯报警。
请根据需求撰写任务书,写出详细的功能,以及设计步骤。
在课程设计之前提交给老师。
(可以对内容进行扩展,可适当加分)二、拟采用的方法(包括芯片的选型等)51芯片采用国产STC89C52作为主控.美国达拉斯公司生产的DS18B20温度传感器芯片进行温度采集。
和DALLAS公司的实时时钟芯片DS1302对年月日周日分秒进行计时。
采用LCD1602进行温度、实时时间等显示。
用蜂鸣器与LED灯进行报警。
基于ZigBee无线通信的开关柜发热点无线测温终端设计姓名:卢国仪指导老师:高伟专业:电气工程与自动化学号:010800321摘要:本论文主要从无线测温终端的设计入手,采用了新型ZigBee无线通信技术,从硬件电路设计与软件程序设计两方面展开了课题的研究。
考虑到封闭式开关柜内工作温度高,变电站运行过程中不能频繁停电两大因素。
因此选择了能够耐高温而且可以工作于低功耗模式下的元器件。
研发成功的无线测温终端以其安装方便、抗干扰性强、低功耗、可靠性高等优点,为封闭式开关柜内热点温度实时监测提供了一条有效途径。
关键词:开关柜,无线测温,ZigBee,无线网络1 绪论电力系统中高压开关柜是发电厂、变电所中的重要电气设备,目前采用的封闭式开关柜长期处于高电压、大电流、满负荷的运行环境下,散热效果差将直接导致柜内热量不断积聚。
尤其是在电力系统发生短路故障时,强大的电流使电气设备内部温升加剧,电气绝缘性能下降,电气设备寿命缩短,严重时还可能造成电气设备被烧毁。
因此开关柜温度在线监测问题已经成为电力系统中电气设备安全运行所急需解决的实际问题,是促使设备安全运行和可靠供电的迫切需要,对保障电力系统安全可靠运行具有十分重要的意义[1-2]。
长期以来在开关柜热点温度的监测方面,国内外比较常见的测温方案有红外测温仪、示温记录标签、光纤光栅测温传感器、无线测温等。
本课题将引用近几年比较流行的无线测温技术的想法,利用单片机与无线数据收发模块,采用低功耗技术,设计无线测温终端,从而解决传统测温技术所存在的技术缺陷。
2无线测温传感器的硬件设计无线测温传感器安装在开关柜内的发热点,定时进行温度信息的采集。
由于开关柜内正常工作温度为60~70℃,而且通信又采取无线的方式,因此测温传感器在硬件的选择上,就必须达到两个条件,即耐高温和低功耗。
无线测温传感器的系统框图如图2-1所示。
单片机无线收发模块温度传感器锂电池图2-1 无线测温传感器系统框图2.1主要元器件的选型TMP102是TI公司生产的具SMBus(双线串行接口)的业界最小低功耗数字温度传感器。
该器件采用SOT563封装,包含引线的高度仅为0.6毫米。
该传感器工作模式下的最大静态电流仅为10μA,关断模式下的最大电流仅为1μA。
由于尺寸极小,功耗要求又非常低,因此TMP102非常适合便携式消费类电子产品与其它电池供电的终端设备[3]。
由于每个无线测温终端都需具有一个唯一的地址编号,以便系统识别每个监测点。
因此,CPU除了具备USART接口、休眠功能、低功耗外,还必须带有一个小容量、具有掉电保持功能的EEPROM存储器。
综上考虑,采用纳瓦技术的低功耗单片机PIC16F690很适合作为本无线测温终端的CPU[4]。
XBee是美国MaxStream公司基于ZigBee技术的而设计出一种无线传输模块,满足了无线传感网络低功耗低成本的特殊要求。
设计外形小巧,有效的节约了PCB板的空间[5]。
以色列TADIRAN电池公司在锂亚电池的制造方面处于世界顶尖水平,该公司生产的电池具有超高低温特性,并且自然放电极其微弱。
以色列TADIRAN电池已经彻底解决了长寿命锂电池存在的技术难题,并能够提供电池使用寿命的科学评估服务,质量稳定可靠,有长期成功运行经验,非常适合作为无线测温传感器的电源进行使用。
2.2电路设计为了保证CPU低功耗运行,关键在于如何对电路进行低功耗设计。
注意事项有如下几点[6-8]:1)电路的总功耗为CPU以及外围电路功耗之和。
所以不仅要降低CPU本身的运行功耗,还应该降低外围电路的功耗。
因此应尽量选择低电压、低功耗的CMOS元件。
2)单片机的工作电流正比于自身的工作频率与工作电压。
因此应尽量采用低电压供电,并使单片机工作于最低频率(4 MHz晶振),因此在需要时可对晶振电路另行设计。
3)单片机外围电路应尽可能少的采用阻性元件。
如果使用上拉电阻,应尽可能加大电阻阻值并保证电平正常。
4)CMOS元件的输入管脚不能悬空。
悬空的输入管脚很容易积累电荷,产生较大的感应电动势,导致管脚电位不正常。
因此应将不使用的管脚全部接地并置为输入。
基于以上几方面内容,设计出的硬件电路图如图2-2,图2-3,图2-4所示。
图2-2 温度传感器电路图图2-3 RF电路图图2-4 CPU主电路图图2-5 PCB板电路图图2-6 无线测温传感器实物图3 无线测温传感器的软件设计软件部分设计主要采用的是PIC 单片机的PICC 语言进行编程,主要任务是从测温传感器TMP102上将温度信息通过IIC 总线采集回来,再按照通信规约的要求处理好数据,最后通过USART 串口通信将数据发送给无线数据收发模块XBee 。
因此在设计软件过程中就涉及到检测温度、发送温度数据和低功耗的管理等方面。
测温传感器主要在无线通信时功率消耗较大。
考虑到一般环境下发热点的温度变化并不明显,为降低测温传感器的功耗,设计软件时采用温度数据短周期采集,长周期主动发送数据以及轮循休眠等方法[9-10]。
图3-1为无线测温传感器主要工作流程图。
1)CPU 每隔15秒采集两次温度值,并将两次温度值进行校验,验证数据的有效性。
TMP102转换温度需耗时26ms ,因此为降低功耗,在其转换温度期间令CPU 进入休眠状态26ms 。
2)将终端地址保存在EEPROM 之中,并且只在CPU 初始化时读取,存入到数据区以供使用,避免频繁读取EEPROM 而增大功耗。
开始CPU 初始化配置TMP102开中断,读EEPROM第一次读取温度值第二次读取温度值判别温度信息的是否准确?否判别两次温度差是否超标?是是判别是否超过温度上限值?发送数据休眠休眠时间大于5min?是否是否否图3-1 无线测温传感器工作流程图3)将当前读取的有效温度值与上一次保存的温度值进行比较,若温差超过一定阀值,直接上传数据(阀值可根据实际工程需要设定),否则每隔5min发送一次数据。
采用得当的方法延长发送间隔,可提高电池的使用寿命。
4)当温度超过上限值75℃时,进入预警状态,直接上传温度数据,累计3次以后,转为每隔5min发送一次数据;当温度再次下降低于73℃时,解除预警状态。
5)正常工作时,无线数据收发模块处于休眠状态。
只当需要发送数据时,通过拉低引脚电平唤醒RF模块,数据发送完成后在拉高电平休眠RF模块。
6)在软件休眠之前,把所有空闲的I/O口配置为输入,还要保持使用中的I/O口的电平状态与相连接的器件相一致,避免引脚上出现电流流动,降低模块的功耗。
7)单片机运行程序器件,会难以避免的偶尔出现当程序运行到某一步骤时进入死循环等情况。
因此在主程序适当的位置均添加了看门狗指令,并且在看门狗WDT溢出之前进行清零操作,提高程序可靠性。
3.1初始化程序的设计初始化程序的主要任务是当PIC单片机上电后,对单片机的内部功能寄存器进行初始化设置。
初始化的主要流程如图3-2所示。
开始关闭闲置模块I/O口初始化数据初始化USART串口通信模块初始化结束图3-2 初始化流程图3.2温度数据读写程序的设计TMP102温度传感器主要靠IIC串行总线进行与单片机的沟通,因此可通过单片机对TMP102的配置从而优化整个测温终端功能。
由于单片机的配置的IIC模块引脚被其他模块所占用。
因此程序设计上采用了模拟IIC串行通信信号的方式实现与TMP102的交流。
因此本小节的主要工作是:1)设计IIC串口通信模拟信号的程序,利用宏定义将RC2口模拟成数据线,RA2口模拟成时钟线,主要对IIC启动信号,应答信号,停止信号,以及读写过程进行设计。
2)配置TMP102温度传感器,首先对指针寄存器赋值,使其指向配置寄存器,可将TMP102配置成关断模式下工作,只当其转换温度时醒来,温度转换完成以后自动进入休眠状态,从而有效地降低了模块的功耗。
主要流程见图3-3中的图(a);3)TMP102温度转换程序的设计,主要流程如图3-3中的图(b)所示; 4)从TMP102上采集温度信息程序的设计,主要流程见图3-3中的图(c)。
开始IIC 启动信号发送TMP102地址信号指针指向配置寄存器信号TMP102初始化配置IIC 停止信号结束开始IIC 启动信号发送TMP102地址信号指针指向配置寄存器信号启动温度转换IIC 停止信号结束开始IIC 启动信号发送TMP102地址信号指针指向温度寄存器信号读取温度IIC 停止信号结束a )配置TMP102流程图b )温度转换流程图c )采集温度信息流程图图3-3 温度数据读写流程图a) 配置TMP102流程图 b )温度转换流程图 c )采集温度信息流程图3.3串口通信程序的设计单片机USART 串行口中有两个缓存寄存器,一个是发送寄存器TXREG ,一个是接收寄存器RCREG 。
串行发送时,串行数据通过引脚TX 送出,CPU 向TXREG 缓存器写入数据;串行接收时,串行数据通过引脚RX 进入,CPU 从RXREG 读出数据。
通信流程图如图3-4所示。
开始唤醒Xbee 模块开启USART延时发送数据结束温度数据是否错误?帧计数位加1准备好发送的数据温度数据低字节置1是否Xbee 模块休眠关闭USART图3-4 USART串行通信流程图4 RF模块XBee的配置ZigBee技术是一种新兴的短距离、低速率、低成本、低功耗、低复杂度的无线网络通信技术。