300 likes | 573 Views
I/O 界面原理與實習. 發光二極體 (LED) 顯示器. 單顆 LED 七段顯示器 點矩陣 LED 鍵盤輸入. 單顆 LED. LED 是二極體的一種,具有正負極性 使用時將其長腳接正電源,短腳接地時即可讓 LED 發亮 順向電壓降的範圍值由 1.2 ~ 3.0 伏特不等 為了延長其使用壽命,通常會利用一限流電阻串接 LED ,將其工作電流限制在 10 mA ~ 20 mA 之間. = 250 ( 歐姆 ). 如何讓 LED 閃爍. 為要讓 LED 點亮與熄滅交替進行,所輸入的「 1 」、「 0 」信號圖形
E N D
發光二極體(LED)顯示器 • 單顆LED • 七段顯示器 • 點矩陣LED • 鍵盤輸入
單顆LED • LED是二極體的一種,具有正負極性 • 使用時將其長腳接正電源,短腳接地時即可讓LED發亮 • 順向電壓降的範圍值由1.2 ~ 3.0伏特不等 • 為了延長其使用壽命,通常會利用一限流電阻串接LED,將其工作電流限制在10 mA ~ 20 mA之間 = 250 (歐姆)
如何讓LED閃爍 • 為要讓LED點亮與熄滅交替進行,所輸入的「1」、「0」信號圖形 • 這信號就是方波訊號,但其工作週期則不限定是50%的duty cycle。 • 若要讓LED產生閃爍感,則輸入之方波控制信號須為極低頻,其頻率要小於16Hz,否則人眼將就看不到閃爍現象,主要是因人的眼睛視覺暫留現象,一般而言,視覺暫留約在1/16秒到1/24秒之間,所以方波信的週期必須大於1/16秒,實際上最好取0.25秒以上,閃爍的感覺才會更真實
微控制器之計時方式 • 使用軟體延遲迴圈:利用微控制器執行一軟體延遲迴圈,利用執行此迴圈所需的指令週期數,配合供給之工作產率,即可產生所要的時間延遲。 • 使用硬體計時器:借助外部硬體計時器(Timer),將欲延遲的時間設定給硬體計時器,當延遲時間到達時,硬體計時器會對微控制器產生硬體中斷,以告知延遲時間已到達。
使用軟體延遲迴圈 呼叫一次軟體延遲副程式所需之時間延遲為:T × [(Z˙Y + L)˙X + C]秒。
使用硬體計時器延遲 • 若供給外部硬體計時器之頻率f = 1kHz (週期為1 ms) • 若外部之硬體計時器為8-bit counter(最大的計數時間為256 ms)。 • EX: 系統要產生一個100 ms的時間延遲 • 可設定外部硬體計時器的初始值為156 • 即讓計時器是由156開始計數,當到達overflow時(即計時器由2550)即表示已經過了100 ms。
七段顯示器 • 段顯示器可分為 • 共陽(common anode) • 共陰(common cathode)
七段顯示器的驅動方式 • 靜態方式驅動七段顯示器
多工掃描驅動七段顯示器 • 利用人類眼睛視覺暫留現象 • 讓多顆七段顯示器輪流顯示,若輪流顯示的速度夠快的話,快到讓人眼睛不會感覺到閃爍現象(通常以50Hz以上的輪流顯示速度來驅動),則感覺上即是每一顆七段顯示器皆同時在顯示 • 為了讓整個顯示之亮度與單獨顯示時差不多,若有N個七段顯示器,則每個七段顯示器在顯示時的亮度(即電流強度)可為單獨顯示時的N倍,這是因為每個七段顯示器的顯示時間僅為單獨使用時的1/N倍。
由於人類之視覺暫留約為1/16秒 ~ 1/24秒,依經驗值將其取為1/50秒,即掃描頻率為50次/秒,故每隔1/50秒 = 20 ms即要掃描一次,因圖4.9之應用為6顆七段顯示器,故每一顆七段顯示器之顯示時間約為20/6 = 3.3 ms,可以取2 ms為七段顯示器之on時間。請注意:在掃描過程中,每個七段顯示器間必須有數十微秒的關閉時間(off time)以防止七段顯示器顯示時產生殘影。
七段顯示器之掃描時序 • 先將SegA要顯示之內容輸出至DB[7:0]; • 輸出控制信號SEG_SEL,將DB[7:0]的內容Latch在74573; • 輸出掃描信號SCAN2~SCAN0使PS0#為Lo,致能SegA,使其將74573之內容顯示出來; • 將步驟1~3重複,將要顯示之內容依序改為SegB、SegC、SegD • 重複1~4步驟。
點矩陣LED • LED點矩陣結構 • 列陽行陰 • 列陰行陽
點矩陣LED驅動電路 • 驅動電路提供LED顯示所需之電流 • 其利用R0~R7之列信號輸出準位「0」或「1」來控制功率電晶體導通或截止,以決定是否供應該顯示列之LED顯示所需之電流,所謂顯示列即為輸出為「0」之Ri列。而該列之顯示內容則由行驅動電路C1~C5決定,其主要是作汲入電流用,當第i行之Ci值為「0」時,表顯示列之第i顆LED會亮,一般而言,行驅動電路大都採用能汲入(Sink)較大電流的IC。
驅動順序 • 將R1 ~ R7禁能(輸出為高電位) • 將R1所要顯示的資料放置於C1~C5上,然後將R1致能(輸出為低電位) • 延遲一段時間,再將R1禁能(輸出為高電位) • 將R2顯示器所要顯示的資料放置C1~C5上,然後將R2致能(輸出為低電位) • 延遲一段時間,再將R2禁能(輸出為低電位) • 與多工掃描七段顯示器同,因視覺暫留時間最短為1/16秒,所以掃描週期不能大於1/16秒,否則會感覺到跳動現象。一般掃描頻率越高,顯示之視覺效果越好。在此例中,若掃描頻率取40Hz,則掃描之週期為25 ms。 • 因LED共有7列,所以每列之顯示時間為 (ms)。
依據移位(DM_GCLK)與更改資料匯流排(R0~R7)的順序,可以分為三種情況依據移位(DM_GCLK)與更改資料匯流排(R0~R7)的順序,可以分為三種情況 • Case 1 先移位再更改資料: • Case 2 先更改資料再移位: • Case 3先清除資料、移位、再更新資料:
點矩陣LED顯示控制流程 每條掃描線(C0~C15)維持為「0」的時間約 ,此處我們取用 為單一行所顯示之時間
鍵盤輸入控制 • 4×3矩陣鍵盤之連接
微控制器如何得知有按鍵被按 • 中斷(Interrupt)方式: • 當有按鍵被按時,有一外部硬體電路去偵測得知,並對微控制器產生硬體中斷信號 • 以鍵盤主動通知微控制器,平常無按鍵時,微控制器可處理其它部份之程式。 • 詢問(Polling)方式: • 微控制器以軟體方式,定期去詢問外部鍵盤是否有按鍵被按。 • 以微控制器為主動,需一段時間即去詢問外部之鍵盤以得知其狀況,所以較耗微控制器之處理時間。
軟體掃描方式 • 4×3矩陣鍵盤與微控制器連接圖
開關接點彈跳(contact bounce) • 決按鍵彈跳現象的方法有二: • 硬體濾波:利用硬體濾波器產生較平滑的電壓變化。 • 軟體延遲:當軟體偵測到有鍵盤被按時,利用程式等待一段時間,讓按鍵之接點開關穩定後,再去讀取按鍵值。
避免短路之矩陣鍵盤與微控制器之接法 • 當所按下的兩鍵為同一行時,由於R1~R4之掃描輸出同時只有一列為「0」,其餘為「1」輸出,所以此時會讓此兩鍵所連接的兩列的掃描輸出短路,造成微控制器的相對輸出埠可能因此而受損