-
大小: 110KB文件类型: .zip金币: 2下载: 0 次发布日期: 2021-06-01
- 语言: 其他
- 标签: STC12C5A60S2 DS18B20 LCD1602
资源简介
基于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显示)\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
- 上一篇:低频数字式相位测量仪
- 下一篇:LABVIEW的生产者消费者模板
相关资源
- 单片机与温度传感器DS18B20的程序设计
- 毕业论文之温度传感器DS18B20(源码
- stm32 ds18b20 温度传感器 测试通过
- [免费]msp430f149控制PS2键盘并用1602显示
- 51单片机读取温度数据存储到SD卡中并
- vhdl与lcd1602实现的多控制电子钟
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- DS18B20分布式多点测温的Proteus仿真
- STC12C5A60S2 CH4521 驱动数码管 显示
- ADC0809数字电压表 LCD1602显示 汇编程序
- 单片机 DS18B20 温度控制系统
- 课程设计蔬菜大棚自动控制系统,包
- STC12C系列单片机函数库
- ds18b20温度传感是什么传感器
- LCD1602显示程序
- 第四章 畅学多功能实验箱液晶资源详
- proteus仿真、keil4、DHT11、LCD1602
- DS18B20_Serial_println.ino
- ds18b20测温例程tm4c123x
- STM32F103C8T6读取DS18B20串口显示程序.r
- DS18B20温度+DHT11湿度+LCD1602
- TM4C系列ds18b20温度传感器例程
- 读写ds18b20内部eeprom
- 基于FPGA的DS18B20单总线控制+数码管显
- STM32F103C8T6读取DS18B20串口显示程序
- STM32F103读取ds18b20温度传感器
- DS18B20-液晶1602显示温度和控制(代码
- 基于FPGA的LCD1602实时显示DS18b20温度
- STM32+ZE08-CH2O甲醛传感器+LCD1602显示.r
- 通过DS18B20检测环境温度,并在LCD128
评论
共有 条评论