第一范文网 - 专业文章范例文档资料分享平台

基于NRF24L01+温度无线传输51单片机 - 图文

来源:用户分享 时间:2025/5/29 2:22:44 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

uint y; for(x=z;x>0;x--) for(y=125;y>0;y--); }

void LCD_BUSY() //LCD忙检测 { uchar sta; P0=0xff; lcdrs=0; lcdrw=1; do{ lcden=1; sta=P0; lcden=0; }while(sta & 0x80); }

void writelcdcmd(uchar cmd) { LCD_BUSY(); delayms(1); lcdrs=0; lcdrw=0; lcden=0; P0=cmd; delayms(1); lcden=1; delayms(1); lcden=0; }

void writelcddat(uchar dat) { LCD_BUSY(); delayms(1); lcdrs=1; lcdrw=0; lcden=0; P0=dat; delayms(1);

//LCD写命令//LCD写数据 lcden=1; delayms(1); lcden=0; }

void inilcd() //LCD初始化 { delayms(15); writelcdcmd(0x38); delayms(5); writelcdcmd(0x0c); delayms(5); writelcdcmd(0x06); delayms(5); writelcdcmd(0x01); delayms(5); }

void play(unsigned char *p)//显示// {

while(*p!='\\0') {

writelcddat(*p); p++;

delayms(1); } }

void xianshi(void) { uchar TL; //储存暂存器的温度低位 uchar TH; //储存暂存器的温度高位 TH=tm[0] ; TL=tm[1]; //这样得到的是温度小数部分的第一位数字(保留1位小数)

value=TH; value<<=8; value=value|TL; if(value<0x0fff) //是否是负值 tflag=0; else { value=~value+1; tflag=1;

} value=value*(0.625)+0.5; //扩大10倍方便读取小数 disdat[0]=value/1000+0x30;//百位数 disdat[1]=value00/100+0x30;//十位数 disdat[2]=value0/10+0x30;//个位数 disdat[3]=value+0x30;//小数位 if(tflag==0) disdat[4]=0x20; else disdat[4]=0x2d; if(disdat[0]==0x30) { disdat[0]=0x20; if(disdat[1]==0x30) disdat[1]=0x20; } /*显示当前温度*/ writelcdcmd(0x86); writelcddat(disdat[4]); writelcdcmd(0x87); writelcddat(disdat[0]); writelcdcmd(0x88); writelcddat(disdat[1]); writelcdcmd(0x89); writelcddat(disdat[2]); writelcdcmd(0x8a); writelcddat(0x2e); writelcdcmd(0x8b); writelcddat(disdat[3]); writelcdcmd(0x8d); writelcddat(0xdf); writelcdcmd(0x8e); writelcddat('C'); }

void main(void) { uchar xx; inilcd(); init_io(); RX_Mode(); while(1) { flag=0;

//当最高位为0时,最高位不显示//符号位 //小数点 //单位℃ checkflag(); if(flag!=1)

{ writelcdcmd(0x01); writelcdcmd(0x01); writelcdcmd(0x80); play(str1);

writelcdcmd(0x80+0x40); play(str2);

delayms(60000); } else if(flag) { writelcdcmd(0x01); for(xx=0;xx<2;xx++) {tm[xx]=rx_buf[xx]; delay_ms(1); writelcdcmd(0x80); play(str); xianshi(); delayms(60000); } }

delayms(60000); delayms(60000); delayms(60000); delayms(60000); delayms(60000); delayms(60000); delayms(60000); delayms(60000);

}

}

2014 8

基于NRF24L01+温度无线传输51单片机 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c206cp2zdyt6ehs64cpf7_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top