标题:
蓝牙接受单片机的烟雾温度数据信息,这是一个主程序,求注释
[打印本页]
作者:
喵帕斯zz
时间:
2019-5-12 15:53
标题:
蓝牙接受单片机的烟雾温度数据信息,这是一个主程序,求注释
程序如下,部分没注释,哥哥们能帮我注释一下吗
#include <reg52.h> //头文件
#include <LCD1602.h> //头文件
#include "DS18B20.h" //头文件
#include <ADC0832.H> //头文件
#define uint unsigned int //宏定义
#define uchar unsigned char //宏定义
sbit key1=P3^2; //按键定义
sbit key2=P3^3; //按键定义
sbit key3=P3^4; //按键定义
sbit key4=P3^5; //按键定义
sbit beer=P2^4; //蜂鸣器定义
sbit ledbai=P2^1; //LED定义
sbit hong=P2^0; //LED定义
char data Tim[16]="T:00.0C Y:00000";//显示数组
char data Tes[16]="TH:30C YH:03000";//显示数组
int tmp,th=30,yh=3000; //变量定义
int tk; //变量定义
long yw; //变量定义
/***********************************************************
函数名称:Print_Char
函数功能:发送单个字符
入口参数:ch 出口参数:无
***********************************************************/
void Print_Char(uchar ch)//发送单个字符
{
SBUF=ch; //送入缓冲区
while(TI!=1); //等待发送完毕
TI=0; //软件清零
}
/***********************************************************
函数名称:Print_Str
函数功能:发送字符串
入口参数:*str 出口参数:无
***********************************************************/
void Print_Str()//发送字符串
{
uchar i;
for(i=0;i<16;i++) //发送第1组数据
{
Print_Char(Tim[i]);
}
Print_Char(' ');
Print_Char(' ');
for(i=0;i<16;i++) //发送第1组数据
{
Print_Char(Tes[i]);
}
}
/***********************************************************
函数名称:Ini_UART
函数功能:串口初始化、定时器初始化
入口参数:无 出口参数:无
***********************************************************/
void Ini_UART(void)//串口初始化、定时器初始化
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xFD;
TL1 = TH1;
PCON = 0x00;
TR1 = 1;
EA = 1;
ES = 1;
}
void caiji() //采集数据子函数
{
tmp=ReadTemperature()/10;
tk=Adc0832(0);
yw=10000-970.0*(160-tk)/13.0;//读AD转换结果
if(yw>10000)yw=10000;
else if(yw<300)yw=300;
}
void delay_ms(uint ms)// 延时子函数
{
while(ms--)
{
unsigned char a,b;
for(b=4;b>0;b--)
for(a=113;a>0;a--);
}
}
void keyscan() //按键扫描函数
{
//-----------------------------key1----------------------------
if(key1==0)
{
th++;
if(th>99)th=99;
}
//-----------------------------key2----------------------------
if(key2==0)
{
th--;
if(th<0)th=0;
}
//-----------------------------key3----------------------------
if(key3==0)
{
yh++;
if(yh>9999)yh=9999;
}
//-----------------------------key4----------------------------
if(key4==0)
{
yh--;
if(yh<0)yh=0;
}
}
void display() //显示函数
{
Tim[2]=tmp/100+'0'; //显示处理
Tim[3]=tmp%100/10+'0';
Tim[5]=tmp%10+'0';
Tim[11]=yw/10000+'0'; //显示处理
Tim[12]=yw%10000/1000+'0';
Tim[13]=yw%1000/100+'0';
Tim[14]=yw%100/10+'0';
Tim[15]=yw%10+'0';
Tes[3]=th/10+'0'; //显示处理
Tes[4]=th%10+'0';
//显示处理
Tes[11]=yh/10000+'0';
Tes[12]=yh%10000/1000+'0';
Tes[13]=yh%1000/100+'0';
Tes[14]=yh%100/10+'0';
Tes[15]=yh%10+'0';
ShowString(0,Tim); //显示第0行
ShowString(1,Tes); //显示第1行
}
void jiance() //检测报警子函数
{
if(tmp/10>th||yw>yh)
{
hong=0;
beer=0;
// GSM_TEXT_SMS();
delay_ms(2000);
}
else {beer=1;hong=1;}
}
/***********************************************************
函数名称:main
函数功能:主函数
***********************************************************/
uchar res;
void UARTInterrupt(void) interrupt 4
{
if(RI)
{
RI = 0;
res=SBUF;
}
else
TI = 0;
}
void main()
{
char hh;
tk=Adc0832(0);
yw=10000-970.0*(160-tk)/11.0;//读AD转换结果
tmp=ReadTemperature()/10; tmp=ReadTemperature()/10; tmp=ReadTemperature()/10; tmp=ReadTemperature()/10;
Ini_UART();
InitLcd();
tmp=ReadTemperature()/10; tmp=ReadTemperature()/10; tmp=ReadTemperature()/10; tmp=ReadTemperature()/10;
tk=Adc0832(0);
delay_ms(1000);
// Print_Str();
yw=10000-970.0*(160-tk)/11.0;//读AD转换结果
yw=10;
tmp=10;
while(1)
{
caiji(); //采集数据子函数
display(); //显示子函数
jiance(); //检测报警据子函数
keyscan(); //按键扫描子函数
hh++;if(hh>5){hh=0;EA=0;Print_Str();EA=1;}
if(res=='0')ledbai=0;
else if(res=='1')ledbai=1;
复制代码
作者:
supormao
时间:
2020-1-4 10:23
代码不全吧
作者:
流星2019
时间:
2020-1-4 16:18
写的人是觉得这个没必要注释,因为这个是主函数部分,不是温度传感器,蓝牙的配置过程,都是一些调用,没必要注释,你哪个地方没看懂指出来说就行,我们也不知道你问啥。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1