基於單片機的LED彩燈控制器

2020-12-06 電子產品世界

標籤LED 照明 光源

本文引用地址:http://www.eepw.com.cn/article/200060.htm

1 引言

隨著人們生活環境的不斷改善和美化,在許多場合可以看到彩色霓虹燈。 led 彩燈由於其豐富的燈光色彩,低廉的造價以及控制簡單等特點而得到了廣泛的應用,用彩燈來裝飾已經成為一種時尚。但目前市場上各式樣的 LED 彩燈控制器大多數用全硬體電路實現,電路結構複雜、功能單一,這樣一旦製作成品只能按照固定的模式閃亮,不能根據不同場合、不同時間段的需要來調節亮燈時間、模式、閃爍頻率等動態參數。這種彩燈控制器結構往往有晶片過多、電路複雜、功率損耗大等缺點。此外從功能效果上看,亮燈模式少而且樣式單調,缺乏用戶可操作性,影響亮燈效果。因此有必要對現有的彩燈控制器進行改進。

本文提出了一種基於AT89S51單片機的彩燈控制方案,實現對LED彩燈的控制。

2 設計原理

2.1 MCS51

引腳說明

MCS單片機都採用40引腳的雙列直插封裝方式。圖1為引腳排列圖, 40條引腳說明如下:

(1)主電源引腳Vss和Vcc

① Vss接地

② Vcc正常操作時為+5伏電源

(2)外接晶振引腳XTAL1和XTAL2

① XTAL1內部振蕩電路反相放大器的輸入端,是外接晶體的一個引腳。當採用外部振蕩器時,此引腳接地。

② XTAL2內部振蕩電路反相放大器的輸出端。是外接晶體的另一端。當採用外部振蕩器時,此引腳接外部振蕩源。

圖1 8051引腳排列圖

(3)控制或與其它電源復用引腳RST/VPD,ALE/PROG,EA和/Vpp

① RST/VPD 當振蕩器運行時,在此引腳上出現兩個機器周期的高電平(由低到高跳變),將使單片機復位

在Vcc掉電期間,此引腳可接上備用電源,由VPD向內部提供備用電源,以保持內部RAM中的數據。

② ALE/PROG正常操作時為ALE功能(允許地址鎖存)提供把地址的低字節鎖存到外部鎖存器,ALE 引腳以不變的頻率(振蕩器頻率的1/6)周期性地發出正脈衝信號。因此,它可用作對外輸出的時鐘,或用於定時目的。但要注意,每當訪問外部數據存儲器時,將跳過一個ALE脈衝,ALE 端可以驅動(吸收或輸出電流)八個LSTTL電路。 對於EPROM型單片機,在EPROM編程期間,此引腳接收編程脈P衝(PROG功能)

③PSEN外部程序存儲器讀選通信號輸出端,在從外部程序存儲取指令(或數據)期間,在每個機器周期內兩次有效。同樣可以驅動八LSTTL輸入。

④ EA/Vpp 、EA/Vpp為內部程序存儲器和外部程序存儲器選擇端。當EA/Vpp為高電平時,訪問內部程序存儲器,當/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口,在訪問外部存儲器時,它是分時傳送的低字節地址和數據總線,P0口能以吸收電流的方式驅動八個LSTTL負載。

② P1口(P1.0 - P1.7)是一個帶有內部提升電阻的8位準雙向I/O口。能驅動(吸收或輸出電流)四個LSTTL負載……

③ P2口(P2.0 - P2.7)是一個帶有內部提升電阻的8位準雙向I/O口,在訪問外部存儲器時,它輸出高8位地址。P2口可以驅動(吸收或輸出電流)四個LSTTL負載。

④ P3口(P3.0 - P3.7)是一個帶有內部提升電阻的8位準雙向I/O口。能驅動(吸收或輸出電流)四個LSTTL負載。

2.2 LED顯示數碼管

LED有共陰極和共陽極兩種。如圖所示。二極體的陰極連接在一起,通常此公共陰極接地,而共陽極則將發光二極體的陽極連接在一起,接入+5V的電壓。一位顯示器由8個發光二極體組成,其中7個發光二極體構成字型「8」的各個筆劃(段)a~g,另一個小數點為dp發光二極體。當在某段發光二極體施加一定的正向電壓時,該段筆劃即亮;不加電壓則暗。為了保護各段LED不被損壞,需外加限流電。

LED數碼管結構原理圖

AT89C2051晶片的20個引腳功能為:

VCC 電源電壓。

GND 接地。

RST 復位輸入。當RST變為高電平並保持2個機器周期時,所有I/O引腳復位至「1」。

XTAL1 反向振蕩放大器的輸入及內部時鐘工作電路的輸入。

XTAL2 來自反向振蕩放大器的輸出。

P1口 8位雙向I/O口。引腳P1.2~P1.7提供內部上拉,當作為輸入並被外部下拉為低電平時,它們將輸出電流,這是因內部上拉的緣故。P1.0和P1.1需要外部上拉,可用作片內精確模擬比較器的正向輸入(AIN0)和反向輸入(AIN1),P1口輸出緩衝器能接收20mA電流,並能直接驅動LED顯示器;P1口引腳寫入「1」 後,可用作輸入。在閃速編程與編程校驗期間,P1口也可接收編碼數據。

P3口 引腳P3.0~P3.5與P3.7為7個帶內部上拉的雙向I/0引腳。P3.6在內部已與片內比較器輸出相連,不能作為通用I/O引腳訪問。P3口的輸出緩衝器能接收20mA的灌電流;P3口寫入「1」後,內部上拉,可用輸入。P3口也可用作特殊功能口。

2.3 中斷指令

在CPU和外設交換信息時,存在著快速CPU和慢速外設間的矛盾,機器內部有時也可能出現突發事件,為此,計算機中通常採用中斷技術。

CPU和外設並行工作,當外設數據準備好( 或有某種突發事件發生)時向CPU提出請求,CPU暫停正在執行的程序轉而為該外設服務(或處 理緊急事件),處理完畢再回到原斷點繼續執行原程序。

中斷優先級:當有多個中斷源同時 向CPU申請中斷時,CPU優先響應最需緊急處理的中斷請求,處理完畢再響應優先級別較低的 ,這種預先安排的響應次序。

中斷的嵌套:在中斷系統中,高優先級的 中斷請求能中斷正在進行的較低級的中斷源處理,

(1)中斷技術是實時控制中的常用技術,51系列單片機有三個內部中斷,二個外部中斷。所謂 外部中斷就是在外部引腳上有產生中斷所需要的信號。

每個中斷源有固定的中斷服務程序的入口地址(稱矢量地址或向量地址)。當CPU響應中斷以 後單片機內部硬體保證它能自動的跳轉到該地址。因此,此地址是應該熟記的,在彙編程序 中,中斷服務程序應存放在正確的向量地址內。

(或存放一條轉移指令);而在C語言中是靠Interrupt n的關鍵字n自動設置的。

(2)單片機的中斷是靠內部的寄存器管理的,這就是中斷允許寄存器IE,中斷優先權寄存器IP ,必須在CPU開中斷即開全局中斷開關EA,開各中斷源的中斷開關,CPU才能響應該中斷源的 中斷請求,其中缺一不可。

(3)從程序表面看來,主程序和中斷服務程序好象是沒有關連的,只有掌握中斷響應的過程, 才能理解中斷的發生和返回,看得懂中斷程序,並能編寫高質量中斷程序。

表2.1 常用中斷

符號名 稱中 斷 引 起 原 因中斷服務程序入口

INT0外部中斷0P3.2引腳的低電平或下降沿信號0003H

INT1外部中斷1

P3.3引腳的低電平或下降沿信號0013H

T0定時器0中斷定時計數器0計數回零溢出000BH

T1定時器1中斷定時計數器1計數回零溢出001BH

T2定時器2中斷定時計數器2中斷(TF2或T2EX信號)002BH

TI/RI串行口中斷串行通信完成一幀數據發送或接收引起中斷0023H

3 硬體原理圖

晶振(12MHz)定時1秒,對於12MHz的晶振而言,其時鐘周期T=1/f=1/12us,而89C51的一個機器周期包括12個時鐘周期,所以一個機器周期為1us,對於T0而言,使之工作於16-bit,最大計時為65536*1=65536us,需要多次定時才能實現一秒定時。

4 軟體設計

4.1 流程圖

相關焦點

  • 基於單片機的彩燈小製作
    1.引言   隨著人們對房屋的裝飾需要彩燈,在許多城市可以看到彩色霓虹燈。LED彩燈由於其豐富的燈光色彩,便宜的造價以及控制簡單等特點而得到了廣泛的應用,用彩燈來裝飾街道和城市建築物已經成為一種時尚。
  • 基於單片機的太陽能路燈控制器設計方案
    本文介紹基於單片機的太陽能路燈控制器的方案設計, 對12 V 和24 V 蓄電池可自動識別, 可實現對蓄電池的科學管理, 指示蓄電池過壓、欠壓等行狀態, 具有兩路負載輸出, 每路負載額定電流可達5 A, 兩路負載可以隨意設置為同時點亮、分時點亮以及單獨定時等工作模式, 同時具有負載過流、短路保護功能; 具有較高的自動化和智能化水平。
  • 基於AVR單片機的LED照明燈控制系統設計
    當紅外接收器接收到紅外遙控信號時,通過外部中斷將AVR單片機從休眠模式中喚醒;AVR單片機開始解析紅外信號,如果與系統地址匹配,則將根據解析到的命令改變LED恆流源驅動的輸入,從而改變LED燈的狀態。     2 系統硬體設計  2.1 控制器  控制器採用AVR單片機ATmega8
  • 基於CPLD的鍵盤控制器設計
    在單片機應用系統中,利用鍵盤接口輸入數據,是實現現場實時調試、數據調整和各種參數設置最常用的方法。單片機的外圍鍵盤擴展電路有多種實現方式,例如直接利用單片機的I/O接口,或者採用8255A接口晶片,就可以實現外圍鍵盤的擴展功能。但是,在這些方法中,鍵盤擴展電路需要佔用單片機的資源對按鍵進行監控和處理,這對要求高實時性處理的單片機系統是不容易實現的。
  • 一種基於單片機的實用在線式UPS電路詳解
    控制器採用功率因數校正控制晶片UC3855A/B。控制器採用SG3525,根據SG3525的工作原理,要得到SPWM波,必須有一個幅值在l~3.5V與市電同步的的正弦信號,與鋸齒波比較,生成SPWM脈寬調製波。  取得市電同步信號中,通過一個遲滯比較器和一個二階濾波器,其功能就是獲得一個50Hz的正弦波信號。為保護開關管,採用隔離驅動,驅動電路圖2由驅動脈衝放大和5V基準組成。
  • 基於Atmega48太陽能路燈控制器研究
    摘要:太陽能控制器是太陽能路燈系統中的核心部分,設計了一種基於Atmega48單片機的太陽能路燈控制器。該控制器採用PWM脈衝調製控制技術通過對蓄電池電壓、充電電流等參數進行檢測,控制開關管的關斷,來實現充放電控制和保護功能。
  • 51單片機實例講解,實現LED每秒閃爍1次程序
    本例是一個很簡單的程序,即用單片機實現一隻LED彩燈發光閃爍。其控制要求為:彩燈在1s內點亮0.5s,熄滅0.5s。(1)LED每秒閃爍1次硬體電路(見圖3)。圖3 LED每秒閃爍1次接線原理圖(a)單片機電源電路原理圖; (b)LED閃爍單片機接線圖
  • led燈箱控制器接線圖(三款led燈箱控制器接線圖)
    led燈箱控制器接線方法:   1、控制器兩邊有線邊有兩根紅線另邊有6根線從下到上紅一根黃根綠根黃三根)   led燈箱控制器接線圖一:   公共正極(紅線+)是給每路燈的正極供電   主閃(綠線)
  • 基於PIC16C72的水位水溫控制器的設計
    摘要:為滿足落水式太陽能熱水器自動控制的要求,設計了一個基於PIC16C72單片機的水溫水位控制器。以NTC熱敏電阻作為測溫傳感器,用PIC16C72內置的多路8位A/D轉換器把NTC熱敏電阻上的壓降轉換為數字量實現測溫。
  • 單片機驅動LED中上拉電阻的問題
    要從單片機的輸出驅動能力開始講起。下面是本人做過的LED上拉電阻試驗測試條件:VCC=4.96V,φ3綠色發光二極體。二極體正極接VCC,負極通過RL接地。沒有進行更大的電阻測試,因為我的萬用表電壓檔內阻為10M。
  • 基於AT89C51的LED顯示屏控制電路設計
    本文設計一種由4個16×16點陣LED模塊組成的顯示屏,由單片機作控制器,平滑移動顯示任意多個文字或圖形符號,本電路可級聯擴展實現由任意多個16×16點陣LED模塊組成的顯示屏。一、控制電路設計控制電路由AT89C51單片機作控制器,顯示屏由4個16×16點陣LED模塊組成,每個16×16點陣LED模塊由4個8×8點陣LED模塊組成,用戶可根據需要擴展增加任意多個16×16點陣LED模塊。8×8點陣LED模塊結構如圖1所示,共8行8列,每個發光二極體放置在行線和列線的交叉點上,共64個發光二極體。
  • 基於單片機和CPLD的PLC背板總線協議接口晶片設計(一)
    摘要:設計了一組基於CPLD的PLC背板總線協議接口晶片,協議晶片可以區分PLC的背板總線的周期性數據和非周期性數據。詳細介紹了通過Verilog HDL語言設計狀態機、協議幀控制器、FIFO控制器的過程,25MHz下背板總線工作穩定的試驗結果驗證了協議晶片設計的可行性。  可編程邏輯控制器(PLC)主機是通過背板總線支持擴展模塊的連接, 背板總線是PLC 主機同I/O擴展模塊之間的高速數據通路,支持主機和擴展模塊之間的I/O 數據刷新。
  • 基於51單片機的TFT液晶顯示設計
    用51單片機驅動液晶模塊通常都使用1602和12864等極為簡單的液晶模塊, 這裡介紹用51單片機驅動QVGA解析度的TFT液晶模塊, 以實現彩色和更為複雜的內容顯示的方法。同時, 本文還將使用DS1302晶片和DS18B20晶片來實現在液晶屏上顯示實時時鐘和溫度。
  • 基於單片機的大型LED顯示系統設計
    基於單片機的大型LED顯示系統設計 佚名 發表於 2020-03-08 13:38:00 隨著平板顯示技術的不斷更新,大型LED顯示系統利用發光二極體構成的點陣模塊或像素單元組成大面積顯示屏
  • 基於單片機的步進電機開環控制系統
    摘要: 通過ATMEL89C51單片機對步進電機進行控制,主要介紹了步進電機控制器、驅動電路和LED顯示電路的設計, 本文介紹已實現的單片機對步進電機的數字控制系統。該控制系統中,控制器擔負著產生脈衝以及發送、接收控制命令的任務。本文對控制器的設計,尤其是脈衝產生電路的設計作了詳細的介紹。1 系統設計 步進電機開環控制系統框圖如圖1所示。
  • 基於單片機的角度測量儀的設計
    本文分析了基於AT89S51 單片機的角度測量的硬體組成、電路設計原理。給出了主函數的工作流程和原始碼。設計樣機已通過多種環境實驗的測試。  角度測量儀是某控制系統中瞄準裝置的關鍵部件。  1  硬體基本原理  首先,角度測量儀利用單片機讀取光電編碼器測出的角度值,再將角度值轉換成密位值並顯示在數碼屏上(注意: 密位(mil) 是一種角度單位,密位100 = 角度6°)。單片機判斷當前角度值的偏差範圍,給出控制信號點亮相應的發光二極體指示燈。
  • 基於單片機及傳感器的機器人設計與實現
    摘要: 本設計基於單片機及多種傳感器,完成了一個自主式移動機器人的製作。單片機作為系統檢測和控制的核心,實現對機器人小車的智能控制。本文針對具有引導線環境下的路徑跟蹤這一熱點問題,基於單片機控制及傳感器原理,通過硬體電路製作和軟體編程,製作了一個機器人,實現了機器人的路徑跟蹤和自動糾偏的功能,並能探測金屬,實時顯示距離。
  • 基於電晶體圖示儀的CPLD控制器設計
    與圖1相比不同的是:「垂直放大」、「水平放大」和「示波管」取消了,其功能由上位機承擔;同時增加了單片機、CPLD、存儲器和 A/D轉換器等部件,組成數據採集電路。工作時上位機向單片機發出數據採集命令,單片機通過階梯電流發生器對T的基極施加階梯電流信號,通過掃描電壓發生器對T的集電極迴路施加掃描電壓;與此同時,CPLD控制器控制A/D轉換器和存儲器快速採集和存儲電壓電流數據。
  • 彭金望:基於ARM的驅鳥車控制器的研製
    本文所設計的控制器是針對威脅飛行安全的飛鳥。本控制器將子彈炮,爆閃燈以及天敵叫聲三種驅鳥方式整合在一起,工作人員可以根據不同的鳥情選擇不同的驅鳥方式或者同時選擇多種驅鳥方式,以最優的驅鳥方式進行驅鳥,已達到最佳的驅鳥效果。本系統主要由單片機,ARM,雲臺,驅鳥炮,音頻輸出等設備組成。控制系統的驅鳥方式主要有音頻驅鳥和子彈炮驅鳥兩種驅鳥方式。
  • 單片機小製作,LED小燈瓶
    本製作使用的是8個引腳的ATtiny13單片機,這款單片機現在的價格很便宜,4元左右就能買到。之所以能這樣連接,是因為AVR單片機的每個I/O都是3態輸出。如果用普通51單片機,這樣連接是不行的。那麼又是如何控制LED的亮度呢?控制亮度的關鍵是ATtiny13的兩路PWM,它們可以分別設置連接到PB0和PB1引腳上。在ATtiny13使用內部振蕩器的情況下,PWM的最高頻率可設置為47.5kHz。