- 8
- 0
- 约3.96千字
- 约 7页
- 2020-08-30 发布于江苏
- 举报
//按下 K1 显示序列码,按下 K2 显示实时温度(本实验适合初学者调试理解 18B20 用, )
#include reg52.h//52 单片机
#define uchar unsigned char
#define uint unsigned int //uint 无符号整数
sbit DQ=P2^2; //单总线(与自己的开发板相匹配)
uint temp; //温度
uchar flag1; //符号
sbit rs = P1^0; // 控制 LCD (与自己的开发板相匹配)
sbit rw = P1^1; // 控制 LCD (与自己的开发板相匹配)
sbit lcden = P2^5; //led 使能端 (与自己的开发板相匹配)
sbit K1=P3^4; //独立按键 k1(与自己的开发板相匹配)
sbit K2=P3^5; //独立按键 k2 (与自己的开发板相匹配)
sbit du=P2^6; //位选(防 LED 灯乱闪 )(与自己的开发板相匹配)
sbit we=P2^7; //段选(防 LED 灯乱闪 ) (与自己的开发板相匹配)
uchar a,b,c,d,e,f,g,h,A1,A2,A2t,A3,A4,A5;// 写在 LCD 上的字符,具体在程序中看
void delay(uint count) //延迟程序 (200*count)/8 毫秒
{
uint i;
while(count)
{
i=200;
while(i0)
i--;
count--;
}
}
void DQreset(void) //初始化, 主机将 DQ 拉高 (上升沿 ) (从机检测到上升沿后延时
15 到 60 毫秒,从机拉低总线 60 到 240 毫秒表示“我”在线)
{ //从机的工作是自动完成的
uint i;
DQ=0;
i=103;
while(i0)i--;
DQ=1;
i=4;
while(i0)i--;
}
bit tmpreadbit() //从 18b20 读 1 位
{
uint i;
bit dat;
DQ=0;i++;
DQ=1;i++;i++;
dat=DQ;
i=8;while(i0)i--;
return (dat); //返回 dat
}
uchar tmpread() //从 18b20 读 1 字节
{
uchar i,j,dat;
dat=0;
for(i=1;i=8;i++)
{
j=tmpreadbit();
dat=(j7)|(dat1);
}
return(dat);
}
void tmpwritebyte(uchar dat) //18b20 写 1bit (只能用于写命令)
{
uint i;
uchar j;
bit testb;
for(j=1;j=8;j++) //一位一位地传
{
testb=dat0x01;
dat=dat1;
if(testb)
{
DQ=0;
i++;i++;
DQ=1;
i=8;while(i0)i--;
}
else
{
DQ=0;
i=8;while(i0)i--;
DQ=1;
i++;i++;
}
}
}
void tmpchange(void) //温度转换子程序
{
DQreset();
delay(1);
tmpwritebyte(0xcc); //CCH 跳过 ROM
tmpwritebyte(0x44); //44H 温度转换
}
uint tmp() //读取温度子程序
{
float tt;
uchar a,b;
DQreset(); // 无论什么命令 , 首先都要发起初始化
delay(1);
tmpwritebyte(0xcc); //跳过 ROM (本实验中实验板上只连接一块 18B20)
tmpwritebyte(0xbe); //读便签存储器(温度以二进制储存于 BEH )
a=tmpread(); //a 为低八位
b=tmpread(); //b 为高八位
temp=b;
temp=8;
temp=temp|a;
tt=temp*0.0625; //二进制乘 0.0625 为十进制
temp=tt*1000; //精度为 0.001
return temp;
}
void LCD_WriteCom(uchar com)//LCD 写入命令
{
rs = 0;
rw = 0;
P0 = com;
delay(5);
lcden = 0;
delay(5);
lcden = 1;
delay(5);
lcden = 0;
}
void LCD_WriteData(uchar dat)//LCD 写入数据
{
rs = 1;
rw = 0;
lcden = 0;
P0 = dat;
delay(5);
您可能关注的文档
最近下载
- 2025年煤矿安全生产开工第一课培训课件.ppt
- 基于PLC的盾构机单液注浆系统设计_本科毕业设计(论文).doc VIP
- CDGA数据治理工程师认证考试2024真题模拟试卷(100题,含答案).pdf VIP
- 微网经济调度问题的混合整数规划方法.pdf VIP
- 河南成人2024学位英语考试真题及答案.docx VIP
- 长江中下游平原课件八年级地理下学期商务星球版.pptx VIP
- 商务星球版八年级地理下册长江中下游平原.pptx VIP
- 黄浦区2011高考二模试卷及答案.doc VIP
- 常用草药验方手册(江西万年县革委会1970).pdf
- 长江中下游平原课件商务星球版地理八年级下册.pptx VIP
原创力文档

文档评论(0)