標題: 怎么把這多個單片機程序合成一個呀?求大神指教 [打印本頁]
作者: 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)
下載附件
2019-11-25 14:26 上傳
作者: 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.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |