在我們設計的早年色選機系統中,微控制器程式結構採用固定週期迴圈的程式結構。固定迴圈週期是200us。
在這固定的200us時間內處理微控制器外圍的各種任務,這些任務可以處理按鍵輸入、led顯示、輸入/輸出、ad取樣、脈衝計數、非同步通訊uart、eeprom讀寫等;
在這200us的迴圈中,實現各種中斷任務處理,這個比硬體中斷的方式對實時性有更好的管控。例如pic系列微控制器利用uart介面和pc機的232介面通訊,就有時間限制。對於57600的通訊波特率,就要求200us內中斷取數一次,否則就要丟數了!丟數了就出錯了!理論上,串列埠通訊的收發資料緩衝區如果大於2位元組,那麼就可以間隔更長時間去取數或發數。但是,如果乙個任務的處理時間超過最大時間還是會丟數!
對於最基本的pic系列微控制器,最大時鐘是20mhz,指令週期是200ns,對於200us的固定週期,乙個週期內最多執行1000條指令。1000條指令可做很多事情了。進一步,當微控制器的程式儲存器的空間大於1k時,可以編寫大於1k的程式,在不同的週期執行不同的程式。
迴圈週期的200us定時由微控制器的硬體定時器來控制,每次迴圈的最後等待200us週期的結束,等待的過程就是查詢硬體定時器,結束後再返回程式最上部。
可以在200us的迴圈週期裡查詢各種中斷,查詢是否有中斷標誌是「1」,是就處理相應的事件。或者在一段固定空操作**中開通中斷使能,讓程式進入中斷子程式執行一些中斷處理。
(待續)
微控制器串列埠通訊
微控制器串列埠通訊 通常的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 ...