




摘要:本系統(tǒng)以ADuC841為主芯片,通過AD采樣,將幅度為0~1V,頻率小于1KHZ的信號轉(zhuǎn)換成數(shù)字信號,存儲在單片機的內(nèi)存中,存儲深度為10k,并由ADuC的DAC模塊輸出到示波器上顯示,同時在LCD屏上顯示出穩(wěn)定的波形。該系統(tǒng)能夠?qū)崿F(xiàn)單次存儲,連續(xù)穩(wěn)定顯示和實時存儲,實時顯示的功能。
關(guān)鍵詞:ADuC841;ADC; DAC; LCD;動態(tài)波形
一、 系統(tǒng)方案論證
1. A/D采樣
ADuC841片上ADC是快速(420kS/s),8通道12位,單電源供電的ADC模塊。該模塊由多路開關(guān),采樣/保持電路,片上參考電源,校準電路和ADC本身等組成。由于它具有精度高,性能強等優(yōu)點,故選擇由單片機上的ADC模塊直接采樣。
2. D/A轉(zhuǎn)換
ADuC841片上集成有兩個通道的12位電壓輸出DAC,每個通道的DAC均有軌到軌輸出的緩沖放大器,放大器能夠驅(qū)動10千歐/100pF的負載,輸出范圍可以設(shè)置在0~Vref或0~AVdd。經(jīng)單片機ADC采樣后的數(shù)據(jù)存儲到內(nèi)存中,直接就可以用DAC轉(zhuǎn)換出來,故選擇單片機上的DAC模塊直接轉(zhuǎn)換。
3. LCD液晶顯示屏
實驗板的液晶模塊由STC單片機控制,STC與ADuC841采用IIC通信,由于STC代碼有待改進,繪圖功能不理想,本文采用ADuC841直接驅(qū)動LCD,鍵盤則仍由STC驅(qū)動。
二、理論分析及相關(guān)計算
1. A/D采樣
這里我們主要是對ADC的專用寄存器進行設(shè)置,首先ADCCON1=0xBC(10111100),使ADC上電處于工作狀態(tài),并選擇內(nèi)部參考電源,為了保證ADC的正常工作,ADC的工作時鐘頻率必須等于或低于8.38MHZ,并且采樣時間不短于三個ADC時鐘周期。在這里我們選擇PLL分頻數(shù)為2,模數(shù)轉(zhuǎn)換的時鐘數(shù)為4,滿足實驗要求;接著ADCCON2主要是選擇轉(zhuǎn)換的通道,這里我們選擇3通道。
2.D/A轉(zhuǎn)換
ADuC841的DA模塊使用起來很簡單,這里我們選擇DAC1,它的輸出范圍為0V~Vref,所以DACCON=0x16。
3. LCD液晶顯示屏
液晶模塊采用的驅(qū)動芯片是ST7920,該芯片適合字符顯示,但是在圖形應(yīng)用中有如下不足:
1) CLEAR指令只能清除DDRAM,不能清除存儲圖形數(shù)據(jù)的GDRAM,GDRAM只能通過逐字節(jié)寫0方式清除,故當液晶屏顯示完一幀圖像,需要更新時,刷新速度會很慢。
2) 在串行模式下,ST7920只能寫入數(shù)據(jù),不能讀出數(shù)據(jù),因此給繪圖帶來諸多不便,比如畫點時寫入的數(shù)據(jù)覆蓋先前的數(shù)據(jù),導致單行不能顯示連續(xù)的點。
解決方案是將GDRAM映射到單片機可讀寫的存儲區(qū)域,即開辟顯示緩存,可供選擇的區(qū)域有ADuC841的internal XRAM和外部RAM HM62256,考慮到讀寫速度,選擇前者。同時在LCD實時顯示時,需將采樣數(shù)據(jù)作緩沖,故開辟128*2字節(jié)的緩沖區(qū),存儲區(qū)分配如圖(1)所示
本實驗LCD顯示動態(tài)波形的方式有兩種:
1) 一點一點地顯示,同時對顯存作相應(yīng)改動,滿一屏后GDRAM清零,然后再畫點。
2) 在顯存中預先設(shè)置一幀圖像信息,然后寫入GDRAM,顯示第二幀時,重復前述步驟。
由于ST7920中GDRAM的清零只能通過逐字節(jié)寫0實現(xiàn),而每顯示一點又要對GDRAM做相應(yīng)操作,并且寫GDRAM的速度遠小于讀寫internal XRAM的速度,因此同樣顯示一屏圖像,方式1的速度不如方式2,經(jīng)實際驗證確實如此。
顯示方式確定后就是要提高LCD刷新一幀圖像的速度。優(yōu)化的關(guān)鍵是提高對ST7920寫數(shù)據(jù)的速度,查閱ST7920的數(shù)據(jù)手冊知串行時鐘高電平與低電平最短維持時間均為200ns,故應(yīng)讓ADuC841產(chǎn)生串行時鐘的周期盡量接近400ns,時間過長將影響LCD的響應(yīng)速度,解決方案是采用較為精確的內(nèi)嵌匯編的延時函數(shù)。
三、 系統(tǒng)框圖及流程圖
1.電路框圖
2.軟件流程圖
四、系統(tǒng)測試
1.輸入信號
輸出信號
五、實驗結(jié)論
通過測試之后,發(fā)現(xiàn)本系統(tǒng)能很好的完成單次存儲,連續(xù)穩(wěn)定顯示和實時存儲,實時顯示的功能,達到了設(shè)計要求。
參考文獻:
[1]李剛,林凌.易學易用高性能SoC單片機ADuC841 [M].西安:西安交通大學出版社,2006.
[2]李建忠.單片機原理及應(yīng)用 [M].西安:西安電子科技大學,2002.
[3]龔運新.單片機C語言開發(fā)技術(shù)[M].北京:清華大學出版社,2006.
(作者單位:華中師范大學物理學