基于單片機的LED彩燈控制器
出處:yingjie 發(fā)布于:2011-08-31 10:09:30
1 引言
隨著人們生活環(huán)境的不斷改善和美化,在許多場合可以看到彩色霓虹燈。 LED 彩燈由于其豐富的燈光色彩,低廉的造價以及控制簡單等特點而得到了廣泛的應(yīng)用,用彩燈來裝飾已經(jīng)成為一種時尚。但目前市場上各式樣的 LED 彩燈控制器大多數(shù)用全硬件電路實現(xiàn),電路結(jié)構(gòu)復(fù)雜、功能單一,這樣一旦制作成品只能按照固定的模式閃亮,不能根據(jù)不同場合、不同時間段的需要來調(diào)節(jié)亮燈時間、模式、閃爍頻率等動態(tài)參數(shù)。這種彩燈控制器結(jié)構(gòu)往往有芯片過多、電路復(fù)雜、功率損耗大等缺點。此外從功能效果上看,亮燈模式少而且樣式單調(diào),缺乏用戶可操作性,影響亮燈效果。因此有必要對現(xiàn)有的彩燈控制器進行改進。
本文提出了一種基于AT89S51單片機的彩燈控制方案,實現(xiàn)對LED彩燈的控制。
2 設(shè)計原理
2.1 MCS51
引腳說明
MCS單片機都采用40引腳的雙列直插封裝方式。圖1為引腳排列圖, 40條引腳說明如下:
(1)主電源引腳Vss和Vcc
?、?Vss接地
?、?Vcc正常操作時為+5伏電源
(2)外接晶振引腳XTAL1和XTAL2
?、?XTAL1內(nèi)部振蕩電路反相放大器的輸入端,是外接晶體的一個引腳。當采用外部振蕩器時,此引腳接地。
② XTAL2內(nèi)部振蕩電路反相放大器的輸出端。是外接晶體的另一端。當采用外部振蕩器時,此引腳接外部振蕩源。

圖1 8051引腳排列圖
(3)控制或與其它電源復(fù)用引腳RST/VPD,ALE/PROG,EA和/Vpp
?、?RST/VPD 當振蕩器運行時,在此引腳上出現(xiàn)兩個機器周期的高電平(由低到高跳變),將使單片機復(fù)位
在Vcc掉電期間,此引腳可接上備用電源,由VPD向內(nèi)部提供備用電源,以保持內(nèi)部RAM中的數(shù)據(jù)。
?、?ALE/PROG正常操作時為ALE功能(允許地址鎖存)提供把地址的低字節(jié)鎖存到外部鎖存器,ALE 引腳以不變的頻率(振蕩器頻率的1/6)周期性地發(fā)出正脈沖信號。因此,它可用作對外輸出的時鐘,或用于定時目的。但要注意,每當訪問外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖,ALE 端可以驅(qū)動(吸收或輸出電流)八個LSTTL電路。 對于EPROM型單片機,在EPROM編程期間,此引腳接收編程脈P沖(PROG功能)
?、跴SEN外部程序存儲器讀選通信號輸出端,在從外部程序存儲取指令(或數(shù)據(jù))期間,在每個機器周期內(nèi)兩次有效。同樣可以驅(qū)動八LSTTL輸入。
?、?EA/Vpp 、EA/Vpp為內(nèi)部程序存儲器和外部程序存儲器選擇端。當EA/Vpp為高電平時,訪問內(nèi)部程序存儲器,當/Vpp 為低電平時,則訪問外部程序存儲器。
對于EPROM型單片機,在EPROM編程期間,此引腳上加21伏EPROM編程電源(Vpp)。
(4)輸入/輸出引腳P0.0 - P0.7,P1.0 - P1.7,P2.0 - P2.7,P3.0 - P3.7。
?、?P0口(P0.0 - P0.7)是一個8位漏極開路型雙向I/O口,在訪問外部存儲器時,它是分時傳送的低字節(jié)地址和數(shù)據(jù)總線,P0口能以吸收電流的方式驅(qū)動八個LSTTL負載。
?、?P1口(P1.0 - P1.7)是一個帶有內(nèi)部提升電阻的8位準雙向I/O口。能驅(qū)動(吸收或輸出電流)四個LSTTL負載……
?、?P2口(P2.0 - P2.7)是一個帶有內(nèi)部提升電阻的8位準雙向I/O口,在訪問外部存儲器時,它輸出高8位地址。P2口可以驅(qū)動(吸收或輸出電流)四個LSTTL負載。
?、?P3口(P3.0 - P3.7)是一個帶有內(nèi)部提升電阻的8位準雙向I/O口。能驅(qū)動(吸收或輸出電流)四個LSTTL負載。
2.2 LED顯示數(shù)碼管
LED有共陰極和共陽極兩種。如圖所示。二極管的陰極連接在一起,通常此公共陰極接地,而共陽極則將發(fā)光二極管的陽極連接在一起,接入+5V的電壓。一位顯示器由8個發(fā)光二極管組成,其中7個發(fā)光二極管構(gòu)成字型“8”的各個筆劃(段)a~g,另一個小數(shù)點為dp發(fā)光二極管。當在某段發(fā)光二極管施加一定的正向電壓時,該段筆劃即亮;不加電壓則暗。為了保護各段LED不被損壞,需外加限流電。


LED數(shù)碼管結(jié)構(gòu)原理圖
AT89C2051芯片的20個引腳功能為:
VCC 電源電壓。
GND 接地。
RST 復(fù)位輸入。當RST變?yōu)楦唠娖讲⒈3?個機器周期時,所有I/O引腳復(fù)位至“1”。
XTAL1 反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。
XTAL2 來自反向振蕩放大器的輸出。
P1口 8位雙向I/O口。引腳P1.2~P1.7提供內(nèi)部上拉,當作為輸入并被外部下拉為低電平時,它們將輸出電流,這是因內(nèi)部上拉的緣故。P1.0和P1.1需要外部上拉,可用作片內(nèi)模擬比較器的正向輸入(AIN0)和反向輸入(AIN1),P1口輸出緩沖器能接收20mA電流,并能直接驅(qū)動LED顯示器;P1口引腳寫入“1” 后,可用作輸入。在閃速編程與編程校驗期間,P1口也可接收編碼數(shù)據(jù)。
P3口 引腳P3.0~P3.5與P3.7為7個帶內(nèi)部上拉的雙向I/0引腳。P3.6在內(nèi)部已與片內(nèi)比較器輸出相連,不能作為通用I/O引腳訪問。P3口的輸出緩沖器能接收20mA的灌電流;P3口寫入“1”后,內(nèi)部上拉,可用輸入。P3口也可用作特殊功能口。
2.3 中斷指令
在CPU和外設(shè)交換信息時,存在著快速CPU和慢速外設(shè)間的矛盾,機器內(nèi)部有時也可能出現(xiàn)突發(fā)事件,為此,計算機中通常采用中斷技術(shù)。
CPU和外設(shè)并行工作,當外設(shè)數(shù)據(jù)準備好( 或有某種突發(fā)事件發(fā)生)時向CPU提出請求,CPU暫停正在執(zhí)行的程序轉(zhuǎn)而為該外設(shè)服務(wù)(或處 理緊急事件),處理完畢再回到原斷點繼續(xù)執(zhí)行原程序。
中斷優(yōu)先級:當有多個中斷源同時 向CPU申請中斷時,CPU優(yōu)先響應(yīng)需緊急處理的中斷請求,處理完畢再響應(yīng)優(yōu)先級別較低的 ,這種預(yù)先安排的響應(yīng)次序。
中斷的嵌套:在中斷系統(tǒng)中,高優(yōu)先級的 中斷請求能中斷正在進行的較低級的中斷源處理,
(1)中斷技術(shù)是實時控制中的常用技術(shù),51系列單片機有三個內(nèi)部中斷,二個外部中斷。所謂 外部中斷就是在外部引腳上有產(chǎn)生中斷所需要的信號。
每個中斷源有固定的中斷服務(wù)程序的入口地址(稱矢量地址或向量地址)。當CPU響應(yīng)中斷以 后單片機內(nèi)部硬件保證它能自動的跳轉(zhuǎn)到該地址。因此,此地址是應(yīng)該熟記的,在匯編程序 中,中斷服務(wù)程序應(yīng)存放在正確的向量地址內(nèi)。
?。ɑ虼娣乓粭l轉(zhuǎn)移指令);而在C語言中是靠Interrupt n的關(guān)鍵字n自動設(shè)置的。
(2)單片機的中斷是靠內(nèi)部的寄存器管理的,這就是中斷允許寄存器IE,中斷優(yōu)先權(quán)寄存器IP ,必須在CPU開中斷即開全局中斷開關(guān)EA,開各中斷源的中斷開關(guān),CPU才能響應(yīng)該中斷源的 中斷請求,其中缺一不可。
?。?)從程序表面看來,主程序和中斷服務(wù)程序好象是沒有關(guān)連的,只有掌握中斷響應(yīng)的過程, 才能理解中斷的發(fā)生和返回,看得懂中斷程序,并能編寫高質(zhì)量中斷程序。
表2.1 常用中斷
|
符號 |
名 稱 |
中 斷 引 起 原 因 |
中斷服務(wù)程序入口 |
|
INT0 |
外部中斷0 |
P3.2引腳的低電平或下降沿信號 |
0003H |
|
INT1 |
外部中斷1 |
P3.3引腳的低電平或下降沿信號 |
0013H |
|
T0 |
定時器0中斷 |
定時計數(shù)器0計數(shù)回零溢出 |
000BH |
|
T1 |
定時器1中斷 |
定時計數(shù)器1計數(shù)回零溢出 |
001BH |
|
T2 |
定時器2中斷 |
定時計數(shù)器2中斷(TF2或T2EX信號) |
002BH |
|
TI/RI |
串行口中斷 |
串行通信完成一幀數(shù)據(jù)發(fā)送或接收引起中斷 |
0023H |
3 硬件原理圖
晶振(12MHz)定時1秒,對于12MHz的晶振而言,其時鐘周期T=1/f=1/12us,而89C51的一個機器周期包括12個時鐘周期,所以一個機器周期為1us,對于T0而言,使之工作于16-bit,計時為65536*1=65536us,需要多次定時才能實現(xiàn)一秒定時。

4 軟件設(shè)計
4.1 流程圖

4.2 源程序
ORG 0000H ;中斷入口程序;
LJMP START
ORG 0003H
RETI
ORG 000BH
RETI
ORG 0013H
RETI
ORG 001BH
RETI
CLEAR: RET; ; 初始化程序
;START:ACALL CLEAR ; 主 程 序
STAR1:MOV P3,#0FFH
JNB P3.2,FUN2
JNB P3.3,FUN3 ;關(guān)閉按紐
JNB P3.4,FUN0
JNB P3.5,FUN1
JNB F0,STAR1 ;曾經(jīng)有鍵按下F0置1
RET;
FUN0:LCALL DL10MS ;消除抖動
JB P3.4,STAR1
WAITL0:JNB P3.4,WAITL0 ;等待鍵釋放
SETB F0
FUN01:LCALL FUN00
LCALL STAR1
LJMP FUN01;
FUN1:LCALL DL10MS ;消除抖動
JB P3.5,STAR1
WAITL1:JNB P3.5,WAITL1 ;等待鍵釋放
SETB F0
FUN10:LCALL FUN11
LCALL STAR1
LJMP FUN10;
FUN2:LCALL DL10MS ;消除抖動
JB P3.2,STAR1
WAITL2:JNB P3.2,WAITL2 ;等待鍵釋放
SETB F0
FUN20:LCALL FUN22
LCALL STAR1
LJMP FUN20;
FUN3:LCALL DL10MS ;消除抖動
JB P3.3,STAR1
WAITL3:JNB P3.3,WAITL3 ;等待鍵釋放
CLR F0
MOV P1,#0FFH ;關(guān)顯示
LJMP STAR1;
FUN00:MOV A,#0FEH ;從P1.0到P1.7移動點亮
FUN000:MOV P0,A
LCALL DL05S
JNB ACC.7,OUT
RL A
AJMP FUN000
OUT: RET;
FUN11:MOV A,#0FEH ;從P1.0到P1.7依次點亮
FUN111:MOV P1,A
LCALL DL05S
JZ OUT
RL A
ANL A,P1
AJMP FUN111;
FUN22:MOV A,#0FEH ;間隔點亮
FUN222:MOV P1,A
LCALL DL01S
CPL A
RL A
MOV P1,A
LCALL DL01S
RET;
FUN33: MOV A,#01H ;逐點熄滅
FUN333: MOV P1,A
LCALL DL01S
JNZ OUT
RL A
ORL A,P1
AJMP FUN333
DL01S:MOV R2,#0FFH ; 延時程序
MOV R7,#02H
LOOP1: DJNZ R2,LOOP1
LOOP5:DJNZ R7,DL512
RET
DL10MS:MOV R3,#14H
LOOP2: LCALL DL512
DJNZ R3,LOOP2
RET
DL05S:MOV R4,#0AH
LOOP3: LCALL DL10MS
DJNZ R4,LOOP3
RET
DL30S:MOV R5,#03H
LOOP4:LCALL DL05S
DJNZ R5,LOOP4
RET
END
4.2一秒鐘定時程序
MOV B,#0AH ;允許中斷
MOV TMOD,#01H ;工作方式1
MOV TH0,#0B0H
MOV TL0,#3CH
SETB TR0 ;啟動計數(shù)
SETB EA ;開中斷
BU:JBC TF0,SHI
SJMP BU
SHI:MOV TH0,#3CH
MOV TL0,#0B0H
RET
參考文獻:
[1]. AT89S51 datasheet http://www.hbjingang.com/datasheet/AT89S51_970858.html.
[2]. EPROM datasheet http://www.hbjingang.com/datasheet/EPROM_1128137.html.
[3]. AT89C2051 datasheet http://www.hbjingang.com/datasheet/AT89C2051_810086.html.
[4]. 89C51 datasheet http://www.hbjingang.com/datasheet/89C51_105386.html.
版權(quán)與免責聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 單片機技術(shù)特性與嵌入式開發(fā)實踐指南2026/1/7 10:00:02
- 單片機(MCU)與數(shù)字信號處理器(DSP)分類及選型技術(shù)指南2025/12/30 10:02:37
- 工業(yè)級DSP信號處理系統(tǒng):硬件適配與抗干擾工程方案2025/12/15 14:41:00
- HOLTEK推出HT32F65533G/733G內(nèi)建N/N預(yù)驅(qū)電機專用SoC單片機2025/11/26 14:11:41
- 什么是C51數(shù)據(jù)類型擴充定義2025/10/27 13:59:22
- 高速PCB信號完整性(SI)設(shè)計核心實操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護設(shè)計
- 連接器耐腐蝕性能測試方法
- PCB電磁兼容(EMC)設(shè)計與干擾抑制核心實操規(guī)范
- 用于相位噪聲測量的低通濾波器設(shè)計與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計要點
- 連接器結(jié)構(gòu)設(shè)計常見問題分析









