本實驗在壓縮包中有具體仿真和程序,看程序便會了解LM016L的具體顯示方式如何操作,并進一步了解如何向上位機發(fā)送數(shù)據(jù)并顯示。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif (104.89 KB, 下載次數(shù): 71)
下載附件
2021-7-18 21:21 上傳
溫度超過設置的30度就開風扇.PNG (73.13 KB, 下載次數(shù): 70)
下載附件
2021-7-18 21:22 上傳
單片機源程序如下:
- #include <reg51.H>
- #define u8 unsigned char
- #define u16 unsigned char
-
- sbit motor=P1^1;//風扇
- sbit key_jia=P1^2;//按鍵,高溫++
- sbit key_jian=P1^3;//按鍵,高溫--
- u8 code tab1[16]="Phuck the world";
- u8 wen=30;//默認的高溫閾值,超過30度就開風扇
- u8 tab_gao[16]=" ";//高溫閾值
- bit key_flag=1;//是否有新按下,0無1有
- void delay8(u8 i){while(i--);}//短延時,給LCD、傳感器
- void delay(long i)//長延時,順便按鍵檢測
- {
- if(key_jia==0) wen++;
- if(key_jian==0) wen--;
- while(i--)
- {
- //\根據(jù)按鍵,修改風扇開關(guān)的閾值i++或者i--
- }
- }
- #include "uart.h"
- #include "18b20.h"
- #include "1602.h"
- void main()
- {
- u8 wendu;
- UART1_init();
- UART1_sends("Love u everyday \r\n");//發(fā)給串口的
-
- Lcd_init();
- Lcd_writes(0,0,tab1);//第0列,第0行
- tab_gao[2]=0xdf;//溫度的°
- tab_gao[3]=0x43;//溫度的C
-
- while(1)
- {
- wendu=ds1820_wen();//讀取溫度
- UART1_number(wendu,1);//發(fā)送溫度,換行回車
- tab_gao[0]=wen/10+0x30;
- tab_gao[1]=wen%10+0x30;
- Lcd_writes(1,1,tab_gao);
- if(wendu<=wen) motor=1;
- else motor=0;//溫度顯示到LCD,并根據(jù)當前溫度控制風扇開、關(guān)
- delay(10000);
- }
- }
復制代碼
51hei.png (16.74 KB, 下載次數(shù): 62)
下載附件
2021-7-18 21:22 上傳
所有資料51hei提供下載:
根據(jù)溫度閾值來判斷風扇轉(zhuǎn)動.7z
(127 KB, 下載次數(shù): 20)
2021-7-18 21:23 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|