2022年无线温度采集系统设计c基本语言程序 .pdf
《2022年无线温度采集系统设计c基本语言程序 .pdf》由会员分享,可在线阅读,更多相关《2022年无线温度采集系统设计c基本语言程序 .pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、发射主程序 ( 附录 1) #include #include #include sbit d3=P13; sbit d2=P12; sbit d1=P11; sbit d0=P10; sbit te=P14; void delay_us(unsigned int us)/调用此函数 24us,每循环一次 16us unsigned int s; for(s=0;sus;s+); void send(unsigned char j) te=1; j&=0 x0f; P1=j; te=0; delay_us(10000);/1s te=1; delay_us(10000);/1s void se
2、nd_tem() send(t_feng); send(t_ge); send(t_shi); void display() ReadTemperature(); temp_data_turn(temp); write7279(DECODE0+2,t_shi); write7279(DECODE0+1,(t_ge+128); write7279(DECODE0,t_feng); void main() send_byte(CMD_RESET); while(1) send(0 x0f); send_tem(); delay_us(30000);/480ms display(); 名师资料总结
3、- - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - 接收主程序(附录2)#include #include #include sbit d3=P13; sbit d2=P12; sbit d1=P11; sbit d0=P10; sbit vt=P14; void delay_us(unsigned int us)/调用此函数 24us,每循环一次 16us unsigned int s; for(s=0;sus;s+); unsigned ch
4、ar receive_four() unsigned char k; unsigned int i=4000;/i=4000时 while(-i)&(!vt);/43ms ,不能用 & if(i=0) i=4000; P1&=0 x0f; k=P1; return k; else return receive_four(); void receive()/接收 delay_us(17358);/接收标志 0 x0f 后的延时t_feng=receive_four(); delay_us(17358);/280ms t_ge=receive_four(); delay_us(17358); t_
5、shi=receive_four(); delay_us(17358);/17361附近 void display() write7279(DECODE0,t_feng); write7279(DECODE0+1,(t_ge+128); write7279(DECODE0+2,t_shi); void main() unsigned char i; for (tmr=0;tmr0 x2000;tmr+); send_byte(CMD_RESET); for(i=0;i2;i+) delay_us(65535); while(1) while(receive_four()=0 x0f)/标志 r
6、eceive(); delay_us(30000);/480ms display(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - 18b20.h 子程序(附录3)#include /#include #include intrins.h /-DS18B20控制命令 - #define T_CONVER 0 x44 /开始温度转换#define T_CONFIG 0 x5f /11位转换#define T_READ 0 xb
7、e /读暂存器#define T_WRITE 0 x4e /写暂存器#define T_ROM_JMP 0 xcc /忽略 64ROM 地址#define T_COPY_E2 0 x48 /将温度上下限数值写到E2ROM #define T_RECALL_E2 0 xb8 /将 E2中存储的温度上下限数值复制到上下限寄存器中。#define T_cont 0.0625 /温度转换常数/- sbit DQ=P12; /DS18B20数据输出端bit REC_suc=0; /DS18B20成功复位标志位bit T_sign; /温度正负符号float temp=0; /转换好的温度数值signed
8、 char temp_TH=50,temp_TL=10; /温度上下限unsigned char t_bai,t_shi,t_ge,t_feng; /温度转换好的各个位void DS18B20_init(); /DS18B20初始化函数void DS18B20_send(unsigned char in_data); /DS18B20发送一个字节数据函数unsigned char DS18B20_read(); /从 DS18B20 读取一个字节函数void ReadTemperature(); /读取温度数值void temp_data_turn(float in_data); /温度转换/
9、- /* 函数声明部分 */ void StartDs12c887(void); void CloseDs12c887(void); void InitDs12c887(void); unsigned char GetSeconds(void); unsigned char GetMinutes(void); unsigned char GetHours(void); unsigned char GetDate(void); unsigned char GetMonth(void); unsigned char GetYear(void); unsigned char GetCentury(v
10、oid); void SetTime(unsigned char chSeconds,unsigned char chMinutes,unsigned char chHours); void SetDate(unsigned char chDate,unsigned char chMonth,unsigned char chYear); void LCD_send_byte(unsigned char a); unsigned char LCD_read_byte(void); unsigned char LCD_bf(void); void LCD_comm(unsigned char co
11、mm); void LCD_setxy(unsigned char x,unsigned char y); void LCD_PORTInit(void); void LCD_WriteStr(unsigned char dis_addr_x,unsigned char dis_addr_y,char* str) ; void delay(unsigned int n) unsigned int i; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年无线温度采集系统设计c基本语言程序 2022 无线 温度 采集 系统 设计 基本 语言 程序
限制150内