版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、中北大學(xué)信息商務(wù)學(xué)院課 程 設(shè) 計(jì) 說 明 書學(xué)生: 王鈺春 學(xué)號: 10050644X08 學(xué)生: 藏苑琪 學(xué) 號: 10050644X16 學(xué) 院: 中北大學(xué)信息商務(wù)學(xué)院 專 業(yè):電子信息工程 題 目:專業(yè)綜合實(shí)踐之單片機(jī)部分: 基于MAX038的單片機(jī)控制的信號發(fā)生器的設(shè)計(jì)指導(dǎo)教師: 王浩全 職稱: 教授 2014 年 1 月 10 日18 / 26中北大學(xué)信息商務(wù)學(xué)院課程設(shè)計(jì)任務(wù)書2013/2014 學(xué)年第 1 學(xué)期學(xué) 院: 中北大學(xué)信息商務(wù)學(xué)院 專 業(yè): 電子信息工程 學(xué) 生 姓 名: 王鈺春 學(xué) 號: 10050644X08 學(xué) 生 姓 名: 藏苑琪 學(xué) 號: 10050644X1
2、6 課程設(shè)計(jì)題目: 基于MAX038的單片機(jī)控制的信號發(fā) 生器的設(shè)計(jì)起 迄 日 期:2013年12 月30 日2014年1月 10 日 課程設(shè)計(jì)地點(diǎn): 5院樓 201,510 實(shí)驗(yàn)室 指 導(dǎo) 教 師: 王浩全 下達(dá)任務(wù)書日期:2013 年 12 月30日 課 程 設(shè) 計(jì) 任 務(wù) 書1設(shè)計(jì)目的:鞏固掌握單片機(jī)工作原理與應(yīng)用,提高編程能力。本課程設(shè)計(jì)主要針對電子信息工程專業(yè)課程體系設(shè)置的要求,安排的一種綜合性的課程設(shè)計(jì)。一方面為了培養(yǎng)學(xué)生在查閱資料、復(fù)習(xí)、學(xué)習(xí)知識的基礎(chǔ)上,進(jìn)行包括機(jī)、電系統(tǒng)的設(shè)計(jì)、計(jì)算、仿真、編程、調(diào)試等多個環(huán)節(jié)的綜合能力培養(yǎng);另一方面,也是對學(xué)生進(jìn)行畢業(yè)設(shè)計(jì)前的一次大型練兵,進(jìn)
3、一步培養(yǎng)學(xué)生獨(dú)立地分析、解決實(shí)際問題的實(shí)際能力。另外還培養(yǎng)學(xué)生用專業(yè)的、簡潔的文字,清晰的圖表來表達(dá)自己設(shè)計(jì)思想的能力。2設(shè)計(jì)容和要求(包括原始數(shù)據(jù)、技術(shù)參數(shù)、條件、設(shè)計(jì)要求等):掌握單片機(jī)89C51的工作原理掌握用匯編、C或其他語言實(shí)現(xiàn)編程掌握MAX038信號發(fā)生器芯片3設(shè)計(jì)工作任務(wù)與工作量的要求包括課程設(shè)計(jì)計(jì)算說明書(論文)、圖紙、實(shí)物樣品等:(1)提供核心器件的工作原理與應(yīng)用介紹;(2)提供用Pro tel設(shè)計(jì)的電路原理圖,印刷板電路圖;(3)提供用Multisim、MaxPlus、Proteus、Medwin、KeilC等軟件對電路的仿真、編程與分析;(4)提供符合規(guī)定要求的課程設(shè)計(jì)說
4、明書;(5)提供參考文獻(xiàn)不少于15篇,且必須是相關(guān)的參考文獻(xiàn);課 程 設(shè) 計(jì) 任 務(wù) 書4主要參考文獻(xiàn):l 要求按國標(biāo)GB771487文后參考文獻(xiàn)著錄規(guī)則書寫,例:1傅承義,運(yùn)泰,祁貴中.地球物理學(xué)基礎(chǔ).:科學(xué),1985(15篇以上)5設(shè)計(jì)成果形式與要求:(1)電路原理圖、程序、仿真結(jié)果、PCB圖;(2)課程設(shè)計(jì)說明書;6工作計(jì)劃與進(jìn)度:2013年12月 30 日 2014年1 月 1 日:查閱資料;2014年:1 月 2 日 1 月 7 日:方案設(shè)計(jì)、實(shí)驗(yàn)驗(yàn)證;1 月8日 1 月 9 日:完成課程設(shè)計(jì)說明書;1 月 10 日:答辯。系主任審查意見:簽字:年月日目 錄1 緒論12 設(shè)計(jì)目的13
5、 設(shè)計(jì)容和要求24 設(shè)計(jì)工作任務(wù)與工作量要求25 方案選擇與論證2 5.1設(shè)計(jì)分析2 5.2單片機(jī)選擇2 5.3系統(tǒng)電路設(shè)計(jì)方案36 設(shè)計(jì)條件與主要參數(shù)計(jì)算4 6.1 頻段調(diào)節(jié)控制4 6.2頻率、占空比調(diào)節(jié)57 系統(tǒng)設(shè)計(jì)68 程序設(shè)計(jì)99 系統(tǒng)軟件仿真結(jié)果1710 設(shè)計(jì)評述1811 參考文獻(xiàn)1812 附錄191 緒論 隨著電子測量與其他部門對各類信號發(fā)生器的廣泛需求與電子技術(shù)的迅速發(fā)展,促使信號發(fā)生器種類增多,性能提高。尤其隨著70年代微處理器的出現(xiàn),更促使信號發(fā)生器向著自動化、智能化方向發(fā)展?,F(xiàn)在,許多信號發(fā)生器帶有微處理器,因而具備了自校、自檢、自動故障診斷和自動波形形成和修正等
6、功能,可以和控制計(jì)算機(jī)與其他測量儀器一起方便的構(gòu)成自動測試系統(tǒng)。當(dāng)前信號發(fā)生器總的趨勢是向著寬頻率覆蓋、低功耗、高頻率精度、多功能、自動化和智能化方向發(fā)展在科學(xué)研究、工程教育與生產(chǎn)實(shí)踐中,如工業(yè)過程控制、教學(xué)實(shí)驗(yàn)、機(jī)械振動試驗(yàn)、動態(tài)分析、材料試驗(yàn)、生物醫(yī)學(xué)等領(lǐng)域,常常需要用到低頻信號發(fā)生器。而在我們?nèi)粘I钪校耘c一些科學(xué)研究中,鋸齒波和正弦波信號是常用的基本測試信號。信號發(fā)生器作為一種通用的電子儀器,在生產(chǎn)、科研、測控、通訊等領(lǐng)域都得到了廣泛的應(yīng)用。 但市面上能看到的儀器在頻率精度、帶寬、波形種類與程控方面都已不能滿足許多方面實(shí)際應(yīng)用的需求。加之各類功能的半導(dǎo)體集成芯片的快速生產(chǎn),
7、都使我們研制一種低功耗、寬頻帶,能產(chǎn)生多種波形并具有程控等低頻的信號發(fā)生器成為可能。 本系統(tǒng)所設(shè)計(jì)多功能信號發(fā)生器是一種能夠產(chǎn)生正弦波、三角波的低頻信號發(fā)生器,在單片機(jī)的控制下由MAX038信號發(fā)生芯片產(chǎn)生頻率占空比可調(diào)的正弦波、三角波,對于所產(chǎn)生的兩種波形信號,通過功率放大電路可對其幅度、穩(wěn)定性進(jìn)行調(diào)節(jié),對功率放大電路輸出信號進(jìn)行整形后可以利用單片機(jī)的中斷口與定時計(jì)數(shù)器分別測出低頻信號測量周期、高頻信號的頻率以與他們的高電平周期,從而轉(zhuǎn)換為系統(tǒng)輸出的頻率和占空比,后經(jīng)過顯示電路顯示出頻率和占空比。2 設(shè)計(jì)目的 鞏固掌握單片機(jī)工作原理與應(yīng)用,提高編程能力。本課程設(shè)計(jì)主要針對電子信息工程專業(yè)課程
8、體系設(shè)置的要求,安排的一種綜合性的課程設(shè)計(jì)。一方面為了培養(yǎng)學(xué)生在查閱資料、復(fù)習(xí)、學(xué)習(xí)知識的基礎(chǔ)上,進(jìn)行包括機(jī)、電系統(tǒng)的設(shè)計(jì)、計(jì)算、仿真、編程、調(diào)試等多個環(huán)節(jié)的綜合能力培養(yǎng);另一方面,也是對學(xué)生進(jìn)行畢業(yè)設(shè)計(jì)前的一次大型練兵,進(jìn)一步培養(yǎng)學(xué)生獨(dú)立地分析、解決實(shí)際問題的實(shí)際能力。另外還培養(yǎng)學(xué)生用專業(yè)的、簡潔的文字,清晰的圖表來表達(dá)自己設(shè)計(jì)思想的能力。3 設(shè)計(jì)容和要求掌握單片機(jī)89C51的工作原理掌握用匯編、C或其他語言實(shí)現(xiàn)編程掌握MAX038信號發(fā)生器芯片4 設(shè)計(jì)工作任務(wù)與工作量的要求(1)提供核心器件的工作原理與應(yīng)用介紹;(2)提供用Protel設(shè)計(jì)的電路原理圖,印刷板電路圖;(3)提供用Multi
9、sim、MaxPlus、Proteus、Medwin、KeilC等軟件對電路的仿真、編程與分析;(4)提供符合規(guī)定要求的課程設(shè)計(jì)說明書;(5)提供參考文獻(xiàn)不少于15篇,且必須是相關(guān)的參考文獻(xiàn);5 方案選擇與論證5.1 設(shè)計(jì)分析課程設(shè)計(jì)需要各個波形的基本輸出,如三角波、正弦波。5.2 單片機(jī)選擇AT89C52是一個低電壓,高性能CMOS 8位單片機(jī),片含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片置通用8位中央處理器和F
10、lash存儲單元,AT89C52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用。此單片機(jī)的體積小、低功耗、控制能力強(qiáng)、擴(kuò)展靈活、微型化使用方便。本設(shè)計(jì)結(jié)合由馬克西姆公司MAX038而設(shè)計(jì)的一種簡易信號發(fā)生器,通過MAX038來產(chǎn)生一系列有規(guī)律的幅度和頻率可調(diào)的方波、三角波和正弦波?;贛AX038的多波形函數(shù)信號發(fā)生器具有信號輸出頻率高、波形穩(wěn)定、失真小、可控性強(qiáng)等特點(diǎn)。本號發(fā)生器包含穩(wěn)壓電源模塊、單片機(jī)(AT89C52)控制模塊、鍵盤模塊、LED顯示模塊、信號發(fā)生模塊(MAX038)、功率放大(AD811)與緩沖器(BUF634)模塊、分頻模塊,該設(shè)計(jì)結(jié)構(gòu)簡單,雖然性能指標(biāo)趕不上標(biāo)準(zhǔn)信號發(fā)生器,但能滿足一
11、般的實(shí)驗(yàn)要求。其成本低、體積小、便于攜帶等特點(diǎn),亦可作為電子產(chǎn)品維修人員的隨身設(shè)備之一。5.3 系統(tǒng)電路設(shè)計(jì)方案函數(shù)信號發(fā)生器的實(shí)現(xiàn)方法通常有以下幾種:方案一:用分立元件組成的函數(shù)發(fā)生器:通常是單困數(shù)發(fā)生器且頻率不高,其工作不很穩(wěn)定,不易調(diào)試。方案二:可以由晶體管、運(yùn)放1C等通用器件制作,更多的則是用專門的函數(shù)信號發(fā)生器1C產(chǎn)生。早期的函數(shù)信號發(fā)生器1C,如8038等,它們的功能較少,精度不高,頻率上限只有300KHZ,無法產(chǎn)生更高頻率的信號,調(diào)節(jié)方式也不夠靈活,頻率和占空比不能獨(dú)立調(diào)節(jié),二者互相影響。方案三:利用單片集成芯片的函數(shù)發(fā)生器:能產(chǎn)生多種波形,達(dá)到較高的頻率,且易于調(diào)試。鑒于此,美
12、國馬克西姆公司開發(fā)了新一代函數(shù)信號度生器ICMAX038,它克服了方案二中芯片的缺點(diǎn),可以達(dá)到更高的技術(shù)指標(biāo),是上述芯片望塵莫與的。MAX038頻率高、精度好,因此它被稱為高頻精密函數(shù)信號度生器1C。在鎖相環(huán)、壓控振德器、頻率合成器、脈寬調(diào)制器等電路的設(shè)計(jì)上,MX038都是優(yōu)選的器件。方案四:利用專用直接數(shù)字合成DDSS片的函數(shù)發(fā)生器:能產(chǎn)生任意波形并達(dá)到很高的頻率。但成本較高。通過對以上四種方案的比較,我們可以看出幾種方案的優(yōu)缺點(diǎn):方案一:結(jié)構(gòu)很簡單,制作容易,但是輸出信號有頻率線性度差、頻率穩(wěn)定度低、頻率分辨率低、頻率轉(zhuǎn)換時間比較長,相位噪聲大以與人機(jī)界面不友好等缺點(diǎn)。方案二:電路結(jié)椅簡單
13、,但在頻率分辨率、頻率變換時間、相位噪聲等方面都不如方案三。方案三:結(jié)抱相對復(fù)雜,但具有輸出頻率穩(wěn)定性高,頻率輸出線形度好、頻率分辨度高、波形正確,頻率變換時間小,相位噪聲小、人機(jī)界面好、易于控制等優(yōu)點(diǎn)、性能優(yōu)良。方案四:能產(chǎn)生任意波形且達(dá)到很高的頻率,但是成本較高?;谖覀兊倪x擇標(biāo)準(zhǔn)在滿足工作要求的前提下,性價比高的發(fā)生器是我們的首選。從上面的比較可以看出,方案一和方案二都有各自較大的缺點(diǎn),難以達(dá)到理想的設(shè)計(jì)要求。而方案四雖然能達(dá)到很好的要求,但是從價格方面考慮我們選擇方案三比較好。6 設(shè)計(jì)條件與主要參數(shù)計(jì)算6.1 頻段調(diào)節(jié)控制固定一個CF值,當(dāng)IIN 端的電流從2uA到750uA
14、的變化時,對應(yīng)產(chǎn)生一個頻段的頻率圍經(jīng)實(shí)驗(yàn)調(diào)整,我們選擇了一系列的CF 如圖1所示,并確定了各CF所對應(yīng)的頻段和頻率圍f1-f2由于系統(tǒng)通過DAC 控制IIN 端電流和FADJ 端電壓,將各頻段的頻率圍劃分為65536 級間隔,因此各頻段的輸出誤差為。圖1 輸出頻率與IIN電流與振蕩電容CF的關(guān)系此外,由于相鄰頻段之間存在著頻率重疊現(xiàn)象,并且考慮到各個頻段對應(yīng)的誤差大小有所差異,因此設(shè)定各頻段的實(shí)際起止頻率圍:f3f4,以便獲得最小的誤差。在5腳COCS和6腳GND接上電容CF以后,10腳IIN是頻率控制的電流輸入端,利用恒定電流IIN向電容CF
15、充電和放電,便可形成振。蕩IIN是受8腳FADJ和7腳DADJ端電壓的控制,振蕩頻率由下式確定。,因?yàn)槲覀円蟮念l率圍在02Hz10MHz,分四個頻段來滿足要求,在每個頻段上連續(xù)可調(diào),由芯片部參數(shù)可知道,當(dāng)IIN=2A5A時,CF的容量圍可以在10pF10F時,芯片有較好的性能。因此可知:當(dāng)IIN=2A時,;當(dāng)IIN=750A時,。為了使數(shù)字控制能夠使IIN=2A750A實(shí)現(xiàn),我們在D/A轉(zhuǎn)換模塊使用圖25所示的電阻連接方法。當(dāng)數(shù)字量為00H時,VOUTb輸出為0V時MAX038的10腳IIN有2A的電流輸入。當(dāng)數(shù)字量為FFH時,VOUTb輸出為基準(zhǔn)電壓250V。MAX038的10腳IIN有7
16、50A的電流輸入。6.2 頻率、占空比調(diào)節(jié)MAX038的占空比的調(diào)整有兩種方式,一種時利用部基準(zhǔn)電壓源調(diào)整,另一種是利用外加電源調(diào)整,為使電路簡單,采用第一種調(diào)整方式。在MAX038 的DADJ端應(yīng)用一個23V23V 的電壓控制信號, MAX038 的DADJ引腳上的電壓可控制波形的占空比DC(定義為輸出波形為正時所占時間的百分?jǐn)?shù)),并且能夠改善正弦波的波形,可進(jìn)行脈沖寬度調(diào)制和產(chǎn)生鋸齒波。當(dāng)VDADJ接地(即VDADJ=0)時,其占空比為50%,占空比的調(diào)整可采用MAX505的一片DAC,輸出±23V 圍的電壓,占空比可在10%90
17、%圍改變,約每伏改變15%,當(dāng)電壓超過±23V 將使頻率偏移或引起不穩(wěn)定為產(chǎn)生一定占空比而加在DADJ上的電壓為:,對雙極性輸出的D/A 轉(zhuǎn)換器,基準(zhǔn)電源為23V時,MAX505接受數(shù)據(jù)與占空比的關(guān)系式為:。其中:VDADJ為DADJ 引腳上的電壓,DC為占空比。這樣可完成激勵信號的占空比設(shè)置。調(diào)整CF的充放電時間,在10%90%的圍調(diào)整振蕩器輸出的三角波,最終產(chǎn)生失真的正弦波,鋸齒波和脈沖波這三種波形同時送入混合器,由A0,A1選擇輸出。 所以為簡單起見,關(guān)于占空比調(diào)節(jié)和頻率調(diào)整,可采用外部電位器調(diào)整控制。調(diào)節(jié)頻率調(diào)整電路的電位器,改變MAX
18、038輸入端IIN的電流大小,從而改變頻率值;調(diào)節(jié)占空比調(diào)節(jié)電路中的電位器,改變MAX038輸入端DADJ的電壓大小,從而改變占空比。信號發(fā)生芯片MAX038,其波形選擇引腳A0和A1與單片機(jī)的P2. 0和P2. 1 引腳相連,在單片機(jī)的控制K輸出正弦波、和三角波2種不同的波形,波形的頻率和幅值可以通過外部的可變電阻進(jìn)行調(diào)節(jié)。OUT為MX038的信號波形輸出,送至放大電路。MAX038在正弦波輸出時,輸出的信號頻率為。7 系統(tǒng)設(shè)計(jì)采用單片機(jī)AT89C52對主信號發(fā)生芯片進(jìn)行智能控制,對MAX038產(chǎn)生的波形信號進(jìn)行頻率高低,占空比大小,幅度圍的控制,以與產(chǎn)生波形的選擇控制。MX 038主振蕩器
19、為三角波振蕩器,振蕩頻率由調(diào)頻輸入Vfod.參考電流Ii與外接振採電容器COSC的容量共同決定?;菊袷幤魇且粋€交變的恒流源向電容器充電和放電的弛振蕩器.通過改變COSC引腳的外接電容和流入IN引腳的充放電電流的大小來控制輸出信號頻率.頻率11為0. r20MHz,流入IN的電流加到FADJ和DADJ引腳的電壓來調(diào)制.通過此兩引腳可用外接電壓信號調(diào)整頻率。MAX038 部有一個正弦波形成電路把振蕩器的三角波轉(zhuǎn)變成一個等幅的低失真正弦波。MAX038的性能特點(diǎn):能精密地產(chǎn)生三角波、正弦波信號。頻率圍從0.1Hz20MHz,最高可達(dá)40MHz,各種波形的輸出幅度均為2V (P-P)。空比調(diào)節(jié)圍寬,
20、占空比和頻率均可單獨(dú)調(diào)節(jié),互不影響,占空比最大調(diào)節(jié)圍10%90%。波形失真小,正波失真度小于0.75%,占空比調(diào)節(jié)時非線性度低于2%。采用土5V雙電源供電,允許有5%變化圍,電源電流為80mA,典型功耗400MW,工作溫度圍為070C。設(shè)2.5V電壓基準(zhǔn),利用控制端FADJ、DADJ實(shí)現(xiàn)頻率微調(diào)和占空比調(diào)。工作原理:MAX038部還有正弦整形電路、比較器、復(fù)用器以與鑒相器電路,它們共同實(shí)現(xiàn)了正弦波、三角坡的生成。鑒相器是作為鎖相環(huán)的備用單元,力異或門電路結(jié)拘,輸入信號一路來flu 部差動矩形波OSCA和OSCB,另外一路來自外部引腳PDI。鑒相器的輸出信號電流,由PDO引腳輸出平均值變化圍為0
21、 550/。當(dāng)兩跳輸入信號的相位差為90時,輸出電流的空比為50%,平均值為250/yj。如果構(gòu)成鎖相環(huán)跡,則PDO和FADJ相連,并且對地連接一個電阻同時并聯(lián)一個電密Od。Upd 決定鑒相器的靈敏度,用于濾除電流中的高頻成分。采用單片機(jī)AT89C52對主信號發(fā)生芯片進(jìn)行智能控制,對MX038產(chǎn)生的波形信號進(jìn)行頻率高低,占空比大小,幅度圍的控制,以與產(chǎn)生波形的選擇控制。MAX038的輸出頻率主要受振蔬電蓉CF , IIN端電流和FADJ端電壓的控制。選擇一個CF值,對應(yīng)IIN端電流的變化,將產(chǎn)生一定圍的輸出頻率。另外,改變FADJ端的電壓,可以在IIN控制的基礎(chǔ)上,對輸出頻率實(shí)現(xiàn)微調(diào)控制。為實(shí)
22、現(xiàn)輸出頻率的數(shù)控調(diào)整,在IIN端和FADJ端分別連接一個電壓輸出的DAC。首先,通過DACB產(chǎn)生0V(OOH)到2.5V(0FFH)的輸出電壓,經(jīng)電壓/電流轉(zhuǎn)換網(wǎng)絡(luò),產(chǎn)生0|J A到748m a的電流,疊加上網(wǎng)絡(luò)本身產(chǎn)生的2m A電流,最終對IIN端形成2m a到750p A的工作電流,使之產(chǎn)生相應(yīng)的輸出頻率恭圍。DACB將此工作電流圍分為256級步進(jìn)間隔,輸出頻率圍也被分為256談步進(jìn)間隔。所以,IIN端的電流對輸出頻率實(shí)現(xiàn)粗調(diào)。第二步,通過DACA 在FADJ端產(chǎn)生一個從-2.3V(00H)到+ 2.3V(0FFH)的電壓圍,該圍同祥包含256級步進(jìn)間隔,IIN端的步進(jìn)間隔再次細(xì)分為256
23、級步進(jìn)間隔,從而在粗調(diào)的基礎(chǔ)上實(shí)現(xiàn)微調(diào)。圖2AT89C52是51系列單片機(jī)的一個型號,它是ATMEL公司生產(chǎn)的。AT89C52 是一個低電壓,高性能CMOS型8位單片機(jī),片含8k bytes的可反復(fù)擦寫的Flh只讀程序存儲器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼想標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片置通用8位中央處理器和Flash存儲單元。AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時含2 個外中斷口,3個16位可編程定時計(jì)數(shù)器,2個全雙工串行通信口,2個讀寫口。其將通用的微處理器和Flash存儲器結(jié)合在一
24、起,特別是可反復(fù)擦寫的Flash 存儲器可有效地降低開發(fā)成本。AT89C52有PDIP、PQFP/TQFP與PLCC等三種封裝式,以適應(yīng)不同產(chǎn)品的需求。主要功能特性:兼容MCS51指令統(tǒng)8k可反復(fù)擦寫(>1000次)Flash ROM ,32個雙向I/0口,256x8bit 部RAM,3個16位可編程定時/計(jì)數(shù)器中斷,時鐘頻率0-24MHZ,2個串行中斷,可編程UART串行通道,2個外部中斷源,共6個中斷源,2個讀寫中斷口線,3級加密位,低功耗空閑和掉電模式,軟件設(shè)置睡眠和喚醒功能。AT89C52中有一個用于拘成部振錫器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端
25、和輸出端。這個放大器與作為反饋元件的片外石英晶體或瓷諧振器一起構(gòu)成自激振蕩器。外接石英晶體與電Cl, C2接在放大器的反饋回路中拘成并聯(lián)振德電路。對外接電容C1, C2雖然沒有十分嚴(yán)格的耍求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序與溫度穩(wěn)定性,這里選擇使用石英晶體。也可以采用外部時鐘。采用外部時鐘的電路的情況時,外部時鐘脈沖接到XTAL1端,即部時鐘度生器的輸入端,XTAL2則懸空。圖28 程序設(shè)計(jì)主耍程序代碼與其說明:#include<REG52.h> #define uchar unsigned char#define uint unsig
26、ned int#define F P1 /P1口作為第一個DAC0832的數(shù)據(jù)輸入,輸出100HZ的三角波、正弦波(一個周期32個點(diǎn))sbit F_la=P31; /高電平時鎖存,低電平時直通P1口sbit A_la=P30; /高電平時鎖存,低電平時直通P1口sbit k1=P32; /選擇波形sbit k2=P33; sbit k3=P34;sbit lcd_en=P24;/LCD1602使能信號E位定義sbit lcd_rs=P23;/LCD1602讀/寫(H/L)控制信號RS位定義char sanjiao="S"/輸出波形char zhengxian="Z
27、"char A1="A"/模式選擇char M1="M"char h1=" Mode: void delay00(uint k); /函數(shù)申明void write_(uchar );void write_data(uchar data0);void init00();uchar ii,ll;/ii表示字符串第i位,ll表示字符串長度uchar code sin256= 0x80,0x83,0x86,0x89,0x8D,0x90,0x93,0x96, /正弦信表0x99,0x9C,0x9F,0xA2,0xA5,0xA8,0xAB,0xA
28、E, 0xB1,0xB4,0xB7,0xBA,0xBC,0xBF,0xC2,0xC5,0xC7,0xCA,0xCC,0xCF,0xD1,0xD4,0xD6,0xD8, 0xDA,0xDD,0xDF,0xE1,0xE3,0xE5,0xE7,0xE9,0xEA,0xEC,0xEE,0xEF,0xF1,0xF2,0xF4,0xF5, 0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD, 0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFD, 0xFD,0xFC,0xF
29、B,0xFA,0xF9,0xF8,0xF7,0xF6, 0xF5,0xF4,0xF2,0xF1,0xEF,0xEE,0xEC,0xEA,0xE9,0xE7,0xE5,0xE3,0xE1,0xDE,0xDD,0xDA,0xD8,0xD6,0xD4,0xD1,0xCF,0xCC,0xCA,0xC7,0xC5,0xC2,0xBF,0xBC,0xBA,0xB7,0xB4,0xB1, 0xAE,0xAB,0xA8,0xA5,0xA2,0x9F,0x9C,0x99, 0x96,0x93,0x90,0x8D,0x89,0x86,0x83,0x80, 0x80,0x7C,0x79,0x78,0x72,0x6F
30、,0x6C,0x69,0x66,0x63,0x60,0x5D,0x5A,0x57,0x55,0x51,0x4E,0x4C,0x48,0x45,0x43,0x40,0x3D,0x3A, 0x38,0x35,0x33,0x30,0x2E,0x2B,0x29,0x27,0x25,0x22,0x20,0x1E,0x1C,0x1A,0x18,0x16,0x15,0x13,0x11,0x10,0x0E,0x0D,0x0B,0x0A,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02, 0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x
31、00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0D,0x0E,0x10,0x11,0x13,0x15,0x16,0x18,0x1A,0x1C,0x1E,0x20,0x22,0x25,0x27,0x29,0x2B,0x2E,0x30,0x33,0x35,0x38, 0x3A,0x3D,0x40,0x43,0x45,0x48,0x4C,0x4E, 0x51,0x55,0x57,0x5A,0x5D,0x60,0x63,0x66, 0x69,0x6C,0x6F,0x72,0x76
32、,0x79,0x7C,0x80 ;uchar mode,M,N,N3,A,k=5,gong,fen,Ax; uint d;/每次調(diào)用都會清屏,顯示字符串void LCD_1602_str(uchar hang1,char *ttt1,uchar hang2,char *ttt2)init00();/初始化函數(shù)for(ll=0,ii=0;ttt1ii;ii+,ll+);/求第一行字符串長度,當(dāng)ttt1ii為最后一位0時其ascII碼為0,所以此時跳出循環(huán),從而求出字符串長度llwrite_(0x80+hang1);for(ii=0;ii<ll;ii+)/顯示第一行字符串write_data
33、(ttt1ii);write_(0x80+0x40+hang2);/地址指針指向下一行首列for(ll=0,ii=0;ttt2ii;ii+,ll+);/求第二行字符串長度,當(dāng)ttt2ii為最后一位0時其ascII碼為0,所以此時跳出循環(huán),從而求出字符串長度llfor(ii=0;ii<ll;ii+)/顯示第二行字符串write_data(ttt2ii);/在上次顯示容的基礎(chǔ)上替換特定位置的字符串,void LCD_1602_t(uchar hang1,char *ttt1,uchar hang2,char *ttt2)for(ll=0,ii=0;ttt1ii;ii+,ll+);/求第一行字
34、符串長度,當(dāng)ttt1ii為最后一位0時其ascII碼為0,所以此時跳出循環(huán),從而求出字符串長度llwrite_(0x80+hang1);for(ii=0;ii<ll;ii+)/顯示第一行字符串write_data(ttt1ii);write_(0x80+0x40+hang2);/地址指針指向下一行首列for(ll=0,ii=0;ttt2ii;ii+,ll+);/求第二行字符串長度,當(dāng)ttt1i為最后一位0時其ascII碼為0,所以此時跳出循環(huán),從而求出字符串長度llfor(ii=0;ii<ll;ii+)/顯示第二行字符串write_data(ttt2ii);/在特定的位置替換為一位
35、數(shù)字(必須是09的數(shù)字,否則顯示的將不是想要顯示的數(shù)字)void LCD_1602_num(uchar hang1,uchar nnn1,uchar hang2,uchar nnn2)write_(0x80+hang1);write_data(nnn1+48);/將數(shù)字轉(zhuǎn)化為ascII碼,數(shù)字+48=相應(yīng)數(shù)字的ascII碼write_(0x80+0x40+hang2);/地址指針指向下一行首列write_data(nnn2+48); /延時子程序 void delay00(uint k) uint x,y;for(x=k;x>0;x-)for(y=10;y>0;y-);/寫指令子程
36、序void write_(uchar ) lcd_rs=0; /RS為L,RW為L時為寫指令,開發(fā)板硬件已將RW接地了,所以不用控制RW了P0=; /送指令代碼到P0口delay00(1); /延時1ms,時序要求lcd_en=1; /使能信號給高脈沖,使得1602讀取P0口上的指令,高脈沖的脈寬有要求,不同廠家的1602要求也不一樣delay00(1);lcd_en=0;delay00(1);lcd_rs=1;/寫數(shù)據(jù)子程序void write_data(uchar data0) lcd_rs=1; /RS為H,RW為L時為寫數(shù)據(jù),開發(fā)板硬件已將RW接地了,所以不用控制RW了P0=data0
37、; /送數(shù)據(jù)到P0口delay00(1);lcd_en=1; /使能信號給高脈沖,使得1602讀取P0口上的數(shù)據(jù),高脈沖的脈寬有要求,不同廠家的1602要求也不一樣delay00(1);lcd_en=0;delay00(1);lcd_rs=1;/初始化子程序void init00() write_(0x38); /設(shè)置1602為16X2顯示,5X7點(diǎn)陣,8為數(shù)據(jù)口write_(0x0c); /設(shè)置顯示開/關(guān)與光標(biāo)設(shè)置,0x0c為開顯示,不顯示光標(biāo)但不閃爍。00001DCB:D=1,開顯示,D=0關(guān)顯示;C=1顯示光標(biāo),C=0不顯示光標(biāo);B=1光標(biāo)閃爍,B=0光標(biāo)不閃爍 write_(0x06)
38、; /0x06為當(dāng)寫一個字符后地址指針加一,且光標(biāo)加一,整屏不移動。000001NS:N=1寫一個字符后地址指針加一,光標(biāo)加一,N=0寫入一個字符后地址指針減一,光標(biāo)減一;S=1寫入一個字符后,整屏左移(N=1)或者右移(N=0),以得到光標(biāo)不移動而屏幕移動的效果,S=0寫入一個字符后整屏顯示但不移動。write_(0x80); /數(shù)據(jù)指針設(shè)置,0x80+地址碼(027H,4067H),00H0fH和40H4fH為可顯示區(qū)間,其余區(qū)間為寄存器write_(0x01); /顯示清屏/用DAC0832輸出三角波(1)、正弦波(2)void fout(void)switch(mode) /根據(jù)模式來
39、輸出 case 1: /三角波 if(M=0)N3=N3+16;F_la=0; F=N3; F_la=1; if(N3=240) M=1; if(M=2) N3=N3-16;F_la=0; /直通F=N3; F_la=1; /鎖存 if(N3=0) M=0; if(M=1)/避免剛到240就被減16,保證每個點(diǎn)之間都間隔定時時間TM+; break; case 2: /正弦波 F_la=0; /直通F=sinN; F_la=1; /鎖存 N=N+8; break; default:break;/用另一個DAC0832控制基準(zhǔn)電壓void aout(void)A_la=0; /鎖存器直通F=A;
40、 /送數(shù)據(jù)到P1口,準(zhǔn)備轉(zhuǎn)換數(shù)據(jù) AA_la=1; /鎖存數(shù)據(jù)/初始化函數(shù)void init(void) /初始化函數(shù) F=0; / 數(shù)模初始值為0EA=1; /中斷允許TMOD=0x11; /定時器0,1的方式都是1TH0=(-293)>>8; /定時器0初值裝入,12MHz定時312us,中斷頻率32*100=3200Hz (一個周期32點(diǎn))TL0=(-293);ET0=1; /中斷0允許TR0=1; /定時器0開 EX0=1; /開外部中斷0IT0=0;/低電平觸發(fā)EX1=1; /開外部中斷1IT1=0;/低電平觸發(fā)/延時程序void delay(uint m)uint x,
41、y;for(x=m;x>0;x-)for(y=110;y>0;y-);/按鍵設(shè)置void key(void)k3=1;if(k3=0)delay(10);if(k3=0)gong+;while(!k3);if(gong=3)gong=0; /顯示系統(tǒng)調(diào)節(jié)狀態(tài)if(gong=0)LCD_1602_t(19,fangbo,0,M1);if(gong=1)LCD_1602_t(19,fangbo,0,F1);if(gong=2)LCD_1602_t(19,fangbo,0,A1);/測試主函數(shù)void main(void)init();LCD_1602_str(0,h1,19,h1);L
42、CD_1602_str(19,h1,0,h2);A=255;LCD_1602_t(19,fangbo,0,M1);while(1)key();/顯示輸出波型if(mode=1)LCD_1602_t(5,sanjiao,19,sanjiao);if(mode=2)LCD_1602_t(5,zhengxian,19,zhengxian);/顯示輸出信號幅值A(chǔ)if(A>=130)Ax=A-5;else Ax=A;if(A=0)Ax=0;LCD_1602_num(12,Ax*0.1/5,19,0); LCD_1602_num(14,(Ax/5)%10,19,0);/顯示定時器初值(如果顯示的是實(shí)
43、際輸出頻率就好了,后續(xù)工作)LCD_1602_num(19,A,7,d/10000);LCD_1602_num(19,A,8,d/1000%10);LCD_1602_num(19,A,9,d/100%10);LCD_1602_num(19,A,10,d/10%10);LCD_1602_num(19,A,11,d%10); /定時器0中斷服務(wù)程序void time0() interrupt 1EA=0;ET0=0; /中斷0允許TR0=0; /定時器0關(guān) /*/*100Hz*TH0=(-200)>>8; /293定時器0初值裝入,12MHz定時312us,中斷頻率32*100=3200Hz(一個周期32,DAC出來就是100Hz)TL0=(-200);TH0=(-d)>>8; /31231定時器0初值裝入,12MHz定時31250us,中斷頻率32*1=32Hz(一個周期32,DAC出來就是1Hz)TL0=(-d);ET0=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年物業(yè)買賣擔(dān)保合同
- 高職班主任工作計(jì)劃范文
- 七年級教學(xué)計(jì)劃三篇
- 心理健康工作計(jì)劃
- 師德規(guī)范學(xué)習(xí)心得體會
- 游藝機(jī)項(xiàng)目可行性研究報(bào)告
- 初中數(shù)學(xué)教師年度考核總結(jié)
- 幼兒園大班班會活動教案
- 公司經(jīng)理述職報(bào)告三篇
- 小升初自我鑒定合集12篇
- 森林草原防火工作培訓(xùn)課件
- 2023年婦科門診總結(jié)及計(jì)劃
- 方大重整海航方案
- 河北省秦皇島市昌黎縣2023-2024學(xué)年八年級上學(xué)期期末數(shù)學(xué)試題
- 礦山治理專項(xiàng)研究報(bào)告范文
- 國家開放大學(xué)2023年7月期末統(tǒng)一試《11124流行病學(xué)》試題及答案-開放本科
- 貨運(yùn)安全生產(chǎn)管理制度
- 幼兒園中班體育《我們愛運(yùn)動》+課件
- 郭錫良《古代漢語》課件
- 外研版四年級英語下冊(一年級起點(diǎn))全冊完整課件
- 防止電力生產(chǎn)事故的-二十五項(xiàng)重點(diǎn)要求(2023版)
評論
0/150
提交評論