耿振華
早期制作的電視信號發(fā)生器基本上是由分頻器和門電路構(gòu)成,所用元器件較多、電路復(fù)雜,自制起來相當麻煩,要想增加顯示圖像的種類或改變信號的時序就更困難了。高速單片機的出現(xiàn)給信號發(fā)生器的設(shè)計制作帶來了極大的方便,不但能根據(jù)需要靈活地設(shè)計軟件,而且芯片的外圍電路也簡單得多,體積可以做得非常小巧。本信號發(fā)生器使用AVR系列的AT90S2313-10芯片,價格低廉,大部分指令的執(zhí)行時間僅為0.1μs,可以產(chǎn)生棋盤格、橫條、豎條、方格四種圖像和一路音頻信號。
硬件電路如附圖所示,輸出信號使用了PB口的PB0、PB4、PB7三個端子,圖像輸出端置1時為白色電平,清0時為黑色電平。各端口的輸出電平是相等的,為了滿足同步電平低于消隱電平的要求,在視頻輸出與復(fù)合同步之間串接了一個開關(guān)二極管,使同步電平總是低于消隱電平0.6V,同時二極管又具有較小的動態(tài)電阻,比串聯(lián)電阻具有更好的頻率響應(yīng),經(jīng)對比度電位器適當衰減后基本接近標準的電視信號。圖像類型的轉(zhuǎn)換是由復(fù)位鍵完成的,接通電源時每按動一次復(fù)位鍵轉(zhuǎn)換一種圖像,四種圖像循環(huán)顯示。
因為圖像是相對靜止的幾何圖形,為了簡化軟件,程序沒有采用奇偶隔行掃描,每幀圖像由312行組成,源程序見本刊網(wǎng)站(www.eleworld.com),程序中用Z寄存器作為行掃描計數(shù)器。從第1行至26 行為場消隱,其中第2、3行為場同步,剩余的286行分為13段,每段22行。場消隱結(jié)束時設(shè)定場圖像初始值,然后場圖像值逐段取反,直至掃描正程結(jié)束,產(chǎn)生13條寬度相同黑白相間的橫條圖像,周而復(fù)始。本程序設(shè)計的垂直、水平圖像的條數(shù)均為奇數(shù),這樣掃描正程開始和結(jié)束前的圖像相同,設(shè)置為白色,調(diào)整幅度時便于與消隱電平區(qū)分。
主程序的順序就是行掃描周期的時序,場圖像是由若干行組成的。行場掃描的圖像初始值以及場消隱、場同步的起止時間判斷與執(zhí)行都是在行同步和行消隱其間完成的。為了產(chǎn)生精確的行時序信號,滿足電視制式的要求,程序結(jié)構(gòu)以時間為編程標準,不可能完全按照結(jié)構(gòu)化程序設(shè)計,理解起來稍難一些。除非完全熟悉程序結(jié)構(gòu),否則改動任何一條指令都可能會改變行掃描周期。本程序設(shè)定的行消隱寬度為12μs,行同步寬度為4.7μs,行周期為64μs。在行消隱結(jié)束時設(shè)置行圖像初始值,每隔3μs行圖像的值取反,產(chǎn)生17條寬度相同黑白相間的豎條圖像。
棋盤格是行、場圖像異或運算產(chǎn)生的。為了使圖像轉(zhuǎn)換簡單,在異或運算中令場圖像的值始終為0輸出行圖像(豎格)。同樣當行圖像的值始終為0時,則輸出值為場圖像(橫格)。方格是由行、場圖像執(zhí)行或運算產(chǎn)生的。每按動一次復(fù)位鍵圖像類型寄存器加1,再屏蔽其高6位,這樣寄存器的值只能在0至3范圍內(nèi)變化,主程序則根據(jù)圖像類型寄存器的值判斷執(zhí)行相應(yīng)的子程序改變圖像類型。圖像長寬之比為17/13,基本與屏幕一致。
音頻信號是行頻16分頻得到的,用寄存器作為音頻計數(shù)器,音頻計數(shù)器逐行加1,屏蔽高4位,當寄存器值為0或8時分別向音頻輸出端寫0或1,所以音頻頻率為976Hz。
在本刊網(wǎng)站提供的源程序是在AVR Studio 3.56環(huán)境下編寫、編譯、調(diào)試,并附有源程序和編譯后的hex文件,供不同要求的讀者參考。