AM2302_1602例程C语言.docVIP

  • 22
  • 0
  • 约5.33千字
  • 约 8页
  • 2018-01-13 发布于河南
  • 举报
AM2302_1602例程C语言

#includereg52.h #include intrins.h #define uint unsigned int #define uchar unsigned char uchar code table[]=Temp: C; uchar code table1[]=RH: %; uchar code table2[]=Sensor Not; uchar code table3[]=Connected; uchar code table4[]=Check wrong; sbit Sensor_SDA = P2^0; sbit key_set=P2^1; sbit key_up=P2^2; sbit key_down=P2^3; sbit key_ok=P2^4; sbit lcdrs=P2^5; sbit lcdwr=P2^6; sbit lcden=P2^7; uchar Sensor_Data[5]={0x00,0x00,0x00,0x00,0x00}; uchar Sensor_AnswerFlag; //收到起始标志位 uchar Sensor_ErrorFlag; //读取传感器错误标志 uchar Sensor_Check; //校验和 uint Sys_CNT; uint Tmp; uint t0; uchar num; uchar flag; void delay(uint z) { uint x,y; for(x=z;x0;x--) for(y=123;y0;y--); } /********************************************\ |* 功能: 延时 晶振为12M时 *| |* t = 1 为 20us 然后成倍增加10us左右 *| \********************************************/ void Delay_N10us(unsigned char t) { while(t--) { _nop_(); } } /********************************************\ |* 功能: 延时 晶振为12M时 *| |* 延时大约 1ms *| \********************************************/ void Delay_N1ms(unsigned int t) { unsigned int i; unsigned int j; for(j=t;j0;j--) for(i=124;i0;i--); //延时大约 1ms } void write_com(uchar com) { lcdrs=0; P0=com; lcden=1; delay(5); lcden=0; } void write_date(uchar date) { lcdrs=1; P0=date; lcden=1; delay(5); lcden=0; } void diyihang(uint z) { z--; write_com(0x80+z); } void dierhang(uint z) { z--; write_com(0x80+0x40+z); } void init_1602() { lcdwr=0; lcden=0; write_com(0x38);//模式 write_com(0x0c);//无光标不闪 write_com(0x01);//清屏 diyihang(1);//显示位置 for(num=0;num11;num++) { write_date(table[num]); //delay(10); } dierhang(1);//换行显示 for(num=0;num10;num++) { write_date(table1[num]); //delay(10); } } void Clear_Data (void) { int i; for(i=0;i5;i++) { Sensor_Data[i] = 0x00; }//接收数据清零 } /********************************************\ |* 功能: 读传感器发送的单个字节 *| \********************************************/ unsigned char Read_SensorData(voi

文档评论(0)

1亿VIP精品文档

相关文档