亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
基于51單片機+LM35的溫控系統Proteus仿真程序設計
[打印本頁]
作者:
努力變大神
時間:
2020-3-5 18:24
標題:
基于51單片機+LM35的溫控系統Proteus仿真程序設計
由LM35溫度傳感器采集信息,當輸出低于15時電機開始轉動,并通過LCD1602顯示溫度
51hei截圖20200305182304.png
(35.31 KB, 下載次數: 41)
下載附件
2020-3-5 18:23 上傳
單片機源程序如下:
#include <reg51.h>
#include <intrins.h>
#include <stdio.h>
#include <math.h>
#define INT8U unsigned char
#define INT16U unsigned int
sbit SDO = P1^3; //串行數據輸出引腳
sbit SCK = P1^5; //串行時鐘引腳
sbit CONV = P1^7; //轉換控制引腳
sbit RS = P2^0; //寄存器選擇線
sbit RW = P2^1; //讀/寫控制線
sbit EN = P2^2; //使能控制線
sbit moto=P3^2;
//-----------------------------------------------------------------
// 延時
//-----------------------------------------------------------------
void delay_ms(INT16U ms)
{
INT8U i;
while(ms--) for(i = 0; i < 120; i++);
}
//-----------------------------------------------------------------
// 忙等待
//-----------------------------------------------------------------
void Busy_Wait()
{INT8U LCD_Status; //液晶狀態字節變量
do
{ P0=0XFF;
EN=0;RS=0;RW=1;
EN=1;LCD_Status=P0;
EN=0;
} while (LCD_Status & 0x80); //液晶忙繼續循環
}
//-----------------------------------------------------------------
// 寫LCD命令
//-----------------------------------------------------------------
void Write_LCD_Command(INT8U cmd)
{
Busy_Wait();
EN=0;RS=0;RW=0;
P0=cmd;
EN=1;_nop_();EN=0;
}
//-----------------------------------------------------------------
// 發送數據
//-----------------------------------------------------------------
void Write_LCD_Data(INT8U dat)
{
Busy_Wait();
EN=0;RS=1;RW=0;
P0=dat;
EN=1;_nop_();EN=0;
}
//-----------------------------------------------------------------
// LCD初始化
//-----------------------------------------------------------------
void Initialize_LCD()
{
Write_LCD_Command(0x38); delay_ms(1);
Write_LCD_Command(0x01); delay_ms(1);
Write_LCD_Command(0x06); delay_ms(1);
Write_LCD_Command(0x0C); delay_ms(1);
}
//-----------------------------------------------------------------
// 顯示串字符
//-----------------------------------------------------------------
void LCD_ShowString(INT8U r, INT8U c,INT8U *str)
{INT8U i = 0;
code INT8U DDRAM[] = {0x80,0xC0};
Write_LCD_Command(DDRAM[r] | c);
for ( i = 0; str[i] && i < 16 ;i++)
Write_LCD_Data(str[i]);
for (; i < 16; i++)
Write_LCD_Data(' ');
}
float f_volt;int i_volt;
//-----------------------------------------------------------------
// 讀取LTC1864模數轉換值(16位,2字節)
//-----------------------------------------------------------------
INT16U Read_ADC()
{
INT8U i;INT16U dat=0x00;
SCK=1;
CONV=0;CONV=1;
_nop_();_nop_();_nop_();_nop_();
CONV=0;
for(i=0;i<16;i++)
{SCK=0;_nop_();SCK=1;
dat=(dat<<1)|SDO;
}
SCK=0;
return dat;
}
void delay_time(unsigned int t)
{while(t--);
}
INT8U disp_buff[]="wendu: 000.0oC";
void disp_format(INT8U d,INT8U *a)
{ a[0]=d/10+0x30;a[1]=d%10+0x30; //???????
}
void disp_dotformat(INT8U d,INT8U *a)
{ a[0]=d/10+0x30;a[2]=d%10+0x30; //???????
}
void disp(int dd)
{ INT8U gao,di;
if(dd<0)
{dd=-dd;disp_buff[6]='-';}
else
{disp_buff[6]=' ';
}
di=dd%100;
disp_dotformat(di,disp_buff+9);
gao=dd/100;
disp_format(gao,disp_buff+7);
}
void UART_init(void)
{
SCON = 0x50;
TMOD = 0x20;
TH1 = 0xFD;
TL1 = 0xFD;
TR1 = 1;
}
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
溫控系統.zip
(114.05 KB, 下載次數: 88)
2020-3-5 18:24 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1