资源简介
基于LCD1602读取DS18B20序列号proteus仿真有图有代码,代码可能有点乱,但是测试通过,可自行修改。
代码片段和文件信息
/*******************************************************************************
* 描述: *
* 1602字符型LCD显示演示程序 *
* 在第一行显示 welcome *
* 在第二行显示 www.PRECHIN.com *
* *
********************************************************************************/
#include
#include
typedef unsigned char BYTE;
typedef unsigned int WORD;
#define uchar unsigned char
#define uint unsigned int
typedef bit BOOL ;
uint tempflag1;
int LedOut[4];
int temper;
sbit DQ=P3^7;
sbit rs = P2^4; //
sbit rw = P2^5;
sbit ep = P2^6;
uchar sn[8];
BYTE code dis1[] = {“XQL“};
BYTE code dis2[] = {“CC“};
uchar code table[]={0x3f0x060x5b0x4f
0x660x6d0x7d0x07
0x7f0x6f0x770x7c
0x390x5e0x790x71};
sbit LS138A=P2^0; //管脚定义
sbit LS138B=P2^1;
sbit LS138C=P2^2;
/*--------- DS18B20-----------*/
void delay1(unsigned char i)
{
while(i--);
}
void initionds18b20()
{
DQ=0;
delay1(128); //900us
DQ=1;
delay1(1);
while(DQ); //检测到应答脉冲
//i=103;while(i>0) i--;//等待870us
delay1(100);
}
uchar readds18b20()
{ uchar i = 0;
uchar dat = 0;
for(i=8;i>0;i--)
{
DQ = 0; //将总线拉低,要在1us之后释放总线
//单片机要在此下降沿后的15us内读数据才会有效。
_nop_(); //至少维持了1us表示读时序开始
dat >>= 1; //让从总线上读到的位数据,依次从高位移动到低位。
DQ = 1; //释放总线,此后DS18B20会控制总线把数据传输到总线上
delay1(1); //延时7us此处参照推荐的读时序图,尽量把控制器采样时间放到读时序后的15us内的最后部分
if(DQ) //控制器进行采样
{
dat |= 0x80; //若总线为1即DQ为1那就把dat的最高位置1;若为0则不进行处理保持为0
}
delay1(10); //此延时不能少,确保读时序的长度60us。
}
return (dat);
}
void writeds18b20(uchar dat)
{
uchar i = 0;
for(i=8;i>0;i--)
{
DQ = 0; //拉低总线
_nop_(); //至少维持了1us表示写时序(包括写0时序或写1时序)开始
DQ = dat&0x01; //从字节的最低位开始传输
//指令dat的最低位赋予给总线必须在拉低总线后的15us内
//因为15us后DS18B20会对总线采样。
delay1(10); //必须让写时序持续至少60us
DQ = 1; //写完后必须释放总线
dat >>= 1;
delay1(1);
}
}
void tmpchange()
{
// uint i;
initionds18b20();
//dsWait();
//delay(1);
writeds18b20(0xcc);//跳过序列号命令
writeds18b20(0x44);//发转换命令
//DQ=1;i++;i++;
}
uint tmp()
{
uchar ab;
float tt;
initionds18b20();
writeds18b20(0xcc);
writeds18b20(0xbe);//发送读取命令
a=readds18b20();//读温度低位
b=readds18b20();//读温度高位
temp=b;
temp<<=8;
temp|=a;
tt=temp*0.0625;
temp=tt;
return (temp);
}
void rom() //读取序列号
{
uchar i;
int j;
initionds18b20();
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1340 2012-03-09 17:22 基于LCD1602与LED的proteus仿真温度测量\防真图\LCD1602-DS18B20.PWI
文件 38000 2012-03-08 23:48 基于LCD1602与LED的proteus仿真温度测量\防真图\Last Loaded LCD1602-DS18B20.DBK
文件 36915 2012-03-09 17:19 基于LCD1602与LED的proteus仿真温度测量\防真图\LCD1602-DS18B20.DSN
文件 5828 2012-03-09 17:22 基于LCD1602与LED的proteus仿真温度测量\代码\lcd1602.c
文件 3078 2012-03-09 17:22 基于LCD1602与LED的proteus仿真温度测量\代码\lcd1602.hex
文件 46 2012-03-09 17:22 基于LCD1602与LED的proteus仿真温度测量\代码\lcd1602.lnp
文件 17668 2012-03-09 17:22 基于LCD1602与LED的proteus仿真温度测量\代码\lcd1602.M51
文件 1664 2012-03-09 17:22 基于LCD1602与LED的proteus仿真温度测量\代码\lcd1602.plg
文件 1996 2012-03-08 22:19 基于LCD1602与LED的proteus仿真温度测量\代码\lcd1602.Uv2
文件 0 2012-03-08 14:57 基于LCD1602与LED的proteus仿真温度测量\代码\lcd1602_Uv2.Bak
文件 13453 2012-03-09 17:22 基于LCD1602与LED的proteus仿真温度测量\代码\lcd1602.LST
文件 14546 2012-03-09 17:22 基于LCD1602与LED的proteus仿真温度测量\代码\lcd1602.OBJ
文件 13296 2012-03-09 17:22 基于LCD1602与LED的proteus仿真温度测量\代码\lcd1602
....... 1012 2012-03-09 17:19 基于LCD1602与LED的proteus仿真温度测量\代码\lcd1602_Opt.Bak
文件 1016 2012-03-09 17:22 基于LCD1602与LED的proteus仿真温度测量\代码\lcd1602.Opt
目录 0 2012-03-08 22:36 基于LCD1602与LED的proteus仿真温度测量\防真图
目录 0 2012-03-08 22:36 基于LCD1602与LED的proteus仿真温度测量\代码
目录 0 2012-03-08 22:36 基于LCD1602与LED的proteus仿真温度测量
----------- --------- ---------- ----- ----
149858 18
相关资源
- 基于LCD1602与LED同时的proteus仿真温度测
- 基于cyclone II驱动LCD1602的电子时钟设计
- LCD1602液晶显示函数
- 4×4矩阵键盘键值LCD1602显示汇编语言
- 51单片机获取DS18B20序列号LCD显示
- 《lcd1602仿真》
- 1602LCD 库文件
- 51单片机+DS18B20+NRF24L01+LCD1602=无线温度
- 51单片机驱动K型热电偶数字转换器M
- 51单片机Protues,仿真DS18b20温度传感器
- vhdl 与lcd1602
- DS1302 LCD1602显示 protues仿真
- AT89C52+LCD1602+TLC0831+步进马达
- LCD1602显示代码,verilog HDL编写。
- ds1302时钟、温度、LCD1602显示,按键设
- 基于51单片机的计算器39629
- FPGA LCD1602驱动
- lcd1602取字模工具
- nios ii显示lcd1602程序
- TN901红外测温仪 非接触红外测温仪 设
- 基于AT89C51和LCD1602的电子时钟
- STC12C5A60S2自带ADC采集电压信号+DS18B2
- 51单片机LCD1602模拟门禁系统 源代码
- 基于树莓派的无线远程温湿度数字显
- 基于单片机的LCD1602电子时钟程序和仿
- Proteus仿真ds12c887+lcd1602的电子万年历
- 用FPGA实现LCD1602显示程序
- c51+lcd1602初始化并显示简单字符
- Verlog 驱动TLC549在LCD1602显示
- 51单片机 LCD1602液晶 sht31 IIC接口
评论
共有 条评论