摘要:精確的頻率控制是現代化工業(yè)生產與高精度測試的必備手段?;赼d9850可以發(fā)生優(yōu)于1hz頻率精確度的信號,這對于頻率測試來說至關重要。本文介紹的這種頻率調節(jié)器由atmel公司的avr單片機atmega16l作為控制核心,采用4×4鍵盤作為頻率值輸入設備。avr單片機掃描鍵盤并且讀入用戶設定的頻率值。隨后,avr單片機計算出ad9850的控制字,并且對ad9850發(fā)出指令。本文介紹的頻率控制器可以通過“+1hz”鍵和“–1hz”鍵微調頻率值。本文對頻率控制器擴展了液晶顯示模塊,因此當前頻率值可以被實時顯示。它可以生成方波和正弦波。設計中使用了看門狗定時器防止程序進入死循環(huán)而不能正常工作。
關鍵詞:avr,單片機,頻率,控制 1引言
在現代化工業(yè)生產與高精度測試中,我們需要相當精確的頻率來幫助判斷設備性能指標。而且我們希望能夠微調該頻率。采用壓控振蕩器得到的頻率不夠精確,微調頻率步驟煩瑣,耗時漫長,因此有些測試項目限制了壓控振蕩器的使用。
mega系列單片機是atmel公司于2002年起陸續(xù)推出的。這款avr增強型單片機具有速度快,抗干擾能力強,價格低廉等諸多優(yōu)點。為了加快avr單片機的軟件編制,atmel以及第三方提供的開發(fā)工具多種多樣,程序開發(fā)方便有效。該單片機內部flash結構功能靈活,加鎖后很難解密,可以最大限度地保護知識產權。avr單片機可以廣泛應用于通信、野外測試、汽車電子、醫(yī)療器械等領域,并且適用于各種低電壓、低功耗的場合。
本文提出一種方法能夠基于avr單片機,采用ad9850提供精確到1hz的頻率信號,不但可以發(fā)生正弦波,也可以發(fā)生方波,從而為要求頻率精度高的企業(yè)解決了難題。它以atmel公司的avr單片機atmega16l作為核心,能夠方便、準確地控制輸出頻率。由于avr單片機實現了在線可編程,所以大大簡化了設計步驟,加快了設計進程,同時不會燒毀、燒費芯片,節(jié)約了成本。
用戶通過4×4鍵盤設定頻率值,avr單片機使用i/o端口,掃描讀入頻率值。隨后avr單片機控制ad9850調節(jié)到用戶要求的頻率。ad9850的輸出可以接電壓比較器整形為方波,也可以經過低通濾波器限制帶寬,輸出正弦波形。avr單片機同時控制液晶顯示模塊,使之實時顯示當前頻率。
2控制核心與頻率發(fā)生技術
2.1控制核心
本設計采用了atmel公司的avr單片機atmega16l作為控制核心。avr單片機的單周期指令能夠保證高的執(zhí)行效率和低成本,是精簡指令集cpu中的高性能器件。avr單片機可以提供高達16mips的執(zhí)行時間,具有128k字節(jié)的可編程flash存儲器,同時具備4096字節(jié)的靜態(tài)ram。avr單片機自帶看門狗定時器,在強烈的電磁干擾條件下可以防止程序跑飛。本設計中采用的atmega16l還具有以下特點:
·內部包含有硬件乘法器,加快乘法運算速度;i/o端口引腳數多達32根;
·支持在線可編程功能,不需要頻繁從電路板插拔芯片;帶有可編程的支持同步傳輸的uart端口;
·支持三線傳輸spi端口;具有方便的i2c總線端口,直接與philips芯片接駁;
·支持jtag邊界掃描電路;具有bod低電壓檢測功能;
·內部有8路10位的a/d變換器;具有4個pmw,可以協同或單獨工作;
· 內部帶有實時時鐘電路;工作頻率最高可達16mhz。
2.2ad9850頻率發(fā)生技術
ad9850是ad公司推出的低功耗直接數字頻率合成器芯片,可以產生從直流到62.5mhz的寬頻率信號,從投入市場到今天已經應用在雷達系統(tǒng)、低功耗頻率源中。它良好的頻率合成功能適合于應用在高精度測試中。本設計采用了ad9850作為波形發(fā)生器,具有體積小,功耗低的優(yōu)點。
在控制流程中,avr單片機為ad9850計算了頻率控制字,并且將頻率控制字寫入其中。聯合小鍵盤上的“+1hz”鍵和“-1hz”鍵,本設計使得頻率可以精確到步長為1hz的調節(jié)。它可以產生方波和正弦波。用戶要求產生正弦波時,我們設計了低通濾波器用來濾除信號的高頻分量。該低通濾波器還可以使用五階橢圓濾波器實現。圖2示出了本系統(tǒng)的ad9850電路設計圖。pc2——pc5可以同時作為i2c總線端口。
3輸入設備與輸出設備
3.1鍵盤輸入設備與相應軟件
本設計采用了4×4鍵盤作為頻率輸入設備。由于按鍵個數少,只有16個,需要表示從1hz—10mhz的廣泛頻率,故在軟件設計中采用了avr單片機掃描方式。將端口a的8根i/o引腳全部作為掃描鍵盤使用。鍵盤定義除了0——9共10個數字之外,還定義了“退格”鍵、“全刪”鍵、“輸入”鍵、“+1hz”鍵和“-1hz”鍵,這樣就可以極大地方便用戶隨時修改頻率和微調頻率。讀入用戶輸入的頻率值時,采用了延時防抖抗干擾的軟件程序。掃描變量的初始值設置為0xfe,以低電平0依次變化實現掃描。本單片機鍵盤掃描的c代碼如下所示:
sccode=0xfe;/*everyscaninitiativevalue,11111110*/
while(sccode!=0xef)/