- PIC單片機常用模塊與綜合系統(tǒng)設(shè)計實例精講
- 夏彬彬 任明全 屈金學(xué)編著
- 1008字
- 2019-01-01 14:12:28
5.2 直接驅(qū)動LED顯示
5.1節(jié)介紹了單片機系統(tǒng)中的輸入部分內(nèi)容,本節(jié)將講述單片機系統(tǒng)另外一個重要的部分:輸出模塊。
5.2.1 實例說明
在一個系統(tǒng)中,輸入和輸出是最基本也是最重要的組成部分,輸入部分實現(xiàn)了人們對系統(tǒng)的控制,而輸出則向人們展示了系統(tǒng)目前的工作狀態(tài)。輸出部分有很多種,本節(jié)將講述一種基本的輸出模塊,即LED數(shù)碼管。讀者通過本節(jié)內(nèi)容的學(xué)習(xí),將了解LED數(shù)碼管的工作原理和硬件電路連接方式,同時掌握LED數(shù)碼管的軟件編寫流程。
5.2.2 LED數(shù)碼管知識
LED數(shù)碼管其實就是由一組LED燈組成的,共包括a、b、c、d、e、f、g、dp八位,其中a~g七位組合可以顯示0~9的任意數(shù)字,dp位用于顯示小數(shù)點。
LED數(shù)碼管又分為共陰極和共陽極兩種,所謂共陰極就是把8個發(fā)光二極管的陰極連接到一起,通過一個公共引腳接到電源地;而共陽極則是所有陽極連接到一起接到電源的正極。在本例中采用的是共陰極LED數(shù)碼管。
另外,為了限制通過發(fā)光二極管的電流,保護二極管不被燒毀,在每個二極管的輸入端串聯(lián)了一個限流電阻,阻值一般為5kΩ。
5.2.3 硬件電路設(shè)計
LED數(shù)碼管顯示電路原理圖如圖5-3、圖5-5所示,電路連接較簡單。其中,圖5-3是單片機部分的復(fù)位和晶振電路圖;圖5-5則是LED數(shù)碼管的接線圖。由于PIC每個引腳可以提供25mA的驅(qū)動電流,所以可以用直接驅(qū)動LED數(shù)碼管顯示。

圖5-5 LED數(shù)碼管的接線圖
5.2.4 軟件設(shè)計
直接驅(qū)動單個LED數(shù)碼管程序相對較簡單,因為本例中只驅(qū)動了一個數(shù)碼管,不需要再添加控制位來選擇向哪個數(shù)碼管輸入顯示數(shù)據(jù)。在實際應(yīng)用中若需要用到幾個數(shù)碼管同時顯示,則可以再加入專門驅(qū)動LED數(shù)碼管的芯片,例如,串入并出的移位寄存器74LS164以及SPI接口的移位寄存器74HC595等。用戶可以根據(jù)設(shè)計系統(tǒng)時的不同資源情況進行選擇。
本程序設(shè)計流程圖如圖5-6所示,其中RB口是PIC單片機的一個8位端口,在本程序執(zhí)行過程中需設(shè)置RB口為輸出。

圖5-6 程序設(shè)計流程
程序代碼與注釋如下:
#include <pic.h> #include <pic1687x.h> __CONFIG(WDTDIS & HS & LVPDIS & DEBUGDIS); //*該程序用于在LED上依次循環(huán)顯示0~9 static volatile unsigned char table[11]={0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0XD8, 0x80,0x90,0xff}; void delay(void) { int x,y; for(x=0;x<100;x++) for(y=0;y<1000;y++); } //*主程序*/ main() { unsigned char i,data; TRISB=0; //設(shè)置RB口為輸出 while(1) { for(i=0;i<10;i++) //*連續(xù)發(fā)送8個數(shù)據(jù)*/ { data=table[i]; //*通過數(shù)組的轉(zhuǎn)換獲得待顯示的段碼*/ RB=(data); //*發(fā)送顯示段碼顯示*/ delay(); //延時 } } }
5.2.5 實例總結(jié)
本節(jié)實現(xiàn)了如何直接驅(qū)動LED顯示。通過本節(jié)內(nèi)容的學(xué)習(xí),讀者應(yīng)掌握LED數(shù)碼管的硬件電路設(shè)計和程序的編寫方法。LED數(shù)碼管是單片機系統(tǒng)中常常用到的一種簡單的顯示系統(tǒng),在實際應(yīng)用中,用戶需要根據(jù)系統(tǒng)的實際情況和具體要求靈活應(yīng)用,選擇合適的LED數(shù)碼管個數(shù)及驅(qū)動方式。
- 單片機基礎(chǔ)及應(yīng)用項目式教程
- VxWorks設(shè)備驅(qū)動開發(fā)詳解
- 嵌入式Qt實戰(zhàn)教程
- 現(xiàn)代嵌入式系統(tǒng)開發(fā)專案實務(wù)
- 單片機原理與應(yīng)用:基于Keil+Proteus
- 嵌入式虛擬化技術(shù)與應(yīng)用:ACRN開源項目實踐
- 嵌入式Linux與物聯(lián)網(wǎng)軟件開發(fā):ARM處理器開發(fā)自學(xué)教程
- 單片機原理與接口技術(shù)
- 零基礎(chǔ)學(xué)51單片機(C語言版)
- 單片機技術(shù)及應(yīng)用(第2版)
- 單片機原理與應(yīng)用技術(shù)
- 高分辨率遙感影像變化檢測
- 51單片機應(yīng)用開發(fā)案例手冊
- DIY玩轉(zhuǎn)51單片機
- GD32 MCU原理及固件庫開發(fā)指南