» 您尚未 [登录 - 注册] ┆ 帮助 ┆ Archiver ┆ ┆ 
--> 标题: [自解决]求一个51板做的程序段
您是本帖第2002个阅读者。
性别:男<br>状态:离线<br>积时:3 天 21 小时 48 分 22 秒
q775008


小学生

头衔:未定义
等级:小学生
帖数:6
金钱:97
S币:0
收藏 举报 1F 资料 | 留言 | 编辑 | 引用 | 评帖 | 主页
[自解决]求一个51板做的程序段

现有程序段如下,求高手指点拼接

********************DS18B20********************

#include <reg52.h>

#define uchar unsigned char    //预定义 uchar 为 unsigned char 的一个代名词

#define uint unsigned int       //预定义uint 为 unsigned int 的一个代名词

sbit L0=P1^0;               //定义L0为P1口的第1位

sbit L1=P1^3;               //定义L1为P1口的第3位

sbit DQ=P0^2;             //定义DQ为P0口的第2位

*******************延时电路*************************

void Delay(uint num)


while(num--) ;


********************延时0.2s电路********************

void delay02s(void)


unsigned char i,j,k;

for(i=20;i>0;i--)

for(j=20;j>0;j--)

for(k=248;k>0;k--);


********************初始化LED灯********************

Init Led()


L0=1;

L1=1;


********************初始化DS18B20********************

void Init_DS18B20(void)


unsigned char x=0;

DQ = 1;  

Delay(8);

DQ = 0;   

Delay(80);

DQ = 1;   

Delay(14);

x=DQ;    

Delay(20);


********************读DS18B20********************

ReadOneChar(void)


unsigned char i=0;

unsigned char dat = 0;

for (i=8;i>0;i--)


DQ = 0;

dat>>=1;

DQ = 1;

if(DQ)

   dat|=0x80;

Delay(4);


return(dat);


********************写DS18B20********************

WriteOneChar(unsigned char dat)


unsigned char i=0;

for (i=8; i>0; i--)


DQ = 0;

DQ = dat&0x01;

Delay(5);

DQ = 1;

dat>>=1;


Delay(4);


********************读取温度值********************

uint ReadTemperature(void)


       unsigned char m=0;

       unsigned char n=0;

       unsigned int t=0;

       float tt=0;

       Init_DS18B20();

       WriteOneChar(0xCC);

       WriteOneChar(0x44);

       Init_DS18B20();

       WriteOneChar(0xCC);

       WriteOneChar(0xBE);

       m=ReadOneChar();

       n=ReadOneChar();

       t=n;

       t<<=8;

       t=t|m;

       tt=t*0.0625;

       t= tt*10+0.5;

       return(t);


********************主函数********************

void main(void)

{unsigned int temp;

while(1)                      

{ temp=ReadTemperature();

      if(temp<35) { L0=1;L0=0; }

       if(temp>35) { L1=1;L1=0; }



主程序段如1楼所示,电路图如2楼所示

要实现的功能

1.先是预热,整个电路先初始化,在系统连接正常的情况下L0灯亮

2.MQ-2检测到烟雾,DS18B20在温度达到70度时(同时)L1灯亮并产生蜂鸣

3.当系统中出现故障的情况下L3灯亮

求高手指点,在线等高手

 









----签名档 --------------------------------------------------------
眼镜蛇论坛欢迎您!

Posted:2011-06-03 16:33:07
性别:男<br>状态:离线<br>积时:3 天 21 小时 48 分 22 秒
q775008


小学生

头衔:未定义
等级:小学生
帖数:6
金钱:97
S币:0
2F 资料 | 留言 | 编辑 | 引用 | 评帖 | 主页






----签名档 --------------------------------------------------------
眼镜蛇论坛欢迎您!

Posted:2011-06-03 16:34:06
×
性别:男<br>状态:离线<br>积时:10 个月 0 天 2 小时 24 分 46 秒
aj8714523


管理员

头衔:眼镜蛇管理员
等级:管理员
帖数:1402
金钱:1017
S币:74

3F 资料 | 留言 | 编辑 | 引用 | 评帖 | 主页


电路图看不到.






----签名档 --------------------------------------------------------
世界上比毒品更容易成瘾的,是装逼时的感觉。。。。

Posted:2011-06-03 19:00:03
×
性别:男<br>状态:离线<br>积时:11 小时 12 分 12 秒
加菲猫查理


总版主

头衔:未定义
等级:总版主
帖数:1
金钱:200
S币:0
4F 资料 | 留言 | 编辑 | 引用 | 评帖 | 主页


这个,电路图看不到呀~~






----签名档 --------------------------------------------------------
我们只做专业!!!

Posted:2011-06-03 19:33:08
×
性别:男<br>状态:离线<br>积时:3 天 21 小时 48 分 22 秒
q775008


小学生

头衔:未定义
等级:小学生
帖数:6
金钱:97
S币:0
5F 资料 | 留言 | 编辑 | 引用 | 评帖 | 主页


有有,你们让我看到了希望,我在2楼发的是传送门,是baidu贴吧的







----签名档 --------------------------------------------------------
眼镜蛇论坛欢迎您!

Posted:2011-06-03 20:39:32
×
性别:男<br>状态:离线<br>积时:1 天 19 小时 10 分 50 秒
小涛涛


初中生

头衔:未定义
等级:初中生
帖数:44
金钱:246
S币:1
6F 资料 | 留言 | 编辑 | 引用 | 评帖 | 主页



上传的图片
  抱歉,您所在的组无权下载附件,请注册登陆

图片看不起~加载不完全,另外发个仿真文件来看撒,程序有点乱~囧







----签名档 --------------------------------------------------------
XXX,你懂的....

Posted:2011-06-03 22:02:34
×
 每页10条,共1页,合计6条记录
9  1  :
转到  


Powered By:Discuz! 6.0 Processed in:0.156250s,33 queries.
眼镜蛇论坛|单片机论坛| 技术支持:【QQ】1522066584

免 责 声 明 本站提供网上自由讨论使用,所有个人言论并不代表本站立场,与本站立场无关,本站不会对其內容负上任何责任。
假若內容有涉及侵权,请立即联络我们。我们将立刻从网站上刪除,并向所有持版权者致最深的歉意。