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

当前位置:首页 > 基于单片机火灾报警器程序文件

基于单片机火灾报警器程序文件

  • 62 次阅读
  • 3 次下载
  • 2025/12/2 23:53:17

Scl=1; _nop_(); Scl=0; _nop_(); }

/*------------------------------------------------ 非应答IIC总线 ------------------------------------------------*/ void NoAck(void) { Sda=1; _nop_(); Scl=1; _nop_(); Scl=0; _nop_(); }

/*------------------------------------------------ 发送一个字节

------------------------------------------------*/ void Send(unsigned char Data) { uchar BitCounter=8; uchar temp; do { temp=Data; Scl=0; _nop_(); if((temp&0x80)==0x80) Sda=1; else Sda=0; Scl=1; temp=Data<<1; Data=temp; BitCounter--; }

while(BitCounter); Scl=0; }

/*------------------------------------------------ 读入一个字节并返回 ------------------------------------------------*/ unsigned char Read(void) { uchar temp=0; uchar temp1=0; uchar BitCounter=8; Sda=1; do { Scl=0; _nop_(); Scl=1; _nop_(); if(Sda) temp=temp|0x01; else temp=temp&0xfe; if(BitCounter-1) { temp1=temp<<1; temp=temp1; } BitCounter--; } while(BitCounter); return(temp); }

/*------------------------------------------------

写入DA数模转换值 ------------------------------------------------*/ void DAC(unsigned char Data) { Start(); Send(AddWr); //写入芯片地址

Ack();

Send(0x40); //写入控制位,使能DAC输出 Ack(); Send(Data); //写数据 Ack(); Stop(); }

/*------------------------------------------------

读取AD模数转换的值,有返回值 ------------------------------------------------*/ unsigned char ReadADC(unsigned char Chl) {

uchar Data; Start(); //写入芯片地址 Send(AddWr); Ack(); Send(0x40|Chl);//写入选择的通道,本程序只用单端输入,差分部分需要自行添加 //Chl的值分别为0、1、2、3,分别代表1-4通道 Ack(); Start(); Send(AddRd); //读入地址 Ack(); Data=Read(); //读数据 Scl=0; NoAck(); Stop(); return Data; //返回值 }

void yanwuget() //获得烟雾值 {

if(ADFlag) //定时采集输入模拟量 { ADFlag=0; }

ADtemp=ReadADC(3); }

/*DS18B20数据采集*/

void delay(uint count) //延时函数 {

uint i;

while(count) {

i=200; while(i>0) i--;

count--; } }

void Init_Com(void) //串口初始化,波特率9600,方式1 {

TMOD = 0x20; PCON = 0x00; SCON = 0x50; TH1 = 0xFd; TL1 = 0xFd; TR1 = 1; PT1=1; }

void dsreset(void)//发送复位和初始化命令 {

uint i; DS=0; i=103;

while(i>0)i--; DS=1; i=4;

while(i>0)i--; }

bit tmpreadbit(void) //read a bit {

uint i; bit dat;

DS=0;i++; //i++ for delay DS=1;i++;i++; dat=DS;

i=8;while(i>0)i--; return (dat); }

uchar tmpread(void) //read a byte date {

uchar i,j,dat;

搜索更多关于: 基于单片机火灾报警器程序文件 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

Scl=1; _nop_(); Scl=0; _nop_(); } /*------------------------------------------------ 非应答IIC总线 ------------------------------------------------*/ void NoAck(void) { Sda=1; _nop_(); Scl=1; _nop_(); Scl=0; _nop_(); } /*------------------------------------------------ 发送一个字节 ------------------------------------------------

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价: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