资源简介

基于STC12C5A60S2的DS18B20温度显示工程(LCD1602显示),使用STC12单片机采集温度,想学习的小伙伴可以下载来看看

资源截图

代码片段和文件信息

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#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函数************************/
/******延时函数******/
void DelayUs2x(unsigned char t)
{   
while(--t);
}
/******延时函数******/
void DelayMs(unsigned char t)
{
while(t--)
{
//大致延时1mS
DelayUs2x(245);
DelayUs2x(245);
}
}
/******判忙函数******/
bit LCD_Check_Busy(void) 

DataPort = 0xFF; 
RS = 0; 
RW = 1; 
EN = 0; 
_nop_( ); 
EN = 1;
return (bit)(DataPort & 0x80);
}
/******写入命令函数******/
void LCD_Write_Com(unsigned char com) 
{  
while(LCD_Check_Busy( )); //忙则等待
RS = 0; 
RW = 0; 
EN = 1; 
DataPort = com; 
_nop_( ); 
EN = 0;
}
/******写入数据函数******/
void LCD_Write_Data(unsigned char Data) 

while(LCD_Check_Busy( )); //忙则等待
RS = 1; 
RW = 0; 
EN = 1; 
DataPort = Data; 
_nop_( );
EN = 0;
}
/******清屏函数******/
void LCD_Clear(void) 

LCD_Write_Com(0x01); 
DelayMs(5);
}
/******写入字符串函数******/
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 ++;     
}
}
/******写入字符函数******/
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);  
}
/******初始化函数******/
void LCD_Init(void) 
{
LCD_Write_Com(0x38);    /*显示模式设置*/ 
DelayMs(5); 
LCD_Write_Com(0x38); 
DelayMs(5); 
LCD_Write_Com(0x38); 
DelayMs(5); 
LCD_Write_Com(0x38);  
LCD_Write_Com(0x08);    /*显示关闭*/ 
LCD_Write_Com(0x01);    /*显示清屏*/ 
LCD_Write_Com(0x06);    /*显示光标移动设置*/ 
DelayMs(5); 
LCD_Write_Com(0x0c);    /*显示开及光标设置*/
}
   

/************************DS18B20函数************************/
/******延时函数******/
void DS18B20_Delay(unsigned int j)//延时j * 1us
{
unsigned int i;
for(i = 0; i < j; i ++)
{
_nop_( );//@11.0592M晶振(12M晶振:_nop_( );_nop_( );)
}

}
/******初始化/复位函数******/
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);
}
/******位读取函数******/
bit DS_Read_Bit( )
{
bit Dat;
DS = 0;
_nop_( );_nop_( );
DS = 1;
_nop_( );
Dat = DS;
DS18B20_Delay(100);
return Dat;
}
/******字节读取函数******/
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;
}
/******字节写函数******/
void DS_W

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           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显示)\objects\
     文件         819  2018-04-22 23:04  基于STC12C5A60S2的DS18B20温度显示工程(LCD1602显示)\objects\STARTUP.obj
     文件       13419  2018-04-22 23:04  基于STC12C5A60S2的DS18B20温度显示工程(LCD1602显示)\objects\main.obj
     文件       12546  2018-04-22 23:04  基于STC12C5A60S2的DS18B20温度显示工程(LCD1602显示)\objects\基于STC12C5A60S2的DS18B20温度显示工程(LCD1602显示)
     文件      114299  2018-05-28 18:53  基于STC12C5A60S2的DS18B20温度显示工程(LCD1602显示)\objects\基于STC12C5A60S2的DS18B20温度显示工程(LCD1602显示).build_log.htm
     文件        3495  2018-04-22 23:04  基于STC12C5A60S2的DS18B20温度显示工程(LCD1602显示)\objects\基于STC12C5A60S2的DS18B20温度显示工程(LCD1602显示).hex
     文件         211  2018-04-22 23:04  基于STC12C5A60S2的DS18B20温度显示工程(LCD1602显示)\objects\基于STC12C5A60S2的DS18B20温度显示工程(LCD1602显示).lnp
     文件         267  2018-05-28 21:33  基于STC12C5A60S2的DS18B20温度显示工程(LCD1602显示)\objects\基于STC12C5A60S2的DS18B20温度显示工程(LCD1602显示).plg
     文件        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

评论

共有 条评论