【正文】
期)的功能;(6)精度誤差要求達到5%。167。 各功能模塊設想單片機模塊——負責的功能是正弦波、三角波、方波和矩形波四種波形的產(chǎn)生以及通過對鍵盤信號進行檢測分析完成調(diào)頻功能,并能發(fā)送信號控制顯示模塊顯示波形類型以及頻率值。鍵盤模塊——負責分配用于波形選擇、調(diào)頻的按鍵,是整個系統(tǒng)的主要輸入設備,為了實現(xiàn)調(diào)節(jié)功能,需要分配多個按鍵,為了不占用過多的I/O口,可以采用矩陣鍵盤陣列,合理分配按鍵,使操作更簡潔易懂,增加系統(tǒng)的人機交互功能。167。3.顯示部分:確定要顯示信息的位置所對應的地址,在程序中可以改變地址將信息顯示在不同的位置,不同的字母對應不同的編碼,顯示字母時將對應編碼發(fā)送到顯示模塊即可。 復位電路無論是在單片機剛開始接上電源時,還是運行過程中發(fā)生故障都需要復位。 時鐘電路單片機工作時,從取指令到譯碼再進行微操作,必須在時鐘信號控制下才能有序地進行,時鐘電路就是為單片機工作提供基本時鐘的。內(nèi)部振蕩方式所得的時鐘信號比較穩(wěn)定,實際電路中使用較多。LCD1602顯示的內(nèi)容為162,即可以顯示兩行,每行顯示16個字符,其內(nèi)部有160個57點陣的字符發(fā)生存儲器CGROM和8個可由用戶自定義的字符發(fā)生存儲器CGRAM。 LCD1602編碼方式1602液晶內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲的160個不同的點陣字符圖形包括阿拉伯數(shù)字、英文字母大小寫、常用符號以及日文片假名等,每個字符都有一個固定的代碼,比如字母“A”的代碼是41H。例如:要在第二行開頭顯示“s”這個字母,則程序應寫為:write_(0x80+0x40);write_data(0x73);其中0x40為第二行開頭的地址,只是在程序中需要加上0x80才能正確顯示,0x73對應字母“s”的代碼,當所要顯示的內(nèi)容與位置不同時,程序做出相應改變即可。 鍵盤檢測原理當檢查按鍵模塊時,若有按鍵按下,則與之相連的兩條線將會導通,從而將電平拉高或拉低使其一致。采用這種鍵盤設計思想,與常用的8端口控制的鍵盤陣列相比,在實現(xiàn)相同功能的前提下,能夠更有效地減少對單片機I/O口的占用。DAC0832以電流形式輸出,當輸出需要轉換為電壓時,可外接運算放大器實現(xiàn)。 DAC0832工作原理DAC0832的工作過程如下:(1)CPU執(zhí)行輸出指令,輸出8位DAC0832;(2)在CPU執(zhí)行輸出指令的同時,使ILE、三個控制信號端都有效,8位數(shù)據(jù)鎖存在8位輸入寄存器中;(3)當、兩個控制信號端都有效時,8位數(shù)據(jù)再次被鎖存到8位DAC寄存器,這時D/A轉換器開始工作,8位數(shù)據(jù)轉換成相對應的模擬電流,從I和I輸出。圖36 D/A轉換硬件連接圖 167。 調(diào)幅電路如圖37所示,有VO= R2VI/R1,即只需設置R1和R2的值就可以實現(xiàn)振幅的調(diào)控,本系統(tǒng)就是基于此原理來實現(xiàn)調(diào)幅。(3) 鍵盤掃描與處理程序。 初始化程序該部分對所要產(chǎn)生的波形類型、頻率以及顯示部分進行初始化,目的是在系統(tǒng)剛工作時,所產(chǎn)生的是200Hz的正弦波,并且在液晶上所顯示的是“sin”和“200Hz”。 write_(0x38)。 //顯示清0,數(shù)據(jù)指針清0}167。0x10)) {tmp |= (112)。}if(!(P2amp。0x20))。while(!(P2amp。key=16。0xF000)) { P2 |= 0xF0。0x20)) {tmp |= (11)。} if(!(P2amp。0x40))。while(!(P2amp。= 0xDF。while(!(P2amp。key=7。0x80)) {tmp |= (17)。} P2 |= 0xF0。0x10)) {tmp |= (14)。} if(!(P2amp。0x20))。while(!(P2amp。= 0x7F。while(!(P2amp。key=10。0x40)) {tmp |= (110)。} P2 |= 0xF0。通過對頻率值的百位、十位、個位分別進行設置,從而達到設置頻率、調(diào)節(jié)頻率的功能。j++) P0=tosin[j]。實現(xiàn)方波的程序如下: if(s1num==2) //方波 { P0=0xff。}3.三角波三角波即是數(shù)值從最小值遞增到一個數(shù)值后再遞減到最小值的過程。} else { P0=255a。由于I/O口為8位數(shù)據(jù),當數(shù)據(jù)超過11111111時發(fā)生溢出,回歸到0,因此不用另外歸零,實現(xiàn)程序如下: if(s1num==4) //鋸齒波 { P0=255b。 }167。 //i write_data(0x6e)。 //q write_data(0x75)。 //h write_data(0x72)。 //awrite_data(0x77)。 //第二行開頭 write_data(0x30+bai)。 write_data(0x30+ge)。 功能實現(xiàn) 利用Proteus仿真軟件進行仿真分析,連接好系統(tǒng)硬件仿真電路圖,然后進行下載仿真。 正弦波仿真通過鍵盤,對正弦波信號的頻率、幅度進行調(diào)節(jié),通過液晶顯示屏和示波器觀察調(diào)節(jié)后的信號,得到不同頻率、不同幅度的正弦波信號,如圖553所示:圖52 正弦波仿真一圖52中,正弦波頻率為5Hz,幅度為5V。 方波仿真同正弦波一樣,利用矩陣鍵盤對產(chǎn)生的方波進行設定頻率,如圖555所示:圖54所示的方波頻率為100Hz,;圖55所示的方波頻率為15Hz,;圖54 方波仿真一圖55 方波仿真二在仿真時,方波在垂直方向上會出現(xiàn)輕微抖動,由圖可以看出,所產(chǎn)生的方波比較規(guī)整,高低電平所占比例幾乎相等。167。不過調(diào)頻后需要經(jīng)過一段時間才能看到信號的變化;按下13號按鍵,就可以切換波形。29 結 論本設計實現(xiàn)了正弦波、方波、三角波、鋸齒波四種波形的產(chǎn)生、調(diào)頻、調(diào)幅、顯示波形類型與頻率值的功能,基本實現(xiàn)了設計所要求的功能,但是由于水平有限,部分指標并未達到要求,比如誤差范圍的要求,另外,所產(chǎn)生的波形信號在一些頻率段失真較明顯,比如三角波出現(xiàn)不是直線而是有比較明顯的弧線的情況,可能是由于系統(tǒng)程序設計的缺陷導致。尤其要真摯地感謝我的指導老師——曲曉麗老師,她為我指明了思路、點明了設計的重點和難點,使我在設計過程中更有目的性,讓我少走不少彎路。附 錄一、硬件連接圖二、系統(tǒng)原理圖三、PCB版圖四、LCD1602字符庫五、正弦波算法DAC0832是8位的D/A轉換器件,若其工作在單級緩沖方式下,則其中為輸入的數(shù)字量設則當輸入00H,輸出為0V電壓;當輸入80H,;當輸入FF數(shù)字量的時候,輸出為5V電壓。/256, (360176。比如π ~π的值可以和0~π值一一對應,而π~2π的值可以對0~π區(qū)間的值取反得到。 P0 mouth is a twoway bus, send the introduction of 8 low addresses and data/export in timesharing.Output grade, P3 of mouth,P1 of P1,connect with inside have load resistance of drawing, every one of they can drive 4 Model LS TTL load to output. As while inputting the mouth, any TTL or NMOS circuit can drive P1 of 8051 onechip puters as P3 mouth in a normal way. Because draw resistance on output grade of them have, can open a way collector too or drainsource resistance is it urge to open a way, do not need to have the resistance of drawing outerly. Mouths are all accurate twoway mouths too. When the conduct is input, must write the corresponding port latch with 1 first. As to 80C51 onechip puter, port can only offer milliampere of output electric currents, is it output mouth go when urging one ordinary basing of transistor to regard as, should contact a resistance among the port and transistor base, in order to the electricity while restraining the high level from exporting P1~P3 Being restored to the throne is the operation of initializing of an onechip puter. Its main function is to turn PC into 0000H initially, make the onechip puter begin to hold the conduct procedure from unit that the ones that enter the system are initialized normally, as because procedure operate it make mistakes or operate there aren’t mistake, in order to extricate oneself from a predicament, need to be pressed and restored to the throne the key restarting too. It is an input end which is restored to the throne the signal in 8051 China RST pin. Restore to the throne signal high level effective, should sustain 24 shake cycle (namely 2 machine cycles) the above its effective times. If 6 of frequency of utilization brilliant to shake, restore to the throne signal duration should exceed 4 delicate to finish restoring the throne and operating. Produce the logic picture of circuit which is restored to the throne the signal:Restore to the throne the circuit and include two parts outside in the chip entirely. Outside that circuit produce to restore to the throne signal (RST)hand over to Schmitt’s trigger, restore to the throne circuit sample to output, Schmitt’s trigger constantly in each S5P2,machine of cycle in having one more, then just got and restored to the throne and operated the necessary signal insidly. Restore to the throne resistance of circuit generally, electric capacity parameter suitable for 6 brilliant to shake, can is it restore to the throne signal high level duration greater than 2 machine cycles to guarantee. Being restored to the throne in the circuit is simple, its function is very important. Pieces of onechip puter system could normal running, should first check it can restore to the throne not succeeding. Checking and can pop one’s head and monitor the pin with the oscillograph tentatively, push and is restored to the throne the key, the wave form that o