-
大小: 110KB文件类型: .zip金币: 1下载: 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的生产者消费者模板
相关资源
- 基于89C51的等精度频率计LCD1602显示1
- 以51单片机为核心的DS18B20的数码管显
- stc12c5a60s2的头文件
- STC12C5A60S2简单的AD转换程序
- 基于DS18B20的数字温度计设计原理图
- 用DS18B20测量温度并在12864液晶屏上显
- 基于STC12C5A60S2自带AD转换和TL5615芯片完
- nrf2401的收发程序 带到DS18B20
- LCD1602液晶显示的计算器加减乘除
- LCD12864 万年历 单片机 农历 显示 温度
- 解析GPS数据并用LCD1602显示
- 基于STC12C5616AD单片机的AD采集程序LC
- DS1302实时时钟,LCD1602显示,可调时间
- 51单片机做的温度计和AD采样,用的
- 基于msp430f149的ds18b20显示程序
- AD0809驱动 用LCD1602显示采集的模拟电压
- zw_LCD1602.zip
- STC12C5A60S2的内部AD和PWM的程序
- PIC16F877A和LCD1602液晶显示以及mpx4250压
- 基于STC15F2K60S2单片机的温湿度+CO2测量
- STC89c51/52及STC12C5A60S2单片机原理图和
- 呼吸灯STC12C5A60S2
- STC12C5A60S2详细例程 20多个例程
- AVR-mega128单片机实现温度DS18B20,prot
- 1602 基于89C51单片机的DS18B20恒温控制系
- 89C52单片机通过LCD1602显示任意长度字
- DS18B20数码管显示温度
- DS18B20 STC1T系列单片机驱动程序
- DSP2812的LCD1602显示程序
- STC12C5A60S2内部AD+LCD1602显示
评论
共有 条评论