本實驗在壓縮包中有具體仿真和程序,看程序便會了解LM016L的具體顯示方式如何操作,并進一步了解如何向上位機發送數據并顯示。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機源程序如下:
- #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--)
- {
- //\根據按鍵,修改風扇開關的閾值i++或者i--
- }
- }
- #include "uart.h"
- #include "18b20.h"
- #include "1602.h"
- void main()
- {
- u8 wendu;
- UART1_init();
- UART1_sends("Love u everyday \r\n");//發給串口的
-
- 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);//發送溫度,換行回車
- 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,并根據當前溫度控制風扇開、關
- delay(10000);
- }
- }
復制代碼
所有資料51hei提供下載:
根據溫度閾值來判斷風扇轉動.7z
(127 KB, 下載次數: 20)
2021-7-18 21:23 上傳
點擊文件名下載附件
|