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