锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

单片机烟雾传感器报警实验程序

时间:2022-11-01 08:30:00 79传感器5e0100200112传感器

#include

#definebuf_len 9

unsigned char temp[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

unsigned char write_buf[buf_len] = {0xff,0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x79};

char read_buf[buf_len] = {0};

unsigned char uart_len = 0;

unsigned char uart_RX_num = 0;

void delay_ms(int ntime)

{

int i;

while(ntime--)

for(i = 0; i<120; i );

}

void uart_init(void)

{

TMOD=0x20; //用于定时器设置

TH1=0xfd; //设置初始值 9600=(2的SMOD次方/32)*(TI溢出率)=(1/32)*(11059200/12)/(256-X)

TL1=0xfd;

TR1=1; ///打开定时器1

SM0=0; ///设置串行口工作方式

SM1=1;

REN=1; //允许串行接收位

EA=1; //开启总中断

ES=1; //打开串口中断

//ES = 1;

}

void main(void)

{

unsigned int i =0;

unsigned int oldcount = 0;

unsigned char flag = 1;

unsigned char g,s,b;

uart_init();

P1 = 0x00;

P0 = 0x00;

while(1)

{

if(flag)

{

flag = 0;

ES=0; //关闭串口中断

for(i=0; i<9; i )

{

SBUF = write_buf[i]; ///发送数据a到SBUF,将单片机数据发送到计算机

while(!TI); ///发送数据后,TI自动置1

TI=0; //TI只有置0,下次才能发送

}

ES=1; //打开中断

}

i = 100;

while(i--)

{

P1 = 0x01;

P0 = temp[g];

delay_ms(5) ;

P1 = 0x02;

P0 = temp[s];

delay_ms(5);

P1 = 0x04;

P0 = temp[b];

delay_ms(5);

}

if(uart_RX_num)

{

if(uart_RX_num == oldcount)

{

ES=0; //关闭串口中断

for(i=0; i

{

SBUF = read_buf[i]; ///发送数据a到SBUF,将单片机数据发送到计算机

while(!TI); ///发送数据后,TI自动置1

TI=0; //TI只有置0,下次才能发送

}

g =(read_buf[3]);

s =(read_buf[3]/16);

b =(read_buf[2]);

ES=1; //打开中断

flag = 1;

}

else

oldcount = uart_RX_num;

}

……………………

…………本文篇幅有限 请从51黑下载剩余代码…………

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章