无线遥控的电子时钟带温度显示(6)

2019-08-01 22:46

无线遥控的电子时钟带温度显示

本设计中位定义变量共有多个,包括按键、红外发射端口、红外指示灯的位定义变量以及各种功能标志位。

特殊定义函数,如键盘扫描函数uchar key(),红外发射函数void send_hw(uchar c),发射引导码函数void send_star(),数据编码函数void send_char(uchar c)等。

(2)无字符局部变量及全局变量

根据在程序中设计到的全局变量,都会在.h头文件里予以声明,可以同时赋初值,若没有赋初值则程序自动赋0。本程序中设计到的全局变量包括时间变量、按键标志变量、地址变量、显示标志变量、红外收发标志变量等。

bit key_bit; //按键重复标记 bit hw; //红外发射标志位

sbit led=P3^7; //这是红外指示灯的位定义 sbit out=P3^6; ////这是红外数据发射端口的位定义 #define port P2 //这是键盘按键的接口定义 Sbit IN=P3^4; //红外接收端口的位定义

4.2 程序设计子模块分析

4.2.1 红外编码模块

采用脉宽调制的串行码,设计过程中,按照NEC协议严格进行编码。其流程图如图4-7所示:

开始 键值扫描 发射引导码发射地址码 发射键值 返回

22

九江学院学士学位论文

图4-7 编码流程图

该编码严格按照NEC协议中的规则,用0.56ms的低电平与0.56ms的高电平组合表示“0”,用0.56ms的低电平和1.68ms的高电平组合表示“1”。当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms编码脉冲,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8 位地址码(9ms~18ms),高8 位地址码(9ms~18ms),8 位数据码(9ms~18ms)和这8 位数据的反码(9ms~18ms)组成。如果键按下超过108ms 仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。代码格式(以接收代码为准,接收代码与发射代码反向)。

发射部分与接收的软件功能几乎相同,不同之处就是一个发射一个是接收。发射部分的功能实际就是接收部分的无线键盘。 4.2.2时间和温度显示模块

main初始化设置:慢速充电,开始计时读取时间显示缓冲区←时分秒动态显示

时间显示流程图

DS1302的写入时序

23

无线遥控的电子时钟带温度显示

DS1302的读取时序

24

九江学院学士学位论文

开始初始化DS18B20跳过读序列号启动温度转换延时初始化DS18B20跳过读序列号读取温度值结束

温度显示流程图

DS18B20 初始化

25

无线遥控的电子时钟带温度显示

DS18B20 数据读写

写时隙

写时隙由DQ引脚的下降沿引起。18B20有写1和写0两种写时隙。所有写时隙必须持续至少60μs,两个时隙之间至少有1μs的恢复时间。DS18B20在DQ下降沿后15μs~60μs间采样DQ引脚,若此时DQ为高电平,则写入一位1,若此时DQ为低电平,则写入一位0,即写入的数据要在下降沿后15us之内准备好。

读时隙

读时隙由DQ下降沿引起,持续至少1μs的低电平后释放总线(DQ置1)DS18B20的输出数据将在下降沿15μs后输出,此时单片机可读取1位数据。读时隙结束时要将DQ置1。所有读时隙必须持续至少60μs,两个时隙之间至少有1μs的恢复时间。

26


无线遥控的电子时钟带温度显示(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:广东省东莞市常平嘉盛实验学校八年级物理下册沪粤版导学案9.2阿

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: