本实验在压缩包中有具体仿真和程序,看程序便会了解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)
|