設計要求: (1)利用2塊(SENSOR)子板中DHT11采集2路溫濕度; (2)通過LCD1602顯示2路溫濕度; (3)并利用串口,將數據送至另一單片機的LCD1602上顯示。 顯示時,第一行顯示第一路的溫度、濕度,第二行顯示第二路的溫度、濕度
內含proteus仿真圖及源程序
圖片1.png (95.74 KB, 下載次數: 56)
下載附件
2018-1-18 16:05 上傳
0.png (54.64 KB, 下載次數: 36)
下載附件
2018-1-18 20:19 上傳
單片機源程序如下:
- #include<reg51.h>
- #include<intrins.h>
- #include"DHT11.H"
- #include"1602.H"
- #define uchar unsigned char
- #define uint unsigned int
- uchar ws1[15];
- uchar ws2[15];
- void delay_ms5(uint ms)
- {
- uchar i;
- while(ms--)
- for (i=0;i<120;i++);
- }
- void fasong1(uchar date)
- {
- SBUF=date;
- while(TI==0);
- TI=0;
- }
- void fasong(uchar *shuju)
- { while(*shuju!='\0'){
- fasong1(*shuju);
- shuju++;
- }
- }
- void main()
- { initialize_lcd();//初始化LCD1602
- TMOD=0x20; //T1方式2
- TR1=1;
- TH1=0xff;
- TL1=0xff;
- EA=1;
- SCON=0x50; //方式1,允許接收
- PCON=0; //或者SMOD=1;
- ES=1;
- IT0=1;
- EX0=1;
- while(1)
- {
- receive();
- ws1[0]='s';
- ws1[1]=':';
- ws1[2]=RH/10+'0'; //溫度十位
- ws1[3]=RH%10+'0'; //溫度個位
- ws1[4]='-';
- ws1[5]='-';
- ws1[6]='-';
- ws1[7]='-';
- ws1[8]='w';
- ws1[9]= ':';
- ws1[10]=TH/10+'0'; //濕度十位
- ws1[11]=TH%10+'0'; //濕度個位
- ws1[12]='-'; //小數點
- ws1[13]='-'; //濕度小數點后第一位
- lcd_showstring(0,0,ws1);
- fasong(ws1);
- ////////////////////////////////////////溫濕度傳感器2
- receive1();
- ws2[0]='s';
- ws2[1]=':';
- ws2[2]=RHO/10+'0'; //溫度十位
- ws2[3]=RHO%10+'0'; //溫度個位
- ws2[4]='-'; //
- ws2[5]='-';
- ws2[6]='-';
- ws2[7]='-';
- ws2[8]='w';
- ws2[9]= ':';
- ws2[10]=THO/10+'0'; //濕度十位
- ws2[11]=THO%10+'0'; //濕度個位
- ws2[12]='-'; //小數點
- ws2[13]='-';
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
單片機課程設計.rar
(142.97 KB, 下載次數: 220)
2018-1-18 16:07 上傳
點擊文件名下載附件
仿真及程序 下載積分: 黑幣 -5
|