本帖最后由 hyg1997 于 2018-8-11 22:47 编辑
编译0错误,0警告,但是蜂鸣器就是不响。。。。。。
#include<reg52.h> #include <LCD1602.h> #include<MOTOR.H> #include<BEEP.H> #define uchar unsigned char #define uint unsigned int void main() { uinti,j; Delay_xms(50);//等待系统稳定 /* 系统初始化 */ TMOD = 0x20; //定时器T1使用工作方式2 TH1= 253; // 设置初值 TL1= 253; TR1= 1; // 开始计时 SCON = 0x50; //工作方式1,波特率9600bps,允许接收 ES= 1; EA= 1; // 打开所以中断 TI= 0; RI= 0; SendData(str) ; //发送到串口 Delay(1); //延时100US(12M晶振) while(1) { if((K==0)&&(G==1)) { for(j=0;j<4;j++) //圈数 { for(i=0;i<500;i++) //一圈 { MotorCW(); //顺时针转动 } } //Delay_xms(500); } else if ((G==0) &&(K==1)) { for(j=0;j<4;j++) //圈数 { for(i=0;i<500;i++) { MotorCCW(); //逆时针转动 } Delay_xms(500); } } else if ((G==0) &&(K==0)) { MotorStop( ); } { beep=1; if((FIRE==0)||(DOUT==0)) { delay(); if((FIRE==0)||(DOUT==0)) { beep=0;//蜂鸣器 } } } { //------------------------ //调用温湿度读取子程序 RH(); //串口显示程序 //-------------------------- str[0]=U8RH_data_H; str[1]=U8RH_data_L; str[2]=U8T_data_H; str[3]=U8T_data_L; str[4]=U8checkdata; SendData(str) ; //发送到串口 //读取模块数据周期不易小于 2S lcddisplay(); Delay(20000); //elihw } } // main { beep=1; if((FIRE==0)||(DOUT==0)) { delay(); if((FIRE==0)||(DOUT==0)) { beep=0; } } } } void RSINTR() interrupt 4 using 2 { U8 InPut3; if(TI==1) //发送中断 { TI=0; if(count!=5) //发送完5位数据 { SBUF= outdata[count]; count++; } } if(RI==1) //接收中断 { InPut3=SBUF; indata[count_r]=InPut3; count_r++; RI=0; if (count_r==5)//接收完4位数据 { //数据接收完毕处理。 count_r=0; str[0]=indata[0]; str[1]=indata[1]; str[2]=indata[2]; str[3]=indata[3]; str[4]=indata[4]; P0=0; } } }
|