-
大小: 110KB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-06-01
- 語(yǔ)言: 其他
- 標(biāo)簽: STC12C5A60S2??DS18B20??LCD1602??
資源簡(jiǎn)介
基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示),使用STC12單片機(jī)采集溫度,想學(xué)習(xí)的小伙伴可以下載來(lái)看看

代碼片段和文件信息
#include?//包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義
#include
sbit?RS?=?P1?^?0;???//定義端口?
sbit?RW?=?P1?^?1;
sbit?EN?=?P2?^?5;
sbit?DS?=?P2?^?2;
unsigned?char?code?Table[16]?=?{‘0‘?‘1‘?‘2‘?‘3‘?‘4‘?‘5‘?‘6‘?‘7‘?‘8‘?‘9‘};
bit?flag;
unsigned?char?xdata?a?b;
#define?DataPort?P0
/************************LCD1602函數(shù)************************/
/******延時(shí)函數(shù)******/
void?DelayUs2x(unsigned?char?t)
{???
while(--t);
}
/******延時(shí)函數(shù)******/
void?DelayMs(unsigned?char?t)
{
while(t--)
{
//大致延時(shí)1mS
DelayUs2x(245);
DelayUs2x(245);
}
}
/******判忙函數(shù)******/
bit?LCD_Check_Busy(void)?
{?
DataPort?=?0xFF;?
RS?=?0;?
RW?=?1;?
EN?=?0;?
_nop_(?);?
EN?=?1;
return?(bit)(DataPort?&?0x80);
}
/******寫入命令函數(shù)******/
void?LCD_Write_Com(unsigned?char?com)?
{??
while(LCD_Check_Busy(?));?//忙則等待
RS?=?0;?
RW?=?0;?
EN?=?1;?
DataPort?=?com;?
_nop_(?);?
EN?=?0;
}
/******寫入數(shù)據(jù)函數(shù)******/
void?LCD_Write_Data(unsigned?char?Data)?
{?
while(LCD_Check_Busy(?));?//忙則等待
RS?=?1;?
RW?=?0;?
EN?=?1;?
DataPort?=?Data;?
_nop_(?);
EN?=?0;
}
/******清屏函數(shù)******/
void?LCD_Clear(void)?
{?
LCD_Write_Com(0x01);?
DelayMs(5);
}
/******寫入字符串函數(shù)******/
void?LCD_Write_String(unsigned?char?x?unsigned?char?y?unsigned?char?*s)?
{?????
if?(y?==?0)?
{?????
LCD_Write_Com(0x80?+?x);?????//表示第一行
}
else?
{??????
LCD_Write_Com(0xc0?+?x);??????//表示第二行
}????????
while?(*s)?
{?????
LCD_Write_Data(*s);?????
s?++;?????
}
}
/******寫入字符函數(shù)******/
void?LCD_Write_Char(unsigned?char?x?unsigned?char?y?unsigned?char?Data)?
{?????
if?(y?==?0)?
{?????
LCD_Write_Com(0x80?+?x);?????
}????
else?
{?????
LCD_Write_Com(0xc0?+?x);?????
}????????
LCD_Write_Data(Data);??
}
/******初始化函數(shù)******/
void?LCD_Init(void)?
{
LCD_Write_Com(0x38);????/*顯示模式設(shè)置*/?
DelayMs(5);?
LCD_Write_Com(0x38);?
DelayMs(5);?
LCD_Write_Com(0x38);?
DelayMs(5);?
LCD_Write_Com(0x38);??
LCD_Write_Com(0x08);????/*顯示關(guān)閉*/?
LCD_Write_Com(0x01);????/*顯示清屏*/?
LCD_Write_Com(0x06);????/*顯示光標(biāo)移動(dòng)設(shè)置*/?
DelayMs(5);?
LCD_Write_Com(0x0c);????/*顯示開及光標(biāo)設(shè)置*/
}
???
/************************DS18B20函數(shù)************************/
/******延時(shí)函數(shù)******/
void?DS18B20_Delay(unsigned?int?j)//延時(shí)j?*?1us
{
unsigned?int?i;
for(i?=?0;?i? {
_nop_(?);//@11.0592M晶振(12M晶振:_nop_(?);_nop_(?);)
}
}
/******初始化/復(fù)位函數(shù)******/
void?DS_Rest(?)
{
DS?=?1;
DS18B20_Delay(60);
DS?=?0;
DS18B20_Delay(700);
DS?=?1;
DS18B20_Delay(150);
if(DS?==?0)
{
flag?=?1;
}
else
{
flag?=?0;
}
DS18B20_Delay(200);
}
/******位讀取函數(shù)******/
bit?DS_Read_Bit(?)
{
bit?Dat;
DS?=?0;
_nop_(?);_nop_(?);
DS?=?1;
_nop_(?);
Dat?=?DS;
DS18B20_Delay(100);
return?Dat;
}
/******字節(jié)讀取函數(shù)******/
unsigned?char?DS_Read_Byte(?)
{
unsigned?char?idata?i?j?k;
for(i?=?0;?i?8;?i?++)
{
j?=?DS_Read_Bit(?);
k?=?(j?<7)?|?(k?>>?1);
}
return?k;
}
/******字節(jié)寫函數(shù)******/
void?DS_W
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-05-29?18:55??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\
?????目錄???????????0??2018-05-29?18:55??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\Listings\
?????文件???????14144??2018-04-22?23:04??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\Listings\STARTUP.lst
?????文件???????10242??2018-04-22?23:04??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\Listings\main.lst
?????文件???????21091??2018-04-22?23:04??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\Listings\基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示).m51
?????目錄???????????0??2018-05-29?18:55??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\ob
?????文件?????????819??2018-04-22?23:04??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\ob
?????文件???????13419??2018-04-22?23:04??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\ob
?????文件???????12546??2018-04-22?23:04??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\ob
?????文件??????114299??2018-05-28?18:53??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\ob
?????文件????????3495??2018-04-22?23:04??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\ob
?????文件?????????211??2018-04-22?23:04??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\ob
?????文件?????????267??2018-05-28?21:33??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\ob
?????文件????????6376??2014-04-10?14:10??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\STARTUP.A51
?????文件????????4450??2018-05-28?21:33??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\main.c
?????文件???????68693??2018-05-28?21:33??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示).uvgui.Administrator
?????文件???????68692??2018-05-28?21:09??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示).uvgui_Administrator.bak
?????文件????????5550??2018-05-28?21:33??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示).uvopt
?????文件???????13663??2018-05-28?21:09??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示).uvproj
?????文件????????5551??2018-05-28?21:09??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)_uvopt.bak
?????文件???????14123??2018-04-22?23:05??基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)\基于STC12C5A60S2的DS18B20溫度顯示工程(LCD1602顯示)_uvproj.bak
評(píng)論
共有 條評(píng)論