freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于霍爾傳感器的轉(zhuǎn)速測(cè)量電路的設(shè)計(jì)課程設(shè)計(jì)(已改無錯(cuò)字)

2022-10-07 20:03:28 本頁面
  

【正文】 為 PNP 型三極管,型號(hào)為 8550。 PR1 為阻值為 的 4P8 排阻,具有限流作用,防止三極管擊穿。 (a) Q18550Q28550Q38550Q48550A1 A2 A3 A4GND GND GND GND1 23 45 67 8RR1P20P21P22P23 (b) 圖 顯示電路 3 軟件系統(tǒng)設(shè)計(jì) 軟件流程圖 第 10 頁 課程設(shè)計(jì)說明書 圖 所示是軟件流程圖,首先進(jìn)行軟件初始化,然后主函數(shù)進(jìn)行數(shù)據(jù)處理,定時(shí)器函數(shù)設(shè)置定時(shí)時(shí)間是否到達(dá) 1S,達(dá)到 1 秒就更新電機(jī)轉(zhuǎn)速變量。沒有達(dá)到 1S 則不進(jìn)行數(shù)據(jù)更新處理。數(shù)據(jù)處理以后,通過數(shù)碼管顯示。計(jì)數(shù)器中斷函數(shù),通過外部脈沖計(jì)算脈沖個(gè)數(shù),定時(shí)器在更新電機(jī)轉(zhuǎn)速變量的時(shí)候,會(huì)讀取TH0、 TL0 寄存器,并清空寄存器。 圖 軟件流程圖 系統(tǒng)初始化 系統(tǒng)初始化函數(shù)主要是對(duì)系統(tǒng)的配置進(jìn)行初始化,在這里使用到的定時(shí)器 0和計(jì)數(shù)器 1,所以只需要對(duì)定時(shí)器 0 和計(jì)數(shù)器 1 進(jìn)行初始化即可。下面是初始換函數(shù): 計(jì)數(shù)脈沖 TH0、 TL0 寄存器值加 1 TH0、 TL0 寄存器值不變 開始 程序初始化化 定時(shí) 1S 讀取 TH0、 TL0寄存器的值 數(shù)據(jù)處理 數(shù)碼管顯示 (a) 主函數(shù) Y N N Y ( b)定時(shí)器中斷 函數(shù) 第 11 頁 課程設(shè)計(jì)說明書 //定時(shí)器初始化 ,定時(shí)器 0 定時(shí),計(jì)數(shù)器 1 計(jì)數(shù) void Timer_Init() { TMOD=0x51。//定時(shí)器 1: 16 位定時(shí)器負(fù)責(zé)定時(shí);定時(shí)器 0: :16 位計(jì)數(shù)器負(fù)責(zé)計(jì)數(shù) //定時(shí)器 0 配置 TH0 = 0xDC。 //10ms 定時(shí)初值 TL0 = 0x00。 ET0 = 1。 //使能定時(shí)器 0 中斷 TR0= 1。 //允許定時(shí)器 0 計(jì)數(shù) //計(jì)數(shù)器 1 配置 TH1 = 0x00。 //計(jì)數(shù)器初值 TL1 = 0x00。 TR1= 1。 //允許計(jì)數(shù)器 1 計(jì)數(shù) EA = 1。 //使能總中斷 } 定時(shí)獲取脈沖數(shù)據(jù) 根據(jù)本系統(tǒng)的測(cè)速原理,可以知道,單片機(jī)通過 將來自動(dòng)累計(jì)外部脈沖的個(gè)數(shù),將其保存到 TH1, TL1 寄存器中。然后通過定時(shí)器中斷服務(wù)函數(shù),定時(shí)讀取這兩個(gè)寄存器中數(shù)據(jù),并將其清空為 0,以便計(jì)數(shù)器重新開始計(jì)數(shù)。以下是代碼分析: /* 函 數(shù): uint16 Get_DC_MotorSpeedCounterValue( void ) 輸入?yún)?shù):無 返回參數(shù):計(jì)數(shù)器所記的數(shù)值 */ uint16 Get_DC_MotorSpeedCounterValue( void ) { 第 12 頁 課程設(shè)計(jì)說明書 uint8 temp1 = 0 , temp2 = 0。 //兩個(gè)臨時(shí)變量,分別用來保存 TH1 和 TL1的數(shù)值 uint16 Temp_DC_MotorSpeedCounter = 0。 temp1 = TH1。 temp2 = TL1。 //uint8 類型強(qiáng)制轉(zhuǎn)換為 uint16 類型然后移位,計(jì)算計(jì)數(shù)脈沖數(shù) Temp_DC_MotorSpeedCounter = ( ( uint16 ) temp1 8 ) + ( uint16 )temp2。 TH1 = 0。 TL1 = 0。 return Temp_DC_MotorSpeedCounter。//檢測(cè)到的直流電機(jī)旋轉(zhuǎn)的圈數(shù),即計(jì)數(shù)器的值 } void T0_Interrupt() interrupt 1 { static uint8 counter = 0。 TH0 = 0xDC。 //10ms 定時(shí)初值 TL0 = 0x00。 counter++。 if( counter == 100 ) //10ms*100 = 1s { counter = 0。 DC_MotorSpeedCounter = Get_DC_MotorSpeedCounterValue()。 } } 數(shù)據(jù)處理及顯示 獲取電機(jī)轉(zhuǎn)速以后,需要單片機(jī)將數(shù)據(jù)顯示出來。但是電機(jī)轉(zhuǎn)速十一個(gè) uint16類型的數(shù)據(jù),因此需要吧這個(gè)整數(shù)的千位、百位、十位和個(gè)位分離出來,然后通過各位的數(shù)值對(duì)應(yīng)的數(shù)碼管的段碼,將數(shù)據(jù)正確的顯示出來。 第 13 頁 課程設(shè)計(jì)說明書 以下是數(shù)據(jù)處理函數(shù): void Data_Process( uint16 x ) //將數(shù)據(jù)的千百十個(gè)位分別提取出來,放入緩沖區(qū) { Disp_Buffer[0] = x/1000。 Disp_Buffer[1] = x%1000/100。 Disp_Buffer[2] = x%100/10。 Disp_Buffer[3] = x%10。 } 以下是主函數(shù),負(fù)責(zé)系統(tǒng)各個(gè)外設(shè)的控制: //==========主函數(shù) =========== void main() { uint8 i。 Timer_Init()。 while(1) { Data_Process( DC_MotorSpeedCounter )。 for( i = 0 。 i 4 。 i ++ ) { P0 = Digit_Bits[ Disp_Buffer[i] ]。 P2 = Digit_Seg[i]。 Delay_Ms(1)。 } } } C 語言程序 include 第 14 頁 課程設(shè)計(jì)說明書 void Timer_Init()。 uint8 Digit_Bits[]={ 0x3f,0x06,0x5b, 0x4f,0x66,0x6d, 0x7d,0x07,0x7f, 0x6f}。 uint8 Digit_Seg[]={0x0e,0x0d,0x0b,0x07}。
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1