云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于51单片机的温控智能电风扇讲解

基于51单片机的温控智能电风扇讲解

  • 62 次阅读
  • 3 次下载
  • 2025/12/3 0:07:28

叶惠芳2011330300302机电11(1)班

附录三

程序清单 1.主程序 void main(void) {

uint ltemp;

ltemp=read_temp(); //温度赋值 delay(2);

d=read_ds18b20_date(); //温度的低位 uchar g,d; //初始化温度 dianji=0; //初始化电机

read_temp(); //读取测温子程序,读取温度数值 delay(1000); //延时 while(1) {

int1=1;

int2=0; dianji=0;

g=read_ds18b20_date(); //温度的高位

ltemp=g; ltemp<<=8; ltemp=ltemp|d; t=ltemp*0.0625;

ltemp=t*10; shi=ltemp/100; //温度十位

ge=(ltemp0)/10; //温度个位

25

叶惠芳2011330300302机电11(1)班

keyscan(); //读取键盘子程序

delay(2);

deal(ltemp/10); //运行温度判断子程序,由温差设置占空比 dianjik(); //运行电机控制子程序 }

2.温度显示子程序

void ledshow(uchar a4,uchar a3,uchar a1,uchar a0) {

dispbuf[0]=a0;

dispbuf[1]=a1; dispbuf[3]=a3; }

dispbuf[4]=a4;

P2=0xff;

P2=0xff;

//温度传感器个位

//按键十位

P2=0xff; //按键个位 P0=dispcode[dispbuf[0]]; P2=dispbitcode[5]; delayus(1);

P0=dispcode[dispbuf[1]]; P2=dispbitcode[4]; delayus(1);

P0=dispcode[dispbuf[3]]; P2=dispbitcode[1]; delayus(1);

26

叶惠芳2011330300302机电11(1)班

}

P2=0xff; //第一位,传感器十位

P0=dispcode[dispbuf[4]]; P2=dispbitcode[0]; delayus(1);

3.DS18B20子程序

void clean_ds18b20() //初始化 {

dq=0; //再讲数据线从高拉低,要求保持480~960us

delayus(90); //略微延时 以向ds发出一持续480~960us的低电平复位脉冲

dq=1; //将数据线拉高

delayus(3); //延时(释放总线后需等待15~60us让ds输出存在脉冲)

}

bit readbit() //读取一个位 { uchar i; bit dat; dq=0; i++; dq=1; i++; i++; dat=dq; delayus(8); return(dat); }

27

叶惠芳2011330300302机电11(1)班

uchar read_ds18b20_date() {

//读取一个字节

uchar j,i,dat; //存储读取的一个字节数据 dat=0; }

void write_ds18b20_date(uchar dat) { uchar i;

uchar j; bit testb; for(j=1;j<=8;j++) {

testb=dat&0x01; dat=dat>>1;

if(testb) //写1 { }

dq=0; //拉低

i++; //延时至少1us的恢复时间 i++; dq=1;

delayus(8); //延时保持至少60us

//写一个字节

for(i=1;i<=8;i++) {

j=readbit(); dat=(j<<7|dat>>1); }

return(dat);

28

搜索更多关于: 基于51单片机的温控智能电风扇讲解 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

叶惠芳2011330300302机电11(1)班 附录三 程序清单 1.主程序 void main(void) { uint ltemp; ltemp=read_temp(); //温度赋值 delay(2); d=read_ds18b20_date(); //温度的低位 uchar g,d; //初始化温度 dianji=0; //初始化电机 read_temp(); //读取测温子程序,读取温度数值 delay(1000); //延时 while(1) { int1=1; int2=0; dianji=0; g=read

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com