标题: 怎么把这多个单片机程序合成一个呀?求大神指教 [打印本页]
作者: dididi1234 时间: 2019-11-25 12:56
标题: 怎么把这多个单片机程序合成一个呀?求大神指教
(1) DS18B20读取转录温度程序设计
voidtempchang(void) //获取并转换
{
dsreset();
delay(1);
tpye(0xcc); //读写并读rom指令
tpye(0x44); //写温度转换指令
}
uint gt_temp() //读取寄存器存储数据
{
uchar a,b;
dsreset();
delay(1);
tpye(0xcc);
tpye(0xbe); //uint 给外面一个温度数值
a=tpread(); //低八位
b=tpread(); //低八位
temp=256*b+a;
f_temp=temp*0.0625; //分辨率0.0625,温度在寄存器为12位
temp=f_temp*10+0.5; //将f_temp乘以10
return temp; //整型
}
(2) 数码管显示程序设计
ucharflag1,flag2,flag3,flag4,numm,q,b,s,g; //共阴数码管
ucharcode number[]= { 0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,};
ucharcode number1[]={0xbf,0x86,0xdb,0xcf,0xe6,
0xed,0xfd,0x87,0xff,0xef};
(3) 按键电路电路设计
void keyscan()
{
if(s1==0)
{P2=0xff;
delay(5);
if(s1==0)
{
numm++;
if(numm==1) //第一种情况
{
flag=1;
}
if(numm==2) //第一种情况
{
flag=2;
}
if(numm==3) //第一种情况
{
numm=0;
flag=0;
}
while(!s1);
}
}
if(numm==1) //提高或降低下限
{
flag=1;
if(s2==0)
{
delay(5);
if(s2==0)
{
l+=10;
if(l==1000)
l=200;
}
while(!s2);
}
if(s3==0)
{
delay(5);
if(s3==0)
{
l-=10;
if(l==0)
l=200;
}
while(!s3);
}
}
if(numm==2) //提高或降低上限
{
flag=2;
if(s2==0)
{
delay(5);
if(s2==0)
{
h+=10;
if(h==1000)
h=200;
}
while(!s2);
}
if(s3==0)
{
delay(5);
if(s3==0)
{
h-=10;
if(h==0)
h=300;
}
while(!s3);
}
}
}
(4) 报警程序设计
void main()
{
init();
while(1)
{
tempchang();
if(temp>h) //高于设定值上限,则报警
{
high();
}
if(temp<l) //低于设定值下限,则报警
{
low();
}
}
}
(5) DS18B20读取字节函数设计
voiddsreset(void) //复位,初始化测温函数
{
uint i;
ds=0;
i=140; //延时512μs
while(i>0) i--;
ds=1; //等待复位,若收到低电平则复位成功
i=4; //读取完之后等待48us再接着读取下一个数
while(i>0) i--; //消耗时间
}
bittpreadbit(void) //读一位数据
{
uint i;
bit dat;
ds=0;i++; //总线拉低1μs
ds=1;i++;i++; //释放总线,延时
dat=ds;
i=8;
while(i>0)i--;
return(dat);
}
uchartpread(void) //读一字节数据
{
uint i,j,dat;
dat=0;
for(i=1;i<=8;i++)
{
j=tpreadbit();
dat=(j<<7)|(dat>>1);
}
return(dat); // 复位函数
}
作者: pcbboy 时间: 2019-11-25 14:27
把文件加入到里面,再用Main 函数调用。
附图为你参考
-
目录.jpg
(104.08 KB, 下载次数: 62)
作者: jscsd226 时间: 2019-11-25 14:54
看一下新建工程的视频,就可以啦。
作者: yzwzfyz 时间: 2019-11-25 17:35
主线是:将各个程序做成一个个的函数。而后在主程序中依序调用。
细节是:你需要仔细分配系统资源,规划好时序。
作者: 466305213 时间: 2019-11-25 23:55
自己要规划好
作者: moluxiyan 时间: 2019-11-26 09:20
先巩固一下C语言,然后看看别人的程序怎么写的
作者: 冷月枫 时间: 2019-11-26 21:25
判断好逻辑关系,直接加到一个工程里就行
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |