/********該程式主要是利用ds18b20採集溫度,然後通過數碼管顯示溫度*************/
/*當程式收到上位機傳送的命令之後,該程式會將當時的溫度值通過串列埠傳送給上位機*/
#include
#defineuchar
unsigned
char
#defineuint
unsigned
int
sbitdq=p1^0;//定義ds18b20的訊號線埠
uchari,j;
uchardis_buffer[4];//定義資料緩衝陣列
ucharbit_ser=;
//定義數碼管片選陣列
ucharseven_seg=;
//定義數碼管段選陣列
/****************************延時函式*********************************/
voiddelay(uint
x)
/*************************ds18b20初始化函式***************************/
voidinit_ds18b20(void)
/***************************從18b20中讀乙個位元組************************/
ucharreadonechar(void)
return(dat);
}
/***************************向18b20中寫乙個位元組************************/
write_onechar(uchardat)
delay(4);
}
/**************************從18b20中讀取乙個位元組***********************/
intread_temperature(void)
/***************************初始化定時器0******************************/
voidtimer0_init(void)
//
/*************************傳送資料的函式********************************/
voidtxd_data(char
send_data)
/********************t0中斷處理函式,主要用於顯示當前溫度***************/
voidtimer0_isr(void)interrupt
1
i++;
if(i>=
4)
}
}
/***************************串列埠通訊初始化函式***************************/
voiduart_init(void)
/**************************串列埠中斷處理函式*****************************/
voiduart()interrupt
4
}
ri=0;
}
/*******************************主函式*********************************/
void}main()
微控制器串列埠通訊
微控制器串列埠通訊 通常的usb序列通訊方式為全雙工,即兩條資料線 rxd和txd,一條用於傳送資料,一條用於接收資料。在序列通訊前,需要對序列通訊進行配置。對於微控制器 ri為接受中斷標誌位,未通訊時ri 0 當電腦傳送第乙個位元組幀a0到微控制器時,sbuf a0,中斷標誌位ri 1,微控制器呼...
微控制器串列埠通訊
1 需求 實現電腦端控制微控制器開啟燈光風扇,顯示微控制器傳遞過來的資料 如溫度 濕度等 2 工具 平台軟體 驅動人生 vs2012 keil4 3 下面就開始吧 4 檢視我們當前的通訊埠號 如圖 然後確定我們微控制器的晶振,我是用的是11.0592m的 即9600 差不多我們就可以開始我們的開發了...
微控制器串列埠通訊
1 每隔1秒鐘,a向b通過串列埠傳送乙個位元組c num 該位元組按照0x00 0x09迴圈,例如某一時刻傳送c num 0x 3 2 b接收到資料後,做9 c num的計算,並將計算結果通過串列埠傳送給a微控制器。例如b接收到0x03,則b要通過串列埠返回0x09 0x03 0x06給微控制器a ...