C51程序控制激光廣告儀系統(tǒng)
關(guān)鍵詞:?jiǎn)纹瑱C(jī);C51語(yǔ)言;DAC;控制
引言
當(dāng)前,激光技術(shù)發(fā)展日趨完善,在基礎(chǔ)研究、醫(yī)療、機(jī)械、通訊等領(lǐng)域廣泛應(yīng)用。目前多采用計(jì)算機(jī)進(jìn)行可視化激光器控制,因?yàn)橛?jì)算機(jī)有很高的速度和很大的存貯空間,可以控制大的系統(tǒng)。在控制中小型系統(tǒng)時(shí),計(jì)算機(jī)的優(yōu)勢(shì)并不明顯,而且軟硬件復(fù)雜、成本較高。
采用簡(jiǎn)單的控制系統(tǒng)來(lái)取代計(jì)算機(jī)這樣復(fù)雜的系統(tǒng),可以解決以上問題。在一般控制系統(tǒng)中,單片機(jī)可以代替計(jì)算機(jī),其中被廣泛使用的是AT89C51單片機(jī),它具有結(jié)構(gòu)簡(jiǎn)單、價(jià)格便宜、控制性能良好、操作方便等優(yōu)點(diǎn)。
該控制系統(tǒng),本質(zhì)上是控制四路TTL電源電平,這方面作者作了一些有效嘗試。
本文利用單片機(jī)及C51程序控制激光器,使其在顯示屏上描述圖像。圖像原始數(shù)據(jù)由AUTOCAD 等相關(guān)軟件生成PLT文件,再轉(zhuǎn)化成C51數(shù)據(jù)模式。該控制系統(tǒng)主體控制程序是C51程序,由它控制激光描繪出相應(yīng)的圖像。
單片機(jī)控制的激光廣告儀系統(tǒng)
硬件系統(tǒng)組成
控制系統(tǒng)主要分為以下四個(gè)部分。
控制部分:AT89C51單片機(jī),8MHz晶振。運(yùn)行控制程序,向兩個(gè)DAC芯片發(fā)送控制指令,完成芯片的選擇和數(shù)據(jù)的發(fā)送。
DAC部分:兩個(gè)DAC芯片DAC0832LCN。完成數(shù)字信號(hào)向模擬信號(hào)的轉(zhuǎn)換,在確認(rèn)被選中后,對(duì)送上端口的8位數(shù)字信號(hào)進(jìn)行轉(zhuǎn)換。
信號(hào)放大部分:兩組雙運(yùn)算放大器HA17741。將數(shù)字圖像轉(zhuǎn)換成電壓量,然后輸出兩路電源給光學(xué)掃描系統(tǒng),控制X,Y軸振鏡。
開關(guān)電源: 通過單片機(jī)的p1.4和p1.5端口,輸出“1”或“0”來(lái)關(guān)閉和打開兩路紅綠激光電源。
三色激光廣告儀系統(tǒng)原理簡(jiǎn)圖和構(gòu)成
原來(lái)的三色激光廣告儀中的控制系統(tǒng)由計(jì)算機(jī)完成,現(xiàn)在由單片機(jī)來(lái)取代,如圖1所示。單片機(jī)通過導(dǎo)入其中的C51程序來(lái)控制四路電平的輸出。光學(xué)振鏡掃描系統(tǒng)(上海通用掃描公司生產(chǎn),型號(hào)為6001S)中X、Y軸振鏡步進(jìn)機(jī)接受從運(yùn)算放大器輸出的模擬電壓信號(hào)。正常的輸入電壓范圍為±10V,系統(tǒng)設(shè)定±40o光學(xué)掃描角,單片機(jī)控制系統(tǒng)中輸出電壓范圍為± 5V,所以對(duì)應(yīng)的光學(xué)掃描角為±20o,這樣的角度范圍滿足實(shí)驗(yàn)要求。
其余SW1,SW2兩路控制激光電源,一路是670nm的紅色激光,另一路是532nm的綠色激光。運(yùn)行程序控制激光發(fā)光及激光顏色,最后在演示屏幕上顯示所要求的圖像。
圖1 三色激光廣告儀系統(tǒng)原理簡(jiǎn)圖
圖2 雙極性輸出電路圖
圖3 C51語(yǔ)音程序流程圖
圖4 動(dòng)態(tài)顯示的橢圓和靜態(tài)矩形
?同步輸出
兩路D/A輸出要求嚴(yán)格同步,采用圖中接法,把數(shù)字量的輸入鎖存兩路D/A轉(zhuǎn)換輸出,實(shí)現(xiàn)同步控制X、Y軸振鏡步進(jìn)機(jī)。
當(dāng)振鏡的響應(yīng)頻率遠(yuǎn)遠(yuǎn)低于CPU數(shù)據(jù)傳輸速率,同步和異步之間的輸出差異將忽略,該系統(tǒng)也可采用異步輸出。
?雙極性輸出
振鏡的轉(zhuǎn)動(dòng)不僅與輸出模擬電壓大小有關(guān),而且與輸出模擬電壓的極性有關(guān)。所以在每個(gè)DAC后要用兩個(gè)運(yùn)算放大器來(lái)實(shí)現(xiàn)雙極性輸出,如圖2所示。雙極性輸出是在單極性輸出的基礎(chǔ)上再加一級(jí)電壓放大器,最終輸出的電壓為。
本系統(tǒng)中VREF=+5V,所以輸出的雙極性電壓范圍為±5V。當(dāng)單片機(jī)向DAC0832輸出的數(shù)字量為0H(0)時(shí),VOUT2=-5V;當(dāng)輸出的數(shù)字量為80H(128)時(shí),VOUT2=0;當(dāng)輸出的數(shù)字量為FFH(255)時(shí),VOUT2=+5V。
軟件系統(tǒng)
?AUTOCAD 的PLT文件
獲得圖像的原始數(shù)據(jù)一個(gè)基本方法,就是通過AUTOCAD 生成的PLT文件,PLT文件記錄了圖像在屏幕上坐標(biāo)值。一般來(lái)講,對(duì)圓弧而言,就是若干個(gè)微小的線段連接而成,每一個(gè)線段都有起始兩點(diǎn),由于圓弧是許多微小線段構(gòu)成,所以坐標(biāo)點(diǎn)很多,當(dāng)激光掃描這些坐標(biāo)點(diǎn)時(shí),就能顯示相關(guān)的圖形。PLT文件是HP繪圖儀的命令語(yǔ)句, PLT 文件由幾乎可讀的ASCII碼組成,容易生成和調(diào)試。
對(duì)其中一些重要參數(shù)的解釋:
IN (initial):初始化,設(shè)置所有參數(shù),將畫筆移至原點(diǎn)。
SC (scale):定標(biāo),坐標(biāo)值的范圍。
LT (line type):線型,一般為實(shí)線。
SP (select pen):選擇筆型。
PU (pen up):起筆。
PD (pen down):落筆。
PA (pen allocate):定位筆,其后數(shù)據(jù)是X、Y軸坐標(biāo)。
從使用角度,真正有用的是PA后的X、Y軸坐標(biāo),也是必須轉(zhuǎn)換的數(shù)據(jù)部分,這也是PLT文件主體部分,集中了大量數(shù)據(jù),提取PA后的坐標(biāo)值簡(jiǎn)化成TXT文件,再拷貝到C51程序中。
?TURBO C++ 相關(guān)程序段和解釋
該TURBO C++ 轉(zhuǎn)換程序主要功能是對(duì)PLT文件中的圖像數(shù)據(jù)進(jìn)行轉(zhuǎn)換,把不適合C51語(yǔ)言的PLT文件數(shù)據(jù)格式轉(zhuǎn)換成適合C51語(yǔ)言的數(shù)據(jù)格式。C51語(yǔ)言數(shù)據(jù)格式為0至255的十六進(jìn)制的數(shù)據(jù),如:34,d6,fe 等格式,255對(duì)應(yīng)的十六進(jìn)制的數(shù)為 ff。PLT文件的數(shù)據(jù)在零到數(shù)萬(wàn)正負(fù)之間,因此必須要對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換。
?C51程序流程圖和解析
C51程序是控制激光器的主體程序,分成三個(gè)主要部分:選擇DAC芯片,數(shù)據(jù)指針指向數(shù)據(jù)表,數(shù)據(jù)輸出轉(zhuǎn)換。
這些數(shù)據(jù)代表電壓值,由于單片機(jī)數(shù)據(jù)位是8位,電壓的輸出在± 5V之間。把電壓分成256份(28)。80h對(duì)應(yīng)的是0V,ffh 對(duì)應(yīng)的是+5V,00h對(duì)應(yīng)的是- 5V。其輸出的電壓值精度就是10/256V,約為39mV。
流程圖如圖3所示。C51語(yǔ)言相關(guān)程序段和解釋:
1.打開激光器:把p1.4和p1.5 端口置成低電平來(lái)打開紅綠兩路激光器, 當(dāng)然也可打開其中任一路顏色的激光器,顏色合成就是通過打開不同顏色的激光器來(lái)實(shí)現(xiàn)的。
P1^=16:打開 5 V 電源,開綠激光器,關(guān)紅激光器;
P1=0xfd:打開 5 V 電源,開紅激光器,關(guān)綠激光器。
2.存貯圖形數(shù)據(jù):
unsigned char data x[]={0x3f,0x44,0x54,0x66,0x43,0x60};
unsigned char data y[]={0x3f,0x44,0x54,0x66,0x43,0x60}
其中,x[]和y[]分別代表圖形的X軸和Y軸的坐標(biāo),由上述的PLT文件中的數(shù)據(jù)轉(zhuǎn)化而來(lái)。
3.選擇第一DAC:當(dāng)DAC的片選端口為低電平時(shí),即選中。
P1^=8:即選中第一個(gè)芯片、不選第二個(gè)芯片;
P1=0xfb:即選中第二個(gè)芯片、不選第一個(gè)芯片。
4. x[]和y[]的值分別送到P0端口被DAC鎖存:
P0=x[i];
P0=y[i]
5. x[]和y[]的值同時(shí)由DAC轉(zhuǎn)換輸出。
6. 延時(shí):光學(xué)振鏡偏轉(zhuǎn)時(shí)需要一定的時(shí)間,所以在給振鏡端口送電平時(shí),太快則振鏡來(lái)不及響應(yīng),太慢則影響圖形顯示速度,因此電平之間的延時(shí)要取適當(dāng)。延時(shí)值的設(shè)置相對(duì)于所用設(shè)備而言,如DAC、運(yùn)算放大器等,因此延時(shí)須考慮所用設(shè)備的性能。
實(shí)驗(yàn)結(jié)果
控制系統(tǒng)經(jīng)過調(diào)試,單片機(jī)可以控制激光廣告儀輸出動(dòng)態(tài)圖像。在實(shí)驗(yàn)調(diào)試中,使用了綠色激光完成了動(dòng)態(tài)橢圓縮放和靜態(tài)矩形的演示。動(dòng)態(tài)顯示的實(shí)現(xiàn)原理是控制激光以適當(dāng)?shù)臅r(shí)間間隔依次顯示大中小三個(gè)不等的橢圓,調(diào)整顯示速度可造成動(dòng)態(tài)效果,實(shí)現(xiàn)橢圓的縮放。圖4所示顯示大中小三個(gè)不等橢圓和矩形照片組。
通過圖中照片的效果,給出如下幾點(diǎn)說明:
1、橢圓圓弧光滑連貫:說明圖像中數(shù)據(jù)都被顯示出來(lái),失真很小,在人眼觀察的允許范圍之內(nèi),從矩形直角和圓弧封口的顯示能看出圖像中數(shù)據(jù)已經(jīng)按要求顯示。如果橢圓的圓弧不光滑連貫或直角的角度不標(biāo)準(zhǔn),即存在失真,說明圖像中有坐標(biāo)點(diǎn)丟失。針對(duì)控制系統(tǒng)來(lái)說,就是由坐標(biāo)點(diǎn)代表的電壓值沒有全部送到光學(xué)振鏡,或者光學(xué)振鏡對(duì)端口電壓來(lái)不及反應(yīng),而造成圖像失真。在實(shí)驗(yàn)中所用光學(xué)振鏡是0.5V/機(jī)械偏轉(zhuǎn)角,如果往振鏡端口傳輸數(shù)據(jù)太快,即延時(shí)太短,光學(xué)振鏡來(lái)不及反應(yīng),而造成數(shù)據(jù)丟失。延時(shí)長(zhǎng)的話,會(huì)影響輸出圖像連貫性,不是整個(gè)圖像。因此必須要考慮選擇適當(dāng)?shù)难訒r(shí),在該控制系統(tǒng)中延時(shí)幾微秒即滿足振鏡時(shí)間要求。
2、顯示圖像的點(diǎn)數(shù):圖像復(fù)雜程度一般是由其點(diǎn)數(shù)決定,圖形越復(fù)雜,其描述的點(diǎn)數(shù)也必然越多,因此圖像越復(fù)雜就越難顯示。這里存在兩個(gè)原因,第一,存放數(shù)據(jù)的存貯器容量有限制,不能存貯很多的數(shù)據(jù),需要做相應(yīng)的擴(kuò)展。第二,振鏡偏有轉(zhuǎn)速和時(shí)間響應(yīng)限制。對(duì)人眼來(lái)說,要看到是一個(gè)完整的連續(xù)的圖像,當(dāng)數(shù)據(jù)很多時(shí)將花費(fèi)很多時(shí)間,使人觀測(cè)到的是不完整的圖像,而造成失真。第三單片機(jī)數(shù)據(jù)位是8位對(duì)應(yīng)256狀態(tài),當(dāng)數(shù)據(jù)很多時(shí)必須提高數(shù)據(jù)位。
3、圖像拉絲:即在顯示兩個(gè)或多個(gè)圖形時(shí),在圖形之間存在不必要的連線。由于沒有關(guān)閉激光器而使得本來(lái)沒有聯(lián)系的圖形聯(lián)系在一起,這不是圖形失真。在程序中及時(shí)關(guān)閉激光器,就能解決這個(gè)問題,這要求激光電源有比較好的時(shí)間響應(yīng)。
結(jié)語(yǔ)
該控制系統(tǒng)的良好實(shí)現(xiàn)情況表明,單片機(jī)系統(tǒng)能實(shí)時(shí)控制激光廣告儀。該控制系統(tǒng)比較突出的優(yōu)點(diǎn):第一、順利地解決以前計(jì)算機(jī)較難解決的圖像封口這一麻煩的問題,用矢量法描述圖形時(shí),8位數(shù)據(jù)精度已經(jīng)滿足解決圖像封口要求,排除了因?yàn)閿?shù)據(jù)精度不夠而引起圖像封口的可能。第二、有比較好響應(yīng)速度,能夠滿足目前光學(xué)振鏡的響應(yīng)時(shí)間,能按要求進(jìn)行實(shí)時(shí)控制。第三、由于C51編程簡(jiǎn)單,代碼率高,而對(duì)于機(jī)器的配置要求不高,降低了激光廣告儀的成本。對(duì)于激光在其他方面的應(yīng)用,也可采用單片機(jī)取代計(jì)算機(jī)實(shí)現(xiàn)控制?,F(xiàn)在所做的控制系統(tǒng)存貯容量是4K,已能描繪一些簡(jiǎn)單動(dòng)態(tài)圖像。當(dāng)采用高速的CPU和高容量Flash存貯器時(shí),就能顯示復(fù)雜的圖像,乃至可能做成激光電視和激光電影?!?/P>
參考文獻(xiàn)
1 戴梅萼.微型計(jì)算機(jī)原理及技術(shù)應(yīng)用.清華大學(xué)出版社.1999(1)
2 何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì).北京航空航天大學(xué)出版社.1996(3)
3 周葉,高榮芳.數(shù)據(jù)結(jié)構(gòu)與C++.西安交通出版社.1999(11)
4 宛延.C++語(yǔ)言和面向?qū)ο蟪绦蛟O(shè)計(jì).清華大學(xué)出版社.1998(10)
5 李華等.MCS-51系列單片機(jī)使用接口技術(shù).北京航空航天大學(xué)出版社.2001(5)
6 梁合慶.從80x86C語(yǔ)言到8051C語(yǔ)言.南京神脈技術(shù)公司出版.1997(6)
c++相關(guān)文章:c++教程
雙控開關(guān)相關(guān)文章:雙控開關(guān)原理
評(píng)論