隨著人們生活水平的提高和建立綠色城市的向往,音樂噴泉以其獨特的魅力和特殊的功能,愈來愈成為休閑娛樂產業中的一項重要產品,音樂噴泉的興建也越來越多。
根據目前音樂噴泉的發展現狀,介紹了一個以AT89C51單片機為核心的小型音樂噴泉控制系統。給出了一個簡潔的單片機控制電路,分析了輸出地址,描述了不同類型的輸出電路和輸入電路;介紹了從特定構造的噴池中獲得決定噴池動作的噴池數據的原理;給出了主程序框圖和看門狗子程序。采用程序控制來控制花型。音頻信號還影響燈光色彩和燈光光線明暗的變化。從而使燈光色彩、燈光的閃爍和噴泉水姿隨音樂節奏而變化。
隨著人們生活水平的提高,人們對環境的要求越來越高,城市環境建設日益為人們所重視。噴泉作為一種觀賞性較高的藝術水景,不斷的出現在城市的廣場、公園及其它公共場所,早些的噴泉都是固定不可調的,顯得有些單調,隨著科技的發展音樂噴泉也進入了我們的城市。音樂噴泉是現代科技與藝術的綜合,音樂噴泉將噴水圖形、彩色燈光及音樂旋律構成一個有機的整體,隨著樂曲旋律和節奏的變化,各種不同的噴水花形相應的配合變換,在五彩絢麗的變幻燈光照耀下,構成一幅幅奇妙無比的景觀、令人賞心悅目,嘆為觀止,在視聽上獲得極大的享受。音樂噴泉的起源于1930年,德國人首先帶出噴泉的概念,此后經過多年的發展,其音樂噴泉的設計及構造已變得更大型及復雜。隨著我國改革開放政策的不斷實施,80年代中,我國也相繼引進和自行設計建造了多座音樂噴泉,為美化環境,活躍人民的文化生活起了良好的作用。通過學習和引進國外先進技術,加上自行研究和開發,噴泉的面貌不斷更新,各種新水型層出不窮,音樂噴泉還可以同水幕電影、激光表演和舞臺表演相結合,產生令人難忘的藝術效果。我國現有上百家噴泉水景設備制造廠,經過市場競爭、優勝劣汰,我國已經出現了幾家綜合實力較強的大型噴泉水景工程公司,能夠獨立建設投資上千萬元的特大型噴泉水景工程,并創造了一些世界之最的新記錄。總體上說,我國的噴泉水景技術已經達到了國際先進水平,其建設規模和市場需求更是其他國家所難以相比的。
1.2 音樂噴泉的發展和現狀北京石景山古城公園的音樂噴泉,在悠揚動聽的音樂聲中,噴水可產生五六種變化,時而轉動如銀傘,時而飄忽如玉帶,時而如金蛇狂舞,時而旋轉飛濺···噴出的花形有曇花、菊花、扶桑花、百合花和曼陀羅花,這是在80年代初期中國較早建設的一個音樂噴泉。
南昌的秋水廣場是由“落霞與孤鶩齊飛,秋水共長天一色”的意境得名,秋水廣場就是以噴泉為主題,集旅游、觀光、購物的大型休閑廣場。他的音樂噴泉最吸引人注目,是國內最大的音樂噴泉群,泉水面積1.2萬平方米,主噴高達128米,是南昌的一俏麗景觀,人們可以一邊欣賞音樂,一邊觀看滕王閣的美景。
新加坡圣淘沙旅游區的音樂的設計與效果也是值得參考的,它布置在一個空曠而略有坡度的空間,面積很大,與圣淘沙車站前的長形噴水池共同組成為一個長達數百米的綜合系列噴泉,音樂噴泉位于系列噴泉的頂端。舞臺為一假山堆疊的西洋式半圓柱廊組成,共分3層。白天,假山瀑布及兩側的噴泉群與3層水池形成一處動靜結合的較為文雅悠揚的水景園,入夜則有五光十色,優美動聽的噴泉景觀,整個舞臺區域東西面闊近百米,南北深度約40m,成為目前亞洲最大的音樂噴泉之一。表現出壯闊、絢麗的水景之美。
以上幾處音樂噴泉從建筑形勢、音樂曲調及水舞表演的角度展現了音樂噴泉的美麗姿態,但是都屬于大型的音樂噴泉,其控制系統也多采用PLC邏輯編程控制,造價高,流量需求大,一般為專門的定量設計。即使這樣,國內外的音樂噴泉控制系統設計均以達到成熟的水平,而且還有專門的生產設計廠家,提供設計、噴泉設備及安裝等服務。目前,國內的音樂噴泉逐漸向智能化、分散化、綜合化、多樣化的方向發展,于是對噴泉控制系統的設計也提出了更高的要求。
該音樂噴泉控制系統的總體結構如圖2.1所示,由音樂輸入系統、數模轉換系統、單片機控制系統和輸出控制系統等組成。
圖2.1 系統總體結構框圖
2.2音樂信號的采集前面已經介紹過,本文的研究針對的是采用外部音源的噴泉系統,因此在對
音樂信號進行特征識別前首先要完成對模擬音樂信號的采集。音樂信號的采集主
要包括音頻放大和 A/D 轉換兩個過程,下面分別進行分析。
2.2.1 音頻放大電路的設計外部音源信號的幅度一般較弱,因此必須要對原信號進行放大處理后才能送入A/D 轉換器。本文選擇了 LM386 芯片設計音頻放大電路。LM386 是美國國家半導體公司(NS)推出的系列功率放大集成電路的一種,LM386 具有功耗低、工作電壓范圍寬、所需外圍元件少等特點,在電子設備的音頻放大電路設計中應用非常廣泛,它使用了 10 只晶體管構成了輸入級、電壓增益和電流驅動級。其中 T1~T6 組成 PNP 型復合差分放大器,T5、T6 為鏡像恒流源,作為 T3、T4 的有源負載,使輸入級有穩定的增益。電壓增益級由接成共發射極狀態的 T7 承擔,其負載也使用了恒流源,整個集成功放的開環增益主要由該級決定。T8、T9 復合為一個 PNP 管,和 T10 共同組成互補對稱射極輸出電路,以供給負載以足夠的電流。D1、D2 提供了 T8、T9、T10 所需的偏置,使末級偏置在甲乙類狀態。R5~R7 構成內部反饋環路。從圖 3.2.1 可以看出,LM386 采用雙列 8 腳封裝結構,它的工作電壓范圍為 4~12V,靜態電流 4mA,最大輸出功率 660mW,最大電壓增益 46dB,增益帶寬 300kHz,諧波失真 0.2%。
圖2.2.1 LM386 封裝形式及引腳定義
在 LM386 的 DataSheet 上,提供了兩種典型放大電路的設計方案。一種是在
LM386 的 1 腳和 8 腳之間不接其他元件,此時放大電路的增益僅由內部電阻 R5~R7決定,為 20 倍數(26dB),這種方式外部電路元件最少,也最為經濟。另一種通
過在 1 腳和 8 腳之間串接不同的阻容元件,改變放大電路的交流反饋量,從而改變放大電路的閉環增益。音樂信號的放大采集如圖 2.2.2所示。外部音源(聲卡、CD 機等)的模擬音樂信號分左、右聲道分別進入放大電路,經過信號放大后,得到幅值放大后的音頻信號。從圖 3.2.2 可以看出放大電路的具體設計。在 LM386 的 1 腳和 8 腳之間串接一個 10 微法的電容 C4,使內部電阻 R6 被交流旁路,放大電路的增益能達到最大值,200 倍數(46dB)。再對音頻放大電路的外圍電路進行設計,電路中電容 C1、C6 作為隔直電容,電位器 P1 用于調節音量的大小,元件 R2、C5 有助于旁路高頻噪音和改善輸出的音質。電容 C3 作為去耦電容,一方面是本集成電路的蓄能電容,另一方面旁路掉該器件的高頻噪聲。電容 C2 則是作為旁路電容,將信號的中高頻噪音旁路到地。經過放大電路的音頻信號就送入 A/D 轉換器進行采樣,這里 A/D轉換器要設置為雙極性,即能接收負信號。
圖 2.2.2 音樂信號放大采集
2.2.2 采樣定理采樣是指用一較高頻率的開關脈沖對模擬信號進行取樣,取出脈沖到來時刻
所對應的模擬信號的幅度,這樣就可以得到一連串幅度變化的離散脈沖。用這些
離散脈沖序列代替原來時間上連續的信號,也就是在時間上將模擬信號離散化。
如圖 3.2.2 所示,在對音樂信號進行放大處理后,就要通過 A/D 轉換將模擬信號采集進計算機,這就是音樂信號的采樣。我們在對一個連續的音樂信號進行采樣時,為了使采樣后的樣本序列能夠包含足夠的信息以使其能夠較正確地重現原來的模擬信號,在采樣時應當使采樣頻率滿足采樣定理的要求。采樣定理的描述為“對一個模擬信號進行離散化時,只要滿足采樣頻率fs 大于或等于被采樣信號的最高頻率fm的2 倍,就可以通過理想的低通濾波器,從樣本值序列信號中無失真地恢復出原始模擬信號”,這里的fm稱為香農頻率,這個采樣定理又稱為香農采樣定理。實際應用中為了較好的防止頻譜混疊失真,采樣頻率一般要稍大于信號最高頻率的 2 倍。比如樂曲的音域頻段如果在 50Hz~4000Hz 內,就要將 A/D 轉換器的采樣頻率選定為 10kHz,才能滿足香農采樣定理的要求。
2.3 單片機電路單片機要采集音樂信號,并據此調節I/O口的輸出來控制水泵和彩燈。主芯片選用AT89C51單片機。AT89C51單片機是一個低功耗,高性能的51內核的CMOS 8位單片機,片內含8K空間的可反復擦寫1000次的Flash只讀存儲器,具有256bytes的隨機存取數據存儲器(RAM),32個I/O口,1個看門狗定時器,3個16位可編程定時器,具有ISP功能,能夠滿足設計要求。使用簡單且價格非常低廉。故系統的主控制器采用此方案。
圖2.3 89C51芯片
2.3.1 單片機的概述AT89C51是美國ATMEL公司生產的低電壓,高性能CMOS 8位單片機,片內含4K bytes的可反復擦寫的只讀程序存儲器(PEROM)和128 bytes的隨機存取數據存取器(RAM),器件采用ATMEL公司的ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8位中央處理器(CPU)和Flash存儲單元。AT89C51提供一下標準功能:4K字節Flash閃速存儲器,128字節內部RAM,32個I/O口線,兩個16位定時/計數器,一個5向量兩級中斷結構,一個雙全工串行通信口,片內震蕩器及時鐘電路。同時,AT89C51可降至0Hz的靜態邏輯操作,并支持兩種軟件可選的節電工作模式。空閑方式停止CPU的工作,但允許RAM,定時/計數器,串行通信口及中斷系統繼續工作。掉電方式保存RAM中的內容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位。
單片機有四個數據輸出端口,P0口、P1口、P2口、P3口。由于P3口還有許多特殊功能,如讀寫控制、串行通信、外部中斷等功能,所以P3口不用作數據輸入輸出端口。P0口具有很強的帶負載的能力,除了用作地址總線低八位以外,還兼作訪問外接擴展程序內存時數據總線以及與A/D轉換器ADC0809L連接的資料線。P1口、P2口帶負載能力相對比教弱,而P2口需要用作訪問外接內存的高八位地址線,因此P2口也不作為數據輸入輸出口,剩下的P1口作為資料輸出口。
AT89C51芯片內部有一個高增益反相放大器,用于構成振蕩器。反相放大器的輸入端為XTAL1,輸出端為XTAL2兩端跨接石英晶體及兩個電容就可以構成穩定的自激振蕩器,如圖2—13所示:
圖2-13自激振蕩器
2.4 AD轉換電路輸入的電壓為交流模擬量,不能直接送入單片機進行處理。因此首先采用全橋整流,濾波。使其成為直流信號,再采用全橋整流,濾波。使其成為直流信號,再采用了ADC電路。其中AD芯片為ADC0832。ADC0832為8位分辨率A/D轉換芯片,其最高分辨可達256級,可以適應一般的模擬量轉換要求。其內部電源輸入與參考電壓的復用,使得芯片的模擬電壓輸入在0~5V之間。芯片轉換時間僅為32
ADC0809各引腳功能:ADC0809采用雙列直插式封裝,共有28條引腳。
(1)IN0—IN7(8條) IN0—IN7為8路模擬電壓輸入線,用于輸入被轉換的模擬電壓;
(2)地址輸入和控制(4條) ALE為地址鎖存允許輸入線,高電平有效。當ALE線為高電平時,ADDA、ADDB和ADDC三條地址線上的地址信號得以鎖存,經譯碼后控制8路模擬開關工作,ADDA、ADDB和ADDC 為地址輸入線,用于選擇IN0—IN7上的哪一路模擬電壓送給比較器進行A/D轉換。
(3)數字量輸出及控制線(11條)“START”為“啟動脈沖”輸入線,該線上的正脈沖由CPU送來,寬度應大于100ns,上升沿清零SAR,下降沿啟動ADC工作。EOC為轉換結束輸出線,該線上的高電平表示A/D轉換已結束,數字量已鎖入“三態輸出鎖存器”。OE為“輸出允許”線。
(4)電源線及其他(5條) CLOCK為時鐘輸入線,用于為ADC0809提供逐次比較所需的時鐘脈沖序列。VCC為+5電源輸入線,GND為地線。VREF(+)和VREF(-)為參考電壓輸入線,用于給電阻階梯網絡供給標準電壓。VREF(+)常與 VCC 相連VREF(-)常接地或負電源電壓。
2.4.1 ADC0809與單片機89C51的連接ADC0809的時鐘信號來自單片機89C51的ALE信號,89C51采用12MHz時鐘頻率,ALE為2MHz,經四分頻后為500KHz作為ADC0809的時鐘頻率。用P2.7控制A/D轉換的啟動與轉換結束后數字量的讀取。ADC0809的地址鎖存允許管腳(ALE)H和啟動管腳(START)相連。由P2.7和WR信號經或非門提供的信號使P0.2—P0.0提供的3位通道地址送入ADC0809進行鎖存,用以選取通道號。轉換結束信號EOC作為查詢信號。具體接口電路如圖2-4所示
圖2-4ADC0809
2.4.2輸入電路在這里,輸入電路是指能對樂曲啟停、樂曲節奏和聲音強弱等進行檢測并將檢到的信號以電平、脈沖或數字形式送至單片機的電路。為說明簡單計,這里僅介紹能反映樂曲啟停的奏曲信號電路。因為有了它,音樂已不再僅是背景音樂,音樂已用來控制整個噴池的動作與否,因而已達到了音樂噴泉的最基本要求。
奏曲信號電路的框圖如圖2.4.2所示。左右兩路立體聲信號經混合后送限幅放大電路放大,這樣即使是極弱的樂曲信號也能有足夠強度媳信號輸出。整流濾波電路用以將信號轉為單向信號。電壓比較器用以將大于基準電壓的單向信號變換成低電平有效的奏曲信號由之端輸出。通過調整基準電壓,可使電路既不受干擾的影響又靈敏度最大。奏曲信號電路的輸出經R3送至光耦4N35在單片機P1.5引腳產生一低電平信號。
圖2.4.2奏曲信號電路框圖
2.5潛水泵調速硬件方案設計方案一:采用變頻器,調速方便、容易,只要控制口電流范圍為4到20毫安就可以,精度高,缺點價格偏貴。
方案二:采用步進電機調速電路,這樣會增加電路復雜性,控制精度偏低,優點是價格偏低。本系統成本問題必須考慮,控制精度要求不是很高,步進電機調速電路就可以滿足要求。
本系統采用可控硅調相的方法控制噴泉水泵的轉速。電路如圖2.5所示,由單片機的I/O口輸出矩形波,通過光耦控制可控硅的導通角,進而控制水泵電機的轉速,調整噴泉的輸出高度。選用單相可控硅BT169控制220V的雙向交流電。交流通過二極管1N4007(耐壓值1000V)組成的整流橋后變為100Hz脈動的直流,由單片機P0.4依據音樂采樣結果輸出矩形波,通過光耦控制可控硅的通斷,以達到調相的目的。
圖2.5電機電路圖
采用這種方法關鍵要保證矩形波與100Hz脈動直流保持同相,由AD采樣的結果決定100Hz脈動直流的每一個周期有多長時間是導通的。所以將100Hz脈動直流分壓后作為單片機內部比較器的一個輸入端,另一個輸入端接一個由5V分來的固定電壓。當比較器的輸出結果發生變化時,由定時器定一段時間,這樣就找到了每個周期的起點,然后再根據AD采樣決定不等的延時來輸出矩形波導通可控硅。AD采樣結果大,每個周期的延時短,可控硅導通的時間長,水泵電機轉速快,反之亦然。
2.6燈光硬件方案設計方案一:使用大功率,不同顏色的發光二極管。
方案二:使用LED水下低壓彩燈。LED-水下彩燈系列除廣泛使用于噴泉,瀑布水下照明外,還可用于假山,橋梁等投光照明。 水下彩燈均采用著名荷蘭菲利蒲公司產品,產品結構合理,色彩鮮艷,并進一步改進了其密封、防護和接線方式,廣泛適合于各種噴泉。
本次設計采用水下照明和閃光彩燈,水下照明采用LED水下低壓彩燈兩個,閃光彩燈采用不同顏色的發光二極管。
圖2.6 彩燈的連接
2.7解決系統時間滯后硬件電路設計由于單片機采集數據并處理需要一定的時間,加上電機響應和水柱顯示也需要一定的時間。電機由一種轉速到另一種轉速的響應時間可以查電機參數得到,電動機的響應時間為0.04S,單片機采集處理數據程序約為100句,約為0.6ms,水柱的顯示延時可以通過水閘效應計算出來,經計算總延時約為0.2S。提出兩種解決方案。
方案一:采用預處理,即把要控制的音樂元素提前編輯好,提前控制。
方案二:采用把音樂延時播放,即在音樂源與音響間加延時電路,調節參數,使音樂與水柱的變化同步。
音樂元素提前預處理一般使用在工控機等數字處理能力非常強的控制系統中,使用單片機一般實現不了這個預處理目標。因此采用延時電路[6]把音樂延時播放,選擇方案二。
程序采用模塊化結構,所有用到的常數或數組都用EQU或DATA或DB偽指令定義與命名,以使程序易于修改、調試和升級。本系統將TO溢出中斷用于軟件看門狗。
3.1噴池數據噴池數據是用以對噴池內的水泵、電磁閥和彩燈等進行開與關控制的數據。一組可循環使用的這種數據,就決定了噴泉和彩燈的一個特定的變化形態。這組噴池數據可稱為花樣數據。對一個特定構造的噴池,這種花樣數據可編寫出很多。
下面以圖3.1為例說明花樣數據的編排方法。假設希望外圈噴頭每隔一定時間順次增噴2個噴頭,且從2個經4步順時針增至8個后,再順次以同樣的方向同樣的速度每次減噴2個噴頭,即從8個噴頭經4步減至0。以后不斷按上述規律循環變化。在這期間,里圈和中心噴頭一直不噴。在不考慮其它控制的情況下,圖4.1噴池只需2個輸出寄存器,其各位控制噴頭定義如下:
8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
X | X | X | 13 | 12 | 11 | 10 | 9 |
以上各位若為1時相應的噴頭噴水,為0時不噴水,則外圈噴頭數據應為:
0000 0011B
0000 1111B
0011 1111B
1111 1111B
1111 1100B
1111 0000B
1100 0000B
0000 0000B
若該花樣數據定義為HYSJ01則數據定義如下:
HYSJ01:
DB 03H,0FH,3FH,0FFH,0FCH,0FOH,0COH,00H;外圈噴頭數據
DB 0,0,0,0,0,0,0,0 ; 里圈和中心噴頭數據
每次將花樣數據輸出時都是順次取一列輸出的,且可循環取用。顯然這樣的花樣數據可以編不少,還可將兩個以上的數據搭配起來,組成新的更復雜一些的花樣數據。
3.2主程序框圖程序重新設置后,進入0000H開始的主程序,其流程圖如圖3.2所示。可以看出:P1.4上的開關K決定是否測試輸出通道;樂曲是否演奏決定了噴池是否有動作,即P1.5的電平;拔碼開關的設定值決定了延時多少倍的0.1秒時間,即噴池動作改變的時間間隔:奏曲每停一次(大多數樂曲奏曲中間不會停),下次再奏曲就換一組花樣數據,若用完了最后一組,以后就從頭再取。也就是多個樂曲依次輪流循環使用編制好的噴池花樣數據。
3.3 控制潛水泵軟件設計模塊目前,潛水泵結構簡單,成本較低,控制方便,只有一種轉速。要控制潛水泵的流量變化,就必須使潛水泵的轉速發生變化。
我們使用無觸點開關分時接通的方法提高潛水泵的轉速檔次,在硬件電路基本不變的條件下,使潛水泵具有十八檔轉速的調速能力和更好的節能效果,這種方法無需增加較多的硬件,僅在控制器中采用新的調速程序,即可達到提高潛水泵轉速檔次和節能的目的。
圖3.2 主程序流程圖
3.3.1 潛水泵開關調速的原理潛水泵調速電路中, L、M、H分別為單相潛水泵的低速抽頭、中速抽頭和高速抽頭,單相潛水泵采用電容運行方式,三個抽頭與電源的連接由三個雙向晶閘管TL、TM、TH來控制,當TL導通時潛水泵的低速抽頭與電源連接,潛水泵低速運轉,同樣,TM導通時潛水泵中速運轉,TH導通時潛水泵高速運轉。我們采用分時接通L、M、H的方法,可以調節潛水泵的轉速,使潛水泵獲得十八檔轉速的變速能力。設電源頻率為50HZ,其周期為0.02S,取調速周期TS=6T(T為電源周期),低速調速時,調速周期內不接通任何一個晶閘管,則潛水泵的轉速0,調速周期內全接通晶閘管TL,則潛水泵低速運轉,但如果在6個電源周期內,N個周期接通晶閘管TL(0≤N≤6),其他時間不接通,那么,在潛水泵的低速下可獲得6檔更低的轉速。同樣,中速調速時,調速周期內全接通晶閘管TL,則潛水泵低速運轉,全接通晶閘管TM,則潛水泵中速運轉,如果在6個電源周期內N個周期接通晶閘管TM,(6-N)個周期接通TL,那么在潛水泵的低速和中速之間可獲得6檔轉速。同樣道理,在中速和高速間又可獲得6檔轉速。由此可見采用分時接通的方法,可以使潛水泵具有十八檔轉速的調速能力。
3.3.2潛水泵開關調速的軟件設計單相潛水泵采用單片機AT89C51控制,單片機的輸出端口P2.0、P2.1、P2.2經反相器與晶閘管TL、TM、TH的控制極連接,當P2.0=“0”時,晶閘管導通,潛水泵可低速運轉,反之,P2.0=“1”時,晶閘管截止,潛水泵停轉,即由P2.0輸出電位控制潛水泵的低速檔;同樣,由P2.1輸出電位控制潛水泵的中速檔,P2.2控制潛水泵的高速檔。采集的音樂信號經過傅立葉變換再去查幅值對應的分貝轉速表直接得到轉速代碼,這樣就可以控制潛水泵的轉速,再此只以生日快樂音樂程序為例,控制潛水泵轉速的方法如下:
每個音符對應一種轉速代碼,潛水泵的轉速隨音符改變而改變。調速程序必須經過一個最小時間1/4拍才能輸出一個轉速代碼的轉速,在調速程序中,采用一個存儲單元(90H)作為轉速輸入單元,另一個存儲單元(95H)記錄晶閘管導通時間,并通過延時程序來實現。
在調速程序中,我們采用8位數據記錄電機的轉速代碼,其中低3位(b2b1b0)表示接通比例N,第4、5位(b4b3)表示接通檔次,高3位(b7b6b5)不用。接通檔次表示調速為低速調速、中速調速還是高速調速,其值為b4b3={00B,01B,10B,11B},當接通檔次為00B時,在轉速代碼設定的接通比例內接通晶閘管TL,接通比例外不接通晶閘管;當接通檔次為01B時,在轉速代碼設定的接通比例內接通晶閘管TM,接通比例外接通晶閘管TL,當接通檔次為10B時,在轉速代碼設定的接通比例內接通晶閘管TH,接通比例外接通晶閘管TM;當接通檔次為11B時,接通比例只有00H一種,這時在整個調速周期內接通晶閘管TH,潛水泵高速運轉。接通比例的取值范圍000B-110B,由此可知,轉速代碼的取值范圍為00H-06H,09H-0EH,11H-16H總共十八個代碼,其中00H-06H為低速檔代碼,09H-0EH為中速檔代碼,11H-16H為高速檔代碼。所以潛水泵除零速外共有十八檔轉速。
上述方法可以使潛水泵具備十八檔轉速的調速能力,但這個方法也有一些缺點,主要是:
① 潛水泵的轉矩是脈動的,使潛水泵的機械噪聲增大,在此我采取防止轉子軸向運動的措施減少噪聲,把潛水泵和水管固定。
② 低速檔接通比例較低時,潛水泵主軸出現蠕行,不能正常工作,必須限制最小轉速代碼。可去掉低速檔轉速代碼中最低接通比例的三個代碼,保留轉速較高的十五檔轉速。采用改進的控制位波形和限制最小轉速代碼之后,潛水泵在應用中取得較好的調速和調節流量的效果。
3.4控制電磁閥軟件設計模塊控制閥主要是控制噴池花型,由于采用PA0到PA7,PB0到PB4口控制電磁閥,除去相同的花型噴頭,所以噴池花型只有1到256種。可以人工按鍵選擇,其噴池花型值通過LED數碼管顯示出來,即第幾號花型,選擇了噴池花型值就使相應的電磁閥通電,高電平口使電磁閥有電。高電平口使電磁閥有電,電磁閥編號與PA、PB口的編號對應,則PA、PB口的噴頭數據一樣。
控制電磁閥子程序模塊
DIAN: MOV A,31H; 求出花型數據
ADD A,32H
ADDC A,33H
MOV 34H,A; 保存起來
MOV DPTR, #0F700H;指向1#8155命令口
MOV A, #3H; 設置命令字
MOVX @DPTR, A
INC DPTR; 指向1#PA口
MOV A,34H
MOVX @DPTR,A; 高電平口使電磁閥有電
INC DPTR; 指向1#PB口
MOV A,R7
MOVX @DPTR, A
RET
3.5 歌曲存儲模塊3.5.1音頻脈沖的產生若要產生音頻脈沖,只要算出某一音頻的周期(1/頻率),再將此周期除以2,即為半周期的時間。利用定時器計時半周期時間,每當計時終止后就將I/O反相,然后重復計時再反相。就可在I/O引腳上得到此頻率的脈沖。利用單片機的內部定時器使其工作計數器模式(MODE1)下,改變計數值TH0及TL0以產生不同頻率的方法產生不同音階,例如,頻率為523Hz,其周期T=1/523=1912μs,因此只要令計數器計時956μs/1μs=956,每計數956次時將I/O反相,就可得到中音DO(523Hz)。
表3.1 C調各音符頻率與計數值T的對照表
音符 | 頻率Hz | 簡譜碼(T值) | 音符 | 頻率Hz | 簡譜碼(T值) |
低1DO | 262 | 63628 | #4FA# | 740 | 64860 |
#DO# | 277 | 63731 | 中5SO | 784 | 64898 |
低2RE | 294 | 63835 | #5SO# | 831 | 64934 |
#2RE# | 311 | 63928 | 中6LA | 880 | 64968 |
低3M | 330 | 64021 | #6 | 932 | 64994 |
低4FA | 349 | 64103 | 中7SI | 988 | 65030 |
#4FA# | 370 | 64185 | 高1DO | 1046 | 65058 |
低5SO | 392 | 64260 | #1DO# | 1109 | 65085 |
#5SO# | 415 | 64331 | 高2RE | 1175 | 65110 |
低6LA | 440 | 64400 | #2RE# | 1245 | 65134 |
#6 | 466 | 64463 | 高3M | 1318 | 65157 |
低7SI | 494 | 64524 | 高4FA | 1397 | 65178 |
中1DO | 523 | 64580 | #4FA# | 1480 | 65198 |
#1DO# | 554 | 64633 | 高5SO | 1568 | 65217 |
中2RE | 587 | 64684 | #5SO# | 1661 | 65235 |
#2RE# | 622 | 64732 | 高6LA | 1760 | 65252 |
中3M | 659 | 64777 | #6 | 1865 | 65268 |
中4FA | 698 | 64820 | 高7SI | 1967 | 65283 |
每個音符使用一個字節,字節的高4位代表音符的高低,低4位代表音符的節拍,表3.2節拍與節拍碼的對照。如果1拍為0.4秒,1/4拍是0.1秒,只要設定延遲時間就可求得節拍的時間。假設1/4拍的節拍時間為DELAY,則1拍應為4DELAY,以此類推。所以只要求得1/4拍的DELAY時間,其余的節拍就是它的倍數,如表3.3為1/4和1/8節拍的時間設定。
表3.2 節拍與節拍碼的對照
節拍碼 | 節拍數 | 節拍碼 | 節拍數 | ||
1 | 1/4拍 | 1 | 1/8拍 | ||
2 | 2/4拍 | 2 | 1/4拍 | ||
3 | 3/4拍 | 3 | 3/8拍 | ||
4 | 1拍 | 4 | 1/2拍 | ||
5 | 1又1/4拍 | 5 | 5/8拍 | ||
6 | 1又1/2拍 | 6 | 3/4拍 | ||
8 | 2拍 | 8 | 1拍 | ||
A | 2又1/2拍 | A | 1又1/4拍 | ||
C | 3拍 | C | 1又1/2拍 | ||
F | 3又3/4拍 |
表3.3 各調1/4節拍的時間設定
曲調值 | DELAY | 曲調值 | DELAY |
調4/4 | 125毫秒 | 調4/4 | 62毫秒 |
調3/4 | 187毫秒 | 調3/4 | 94毫秒 |
調2/4 | 250毫秒 | 調2/4 | 125毫秒 |
表3.4簡譜對應的簡譜碼、T值
簡譜 | 發音 | T值 | 簡譜碼 | 簡譜 | 發音 | 簡譜碼 | T值 |
5 | 低音 | 64260 | 1 | 6 | 中音 | 9 | 64968 |
6 | 低音 | 64400 | 2 | 7 | 中音 | A | 65030 |
7 | 低音 | 64524 | 3 | 1 | 高音 | B | 65058 |
1 | 中音 | 64580 | 4 | 2 | 高音 | C | 65110 |
2 | 中音 | 64684 | 5 | 3 | 高音 | D | 65157 |
3 | 中音 | 64777 | 6 | 4 | 高音 | E | 65178 |
4 | 中音 | 64820 | 7 | 5 | 高音 | F | 65217 |
5 | 中音 | 64898 | 8 | 高音 | 0 |
先根據樂譜的音符按表3.1建立T值表的順序,把T值表建立在TABLE1,構成發音符的計數值放在TABLE中;簡譜碼(音符,參照表3.4)為高4位,節拍(節拍數,參照表3.2)為低4位,音符節拍碼放在程序的“TABLE”處。音樂程序模塊
START-MU:
ORG 00H ; 主程序起始地址
JMP START; 跳至主程序
ORG 0BH ; TIMER0中斷起始地址
JMP TIM0; 跳至TIMER0中斷子程
START: MOV TMOD,#01H ; 設TIMER0在MODE1
MOV IE, #82H; 中斷使能
START0: MOV 30H, #00H; 取簡譜碼指針
NEXT: MOV A, 30H ; 簡譜碼指針載入A
MOV DPTR,#TABLE; 至TABLE取簡譜碼
MOVC A, @A+DPTR
MOV R2, A; 取到的簡譜碼暫存于R2
JZ END0; 是否取到00(結束碼)?
ANL A, #0FH; 不是,則取低4位(節拍碼)
MOV 90H, A; 為調速保存數據
MOV R5, A; 將節拍碼存入R5
MOV A, R2; 將取到的簡譜碼再載入A
SWAP A; 高低4位交換
ANL A, #0FH; 取低4位(音符碼)
MOV 90H, A; 保存音符碼,為調速做準備
JNZ SING; 取到的音符碼是否為0?
CLR TR0; 是,則不發音
JMP D1; 跳至D1
SING: DEC A; 取到的音符碼減1(不含0)
MOV 22H, A ; 存入(22H)
RL A; 乘2
MOV DPTR, #TABLE1; 至TABLE1取相對的高位字節計數值
MOVC A, @A+DPRT
MOV TH0, A; 取到的高位字節存入TH0
MOV 21H, A; 取到的高位字節存入(21H)
MOV A, 22H ; 再載入取到的音符碼
RL A; 乘2
INC A; 加1
MOVC A, @A+DPRT; 至TABLE1取相對的低位字節計數值
MOV TL0, A; 取到的低位字節存入TL0
MOV 20H, A; 取到的低位字節存入(20H)
SETB TB0; 啟動TIMER0
D1: CALL CHULIKOU; 調用以1/4拍為基本單位時間的調速子程序
INC 30H; 取簡譜碼指針加1
JMP NEXT; 取下一個碼
END0: CLR TR0; 停止TIMER0
JMP START0; 重復循環
TIM0: PUSH ACC; 將A的值暫存于堆棧
PUSH PSW; 將PSW的值暫存于堆棧
MOV TL0, 20H; 重設計數值
MOV TH0, 21H
CPL P1.0; 將P1.0位反相
POP PSW; 至堆棧取回PSW的值
POP ACC; 至堆棧取回A的值
RETI; 返回主程序
TABLE1:
DW 64260, 64400, 65524, 64580
DW 64684, 64777, 64820, 64898
DW 64968, 65030, 65058, 65110
DW 65157, 65178, 65217
TABLE:
DB 82H,01H,81H,94H,84H ;1
DB 0B4H,0A4H,04H
DB 82H,01H,81H,94H,84H
DB 0C4H,0B4H,04H;2
DB 82H,01H,81H,0F4H,0D4H
DB 0B4H,0A4H,94H
DB 0E2H,01H,0E1H,0D4H,0B4H
DB 0C4H,0B4H,04H;3
DB 82H,01H,81H,94H,84H
DB 0B4H,0A4H,04H
DB 82H,01H,81H,94H,84H
DB 0C4H,0B4H,04H;4
DB 82H,01H,81H,0F4H,0D4H
DB 0B4H,0A4H,94H
DB 0E2H,01H,0E1H,0D4H,0B4H
DB C4H,0B4H,04H
DB 00
TABLE2: DB 04H,05H,06H
DB 09H,0AH,0BH,0CH,0DH,0EH
DB 11H,12H,13H,14H,15H, 16H
END
3.6燈光控制模塊LC182是音頻調制彩燈控制專用芯片,其內部分配器頻率的高低受音頻信號大小的調制,特別適用于聲光音響控制場合,可直接驅動驅動眾多發光二極管閃光,也可驅動交流彩色電燈作循環閃光。LC182為四路驅動輸出。他們的內部均有信號整流電路。壓控振蕩器,脈沖分配器。在本系統中,單片機便開啟LC182時,LC182四路輸出依次變為高電平,其循環頻率約為0.5~1HZ,一有音樂信號的輸入,彩燈的循環頻率隨音頻信號的大小而變化,其最高循環頻率為15HZ。
燈光控制子程序
LUMP:
MOV DPTR, #0EF00H ; 初始化2#8155,PA口為基本輸出口
PB口為基本輸出口,PC口輸入口
MOV A, #1H
MOVX @DPTR, A
INC DPTR
INC DPTR; 指向2#8155PC口
MOV A, #01H
MOVX @DPTR, A
RET
3.7看門狗子程序軟件看門狗由“喂狗”子程序和(看門狗定時器)TO溢出子程序組成。“喂狗”子程序如下:
DOG:
MOV TH0,#02H;模式1定時器,在6MHZ晶振時,定時約130ms
MOV TL0, #18H
RET
此子程序應在系統程序的若干處調用,保證在程序正常執行時TO總不溢出。當受到某種干擾程序跑飛時,“喂狗”子程序得不到執行,經130ms后TO溢出中斷,就會執行如下的(看門狗定時器)To溢出子程序:
TOINT:
POP YR1 ;舍去無用棧頂內容
POP YR1 ;YRD和 YR1是兩個RAM單元名
MOV YR0,#49H ;0049H是本程序設定起始噴池花樣序號指令的存放地址
MOV YR1.#O
PUSH YR0 ;使棧頂內容為0049H
PUSH YR1
RETI ;執行RETI時PC值=0049H,即從0號噴池花樣開始演出
當執行從中斷返回指令RETI時,棧頂內容0049H就會彈出至程序計數器PC,從而重新設定起始噴池花樣序號后,再進行樂曲控制初始化,噴池繼續正常動作。
3.8實驗仿真仿真是利用計算機對實際額屋里模型或數學模型進行試驗(虛擬儀器的虛擬實驗),通過這樣的模型試驗來隨一個實際系統的性能和工作狀態進行分析和研究。
近年來計算機仿真技術取得了快速的發展,同時推動了單片機仿真技術的進步。目前,用于單片機仿真的工具很多,有些主要用于軟件仿真,側重于算法的驗證;有些用于硬件仿真的工具對CPU的仿真能力有限,至于對CPU外圍的硬件仿真更是無能為力。Proteus在單片機CPU和外圍器件方面表現出卓越的仿真能力使其成為目前最好的仿真工具之一。
Proteus的顯著特點如下:
(1)全部滿足單片機軟件仿真系統的標準,并在同類產品中有明顯優勢;
(2)具有模擬電路仿真、數字電路仿真、單片機及外圍電路組成的系統仿真的功能;
(3)目前支持的單片機類型有:68000系列、51系列、AAVR系列等;
(4)支持大量的存儲器和外圍設備。
由于實驗室條件原因本設計仿真部分不能在實驗室完成,因此僅在此將使用Proteus來實現本設計仿真的步驟進行描述如下:
第一步:打開Proteus 6 Professional繪圖界面。
第二步:添加所需元件并連接電路圖。本設計所需元件有:AT89C51、LED燈、水泵、電磁閥、揚聲器等。
第三步:添加仿真文件。
第四步:單擊開始圖標,開始仿真。此時噴泉開始運行,根據運行狀態進行源代碼的調試。
結 論
噴泉不但是園林、城市街道廣場和公共建筑等的裝飾品之一,而且它的出現給人們帶來了無限的歡樂,并且單一的噴泉逐步發展成種類繁多、造型優美、花型變化靈活的音樂噴泉,同時加上燈光藝術,使噴泉更加華麗、更加引人注目,因此成為現代社會較為流行的一種觀賞景觀。音樂噴泉的開發研究具有很大的發展前景,目前國內外同行業的技術無不體現著高科技技術在娛樂業的廣泛應用。本文闡述的只是一些初步的研究與開發,如何提高音樂節拍與噴泉的同步,全面考慮音樂的要素的識別和提取、實現音樂與噴泉的完美結合應該是一個艱巨的挑戰。
本文設計的音樂噴泉控制系統是旅游景點內用的小型音樂噴泉,具有造型優美、營業性強、控制簡單可靠的特點,充分體現了經濟型和實用性的原則,并且噴泉的安裝方便、維護簡單,能夠滿足用戶的需求。
在系統設計中,運用流體力學理論設計了噴泉的管路系統;運用單片機實現了樂曲播放和流量及花型控制;運用Protel軟件設計出了控制系統的控制電路。
不足之處在于:系統利用的是單片機產生方波信號控制揚聲器發音,所以播放的只能是音樂的曲調,而不是真人真唱的歌曲。
參考文獻
【1】肖玲琍. 音樂噴泉與現場總線技術[J]北京建筑工程學院學報, 2003,(03)
【2】陳一民,劉云超,陳琳,李元. 音樂噴泉系統的可視化設計及實時仿真[J]計算機工程, 1999,(08)
【3】李華,胡漢才.噴泉設計設備手冊[P].北京:高等教育出版社,2006 :56-70
【4】孫育才.供水系統設計[M].湖北:水利電力出版社,1979:40-45
【5】任致程.實用電動機控制電路350例[M].北京:人民郵電出版社,2002.132—134
【6】吳仁華,祁大勇.燈光控制系統的設計.北京:北京航空航天大學學報,2003:35-35
【7】崔玉周,楊吉,劉文斌.接口技術.水利與建筑工程學報,2007,5(1):73-75
【8】黃振國.應用電路技術.四川:電子科技大學出版社,2003:62-65
【9】李漢.基于單片機的單相電動機調速方法及其實現.廣州航海高等專科學校學報,2004,12(1):38-40
【10】張均,廖建波.小型音樂噴泉控制系統設計.江西農業大學學報,1999,21(4):619-621
【11】吳金戌,沈慶陽.8051單片機實踐與應用[T].北京:清華大學出版社,2002:124-130
附 錄附錄1
風勸云別走 發表于 2019-1-6 18:57
您好,這個仿真軟件用什么呀~
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |