>_<:>
通過串列埠pc
和微控制器通訊,可以詢問微控制器測得的溫度,可以詢問聲吶測距的測量距離,同時把測量溫度顯示在數碼管上。
這裡com.cpp
和com.h
是串列埠通訊的函式封裝,在主函式中:
1if(openport("
com4"))
2 printf("
open comport success\n");
3if(setupdcb(9600
))4 printf("
setupdcb success\n");
5if(setuptimeout(0,0,0,0,0)) //
如果所有寫超時引數均為0,那麼就不使用寫超時
6 printf("
setuptimeout success\n");
7 clearall();//
全清
1>_<:>裝置:連線:這裡選用11.0592mhz的晶振,將8位7段數碼管公共線接p0的8個埠,p2.3接位碼,p2.2接段碼;串列埠通訊採用max232連線如圖所示。while(1
)else
if(a==6
)else
28 }
main函式介紹:
#初始化部分介紹:
2 init_timer0();
3 uart_init(); // 串列埠初始化
4 init_timer1();
5 6 readtemperature();//這裡放置3個溫度讀取,防止出現初始化溫度不穩定情況
7 readtemperature();
8 readtemperature();
1#主迴圈介紹:void uart_init(void)2
1while (1
) 28
if(uart_flag==1) //
接收到9
else
if(come=='
2')else
//其他操作
26switch(a)
32 uart_send_byte('\n'
);33
break;34
case'2
'://
要距離35
for(i=0;i<16;i++)
3639 uart_send_byte('\n'
);40
break;41
case'3
':42if
(isinclude)else
64break;65
case'4
':66if
(isabove)else
86break;87
case'5
':88 come='1'
;89break;90
case'6
':91 come='2'
;92break;93
default://
錯誤操作
94for(i=0;i<16;i++)
9598 uart_send_byte('\n'
);99
break
;100
}101 es=1; //
允許串列埠中斷
102 uart_flag=0; //
中斷標誌位置0
103}
104else
if(readtempflag==1)//
通過定時器,每隔1200ms掃瞄一次溫度
105114
else
115 tempdata[0]=0;//
其他情況就該顯示負號的不顯示
116117 temph=temp>>4;//
去除低四位
118 templ=temp&0x0f;//
獲取溫度低四位
119 templ=templ*6/10;//
小數近似處理!
120121
if(temph>0 && temph>maxwendu)isabove=1;//
界限判斷
122123
if(temph/100==0)//
百位資料
124 tempdata[1]=0
;125
else
126 tempdata[1]=duanma[temph/100]; //
百位溫度
127if((temph%100)/10==0)//
十位溫度
128 tempdata[2]=0
;129
else
130 tempdata[2]=duanma[(temph%100)/10
];131 tempdata[3]=duanma[(temph%100)%10]|0x80; //
個位溫度,帶小數點
132 tempdata[4]=duanma[templ];
133 tempdata[6]=0x39; //
顯示c符號
134135
136 senddata[11]=(unsigned char)(temph/100+'0'
);137 senddata[12]=(unsigned char)(temph%100/10+'0'
);138 senddata[13]=(unsigned char)(temph%100%10+'0'
);139 senddata[14]='.'
;140 senddata[15]=(unsigned char)(templ+'0'
);141 }else
if(readtempflag==2
)150 }
1void uart(void) interrupt 4
29 }
1void timer0_isr(void) interrupt 1
2else
if(num==150
)
1216 }
1全部資源連線:void conut(void)2
12if(s1;//
界限判斷
13//
.......
14 }
微控制器和MODEM介面及遠端資料傳輸
2007 12 25 11 12 07 摘要 介紹了一種以w78e52微控制器為控制核心和數據機 modem 介面進行遠端資料採集與傳送的實用電路。該電路結構簡單 可靠性高 控制方便。文中講述了modem的at指令描述以及用微控制器控制modem的方法,並結合系統功能及原理給出了主程式流程圖。隨著自...
8051微控制器資料傳輸介面擴充套件技術與應用例項
書名 8051微控制器資料傳輸介面擴充套件技術與應用例項 isbn 7115128944 定價 楊金巖 鄭應強 譯者 出版社 人民郵電 出版商 出版日期 2005 01 01 開本 16開 裝幀 平裝 字數580 頁數 371 內容簡介 第1章 微控制器資料傳輸介面概述 11.1 微控制器並行資料介...
基於51微控制器的溫度探測
這次的專案姑且算作舊瓶裝新酒吧,以前做過stm32和dht11的溫度探測,這一次是較為低價版的c51和ds18b20溫度探測。ds18b20是常用的數字溫度感測器,其輸出的是數碼訊號,具有體積小,硬體開銷低,抗干擾能力強,精度高的特點。個人感覺主要特點就是 低,這對於很多精度要求不高的量產產品來說很...