毕业论文 - 基于51单片机和NRF24L01的无线温度监控 - 图文

发布时间 : 星期三 文章毕业论文 - 基于51单片机和NRF24L01的无线温度监控 - 图文更新完毕开始阅读

void write_data(uchar date) { lcd_rs=1; lcd_rw=0; P0=date; lcd_en=1; delayms(1); lcd_en=0; }

void lcd_init() { lcd_en=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); }

void write_str(uchar x,uchar y,uchar *s) { switch(y) { case 0: write_com(0x08+x); break; case 1: write_com(0x08+0x40+x); break; } while(*s) { write_data(*s); s++; } }

/********************最大最小值显示函数************************/

void write_maxmin(uchar add,uchar date) { uchar shi,ge; shi=date/10; ge=date;

没有天生的聪明 只有不懈的努力

36

writeComm(0x80+add); //写入地址 writeData(0x30+shi); writeData(0x30+ge); }

void keyscan() { uchar slnum; if(K1==0) { delayMs(1); if(K1==0) //确认功能键被按下 { slnum++; //功能选择计数变量加1, while(!K1); //等待按键释放,防抖动 }writeComm(0x0f); } if(slnum==1) {

flag=1; //标志位为1,表示有功能键被按下,此时不在执行温度检测 writeComm(0x80+14); //光标定位到MIN位置 writeComm(0x0f); //光标开始闪速 } if(slnum==2) { writeComm(0x80+4); //光标定位到MAX位置 writeComm(0x0f); //光标开始闪速 } if(slnum==3) { slnum=0; //功能键第三下按下后,功能计数清零 flag=0; //标志位恢复,执行温度转化 writeComm(0x0c); //关闭光标闪速 } if(slnum!=0) //只有在功能键被按下后,K2,K3才有效 { if(K2==0) { delayMs(1); if(K2==0) {

while(!K2); if(slnum==1) { MIN++; if(MIN==99) {MIN=0;} writeComm(0x80+14); //MIN++显示的位置 writeComm(0x0f); write_maxmin(14,MIN); writeComm(0x80+14); } if(slnum==2) { MAX++; if(MAX==99) {MAX=0;} writeComm(0x80+4); writeComm(0x0f); write_maxmin(4,MAX); writeComm(0x80+4); } } } if(K3==0) delayMs(1); if(K3==0) { while(!K3); if(slnum==1) { MIN--; if(MIN==-1) {MIN=99;} writeComm(0x80+14); writeComm(0x0f); write_maxmin(14,MIN); writeComm(0x80+14); } if(slnum==2) { MAX--; if(MAX==-1){MAX=99;} writeComm(0x80+4); writeComm(0x0f); write_maxmin(4,MAX); writeComm(0x80+4); }

没有天生的聪明 只有不懈的努力

38

} } }

void main() { uchar rx_buf[4]={0,0}; lcd_init(); init_io(); write_com(0x80+0);write_data('M'); write_com(0x80+1);write_data('A'); write_com(0x80+2);write_data('X'); write_com(0x80+3);write_data(':'); write_com(0x80+10);write_data('M'); write_com(0x80+11);write_data('I'); write_com(0x80+12);write_data('N'); write_com(0x80+13);write_data(':'); write_com(0xc0+0);write_data('N'); write_com(0xc0+1);write_data('O'); write_com(0xc0+2);write_data('W'); write_com(0xc0+3);write_data(':'); while(1) {

keyscan(); RX_mode(); RxPacket(rx_buf);

write_com(0x80+0x40+6); write_data(table[rx_buf[0]]); write_data(table[rx_buf[1]]); write_data(rx_buf[2]); write_data(table[rx_buf[3]]);

temp=((rx_buf[0])*10)+(rx_buf[1]); if((temp>=MAX)|(temp<=(MIN-1))) {BJ=0;BEEF=0; } else{ BJ=1;BEEF=1; } } }

联系合同范文客服:xxxxx#qq.com(#替换为@)