

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 《測控電路》課程設(shè)計(jì)說明書</p><p> 題目:簡易信號發(fā)生器的設(shè)計(jì)與制作</p><p> 2013 年 07月 04 日</p><p> 第一章系統(tǒng)設(shè)計(jì)0</p><p><b> 1.1設(shè)計(jì)任務(wù)0</b></p><p> 1.2 題目的來源與
2、技術(shù)背景0</p><p> 1.3 研究信號發(fā)生器的目的及意義0</p><p> 第二章方案設(shè)計(jì)與論證1</p><p> 2.1信號發(fā)生電路方案論證1</p><p> 2.2單片機(jī)的選擇論證2</p><p> 2.3鍵盤方案論證2</p><p> 第三章總
3、體系統(tǒng)設(shè)計(jì)2</p><p><b> 3.1總體系統(tǒng)2</b></p><p> 第四章主要電路元器件介紹3</p><p> 4.1 單片機(jī)簡介3</p><p> 4.2 DAC0832簡介4</p><p> 第五章硬件實(shí)現(xiàn)及單元電路設(shè)計(jì)5</p>
4、<p> 5.1單片機(jī)最小系統(tǒng)的設(shè)計(jì)5</p><p> 5.2 波形產(chǎn)生模塊設(shè)計(jì)6</p><p> 5.3 鍵盤顯示模塊的設(shè)計(jì)7</p><p> 第六章軟件設(shè)計(jì)9</p><p><b> 6.1軟件設(shè)計(jì)9</b></p><p> 6.2軟件流程圖9&l
5、t;/p><p> 第七章輸出波形的種類與頻率的測試10</p><p> 7.1 測量儀器及測試說明10</p><p> 7.2測試過程10</p><p> 7.3三種波形的仿真波形圖11</p><p> 7.4、測試結(jié)果13</p><p> 第八章設(shè)計(jì)心得及體會(huì)
6、13</p><p> 第九章參考文獻(xiàn)13</p><p><b> 第十章附錄14</b></p><p> 10.1源程序14</p><p><b> 10.2附圖24</b></p><p><b> 系統(tǒng)設(shè)計(jì)</b>&l
7、t;/p><p><b> 1.1設(shè)計(jì)任務(wù) </b></p><p> 設(shè)計(jì)一個(gè)有三種輸出波形的電路;</p><p> 能產(chǎn)生20Hz~10KHz連續(xù)可調(diào)的正弦波和三角波,峰峰值在-5~5V內(nèi)可調(diào);</p><p> 能產(chǎn)生20Hz~10KHz連續(xù)可調(diào)的方波,脈寬可調(diào), 輸出峰峰值在0~10V之間可調(diào);</p
8、><p> 1.2 題目的來源與技術(shù)背景</p><p> 不論是在生產(chǎn)還是在科研與教學(xué)上,信號發(fā)生器都是電子工程師仿真實(shí)驗(yàn)的最佳工具。</p><p> 隨著我國經(jīng)濟(jì)和科技的發(fā)展,對相應(yīng)的測試儀器和測試手段也提出了更高的要求,信號發(fā)生器己成為測試儀器中至關(guān)重要的一類,因此開發(fā)信號發(fā)生器具有重大意義。</p><p> 1.3 研究信號發(fā)
9、生器的目的及意義</p><p> 波形發(fā)生器是信號源的一種,主要給被測電路提供所需要的己知信號(各種波形),然后用其它儀表測量感興趣的參數(shù)??梢娦盘栐丛诟鞣N實(shí)驗(yàn)應(yīng)用和試驗(yàn)測試處理中,它的應(yīng)用非常廣泛。它不是測量儀器,而是根據(jù)使用者的要求,作為激勵(lì)源,仿真各種測試信號,提供給被測電路,以滿足測量或各種實(shí)際需要。</p><p><b> 方案設(shè)計(jì)與論證</b>&l
10、t;/p><p> 2.1信號發(fā)生電路方案論證 </p><p> 方案一:利用單片機(jī)靈活的控制、強(qiáng)大的外設(shè)處理能力,通過單片機(jī)控制D/A,輸出三種波形。此方案輸出的波形不夠穩(wěn)定,抗干擾能力弱,不易調(diào)節(jié)。但此方案電路簡單、成本低。</p><p> 方案二:使用傳統(tǒng)的鎖相頻率合成方法。通過芯片IC145152,壓控振蕩器搭接的鎖相環(huán)電路輸出穩(wěn)定性極好的正弦波,再利
11、用過零比較器轉(zhuǎn)換成方波,積分電路轉(zhuǎn)換成三角波。此方案,電路復(fù)雜,干擾因素多,不易實(shí)現(xiàn)。</p><p> 方案三:利用MAX038芯片組成的電路輸出波形。MAX038是精密高頻波形產(chǎn)生電路,能夠產(chǎn)生準(zhǔn)確的三角波、方波和正弦波三種周期性波形。但此方案成本高,程序復(fù)雜度高。</p><p> 以上三種方案綜合考慮,選擇方案一。</p><p> 2.2單片機(jī)的選擇
12、論證 </p><p> 方案一:STC89RC52單片機(jī)是一種高性能8位單片微型計(jì)算機(jī)。它把構(gòu)成計(jì)算機(jī)的中央處理器CPU、存儲(chǔ)器、寄存器、I/O接口制作在一塊集成電路芯片中,從而構(gòu)成較為完整的計(jì)算機(jī)、而且其價(jià)格便宜。</p><p> 方案二:C8051F005單片機(jī)是完全集成的混合信號系統(tǒng)級芯片,具有與8051兼容的微控制器內(nèi)核,與MCS-51指令集完全兼容。除了具有標(biāo)準(zhǔn)8052
13、的數(shù)字外設(shè)部件,片內(nèi)還集成了數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬部件和其他數(shù)字外設(shè)及功能部件,而且執(zhí)行速度快。但其價(jià)格較貴</p><p> 以上兩種方案綜合考慮,選擇方案一</p><p><b> 2.3鍵盤方案論證</b></p><p> 方案一:矩陣式鍵盤。矩陣式鍵盤的按鍵觸點(diǎn)接于由行、列母線構(gòu)成的矩陣電路的交叉處。當(dāng)鍵盤上沒有鍵閉合
14、時(shí),所有的行和列線都斷開,行線都呈高電平。當(dāng)某一個(gè)鍵閉合時(shí),該鍵所對應(yīng)的行線和列線被短路。</p><p> 方案二:編碼式鍵盤。編碼式鍵盤的按鍵觸點(diǎn)接于74LS148芯片。當(dāng)鍵盤上沒有閉合時(shí),所有鍵都斷開,當(dāng)某一鍵閉合時(shí),該鍵對應(yīng)的編碼由74LS148輸出。</p><p> 以上兩種方案綜合考慮,選擇方案一。</p><p><b> 總體系統(tǒng)設(shè)
15、計(jì)</b></p><p><b> 3.1總體系統(tǒng)</b></p><p> 該系統(tǒng)采用單片機(jī)作為數(shù)據(jù)處理及控制核心,由單片機(jī)完成系統(tǒng)控制、信號的采集分析以及信號的處理和變換,采用按鍵輸入的方案。將設(shè)計(jì)任務(wù)分解為按鍵電路、信號產(chǎn)生與變換電路等模塊。圖1為系統(tǒng)的總體框圖 </p><p><b> 圖1、 總體方框圖
16、</b></p><p><b> 主要電路元器件介紹</b></p><p><b> 4.1 單片機(jī)簡介</b></p><p> STC89C52是一種帶8K字節(jié)FLASH存儲(chǔ)器的低電壓、高性能 CMOS 8 位微處理器,俗稱單片機(jī)。該芯片具有優(yōu)異的性價(jià)比,集成度高,體積小,可靠性強(qiáng),控制功能強(qiáng)等優(yōu)
17、點(diǎn)。其外形及引腳排列如圖 2 所示</p><p><b> 圖 2</b></p><p> 4.2 DAC0832簡介</p><p> DAC0832 是 8 分辨率的 D/A 轉(zhuǎn)換集成芯片,由 8 位輸入鎖存器、8 位 DAC 寄存器、8 位 D/A 轉(zhuǎn)換器及轉(zhuǎn)換控制電路四部分構(gòu)成。8 位輸入鎖存器用于存放主機(jī)送來的數(shù)字量,使輸入
18、數(shù)字得到緩沖和鎖存,并加以控制;8 位 DAC 寄存器用于存放存放待轉(zhuǎn)換的數(shù)字量,并加以控制;8 位 D/A 轉(zhuǎn)換器輸出與數(shù)字量成正比的模擬電流,由與門、與非門組成的輸入控制的輸入電路來控制 2 個(gè)寄存器的選通或鎖存狀態(tài),其原理框圖如 3.3。當(dāng) WR2 和 XFER 同時(shí)有效時(shí),8 位 DAC 寄存器端為高電平“1”,此時(shí) DAC 寄存器的輸出端 Q 跟隨輸入端 D 也就是出入寄存器 Q 端得電平變化,反之,當(dāng)端為低電平“0”時(shí),第一
19、級 8 位輸入寄存器 Q 端得狀態(tài)則鎖存到第二級 8 位 DAC 寄存器中,以便第三極 8 位 DAC 轉(zhuǎn)換器進(jìn)行 D/A 轉(zhuǎn)換。</p><p> 圖3、DAC0832的內(nèi)部結(jié)構(gòu)</p><p> 硬件實(shí)現(xiàn)及單元電路設(shè)計(jì) </p><p> 5.1單片機(jī)最小系統(tǒng)的設(shè)計(jì)</p><p> 用STC89C52單片機(jī)構(gòu)成最小應(yīng)用系統(tǒng)時(shí)
20、,只要將單片機(jī)接上時(shí)鐘電路和復(fù)位電路即可,如圖(2)STC89C52單片機(jī)最小系統(tǒng)所示。由于集成度的限制,最小應(yīng)用系統(tǒng)只能用作一些小型的控制單元</p><p> 圖4、STC89C51單片機(jī)最小系統(tǒng)</p><p> 5.2 波形產(chǎn)生模塊設(shè)計(jì) </p><p> 由單片機(jī)采用編程方法產(chǎn)生三種波形、通過DA轉(zhuǎn)換模塊DAC0832在進(jìn)過濾波放大之后輸出。其電路圖
21、如下: </p><p><b> 圖5、波形產(chǎn)生電路</b></p><p> 5.3 鍵盤顯示模塊的設(shè)計(jì)</p><p> 本系統(tǒng)采用獨(dú)立鍵盤,其連接電路圖如下:</p><p><b> 圖6、鍵盤</b></p><p> 圖中鍵盤獨(dú)立鍵盤引出的八跟線分別
22、接單片機(jī)的P2口,在程序初始化時(shí)P2口高四位引腳腳給低電平。如圖開關(guān)1、2、3用來切換輸出波形、開關(guān)4、5、6、7 用來調(diào)節(jié)頻率的加減。開關(guān)8、9、10、11用來調(diào)節(jié)方波占空比。</p><p><b> 軟件設(shè)計(jì)</b></p><p><b> 6.1軟件設(shè)計(jì)</b></p><p><b> 具體功能
23、有:</b></p><p> ?。?)各個(gè)波形的切換;</p><p><b> (2)頻率增減;</b></p><p> (3)方波占空比調(diào)節(jié)等。</p><p> 軟件調(diào)通后,通過編程器下載到STC89C52芯片中,然后插到系統(tǒng)中即可獨(dú)立完成所有的控制。</p><p>
24、<b> 6.2軟件流程圖</b></p><p><b> 軟件的流程圖如下:</b></p><p> 圖7、 按鍵處理程序</p><p> 輸出波形的種類與頻率的測試</p><p> 7.1 測量儀器及測試說明</p><p> 測量儀器:穩(wěn)壓電源、示波
25、器、數(shù)字萬用表。</p><p> 測量說明:正弦波、矩形波、三角波信號的輸出,通過對矩陣鍵盤來實(shí)現(xiàn)不同波形的輸出以及其頻率的改變和方波占空比的調(diào)節(jié)。調(diào)節(jié)參考電壓大小可調(diào)節(jié)輸出電壓幅度變化。</p><p> 7.2測試過程 </p><p> 當(dāng)程序下進(jìn)去時(shí)經(jīng)過初始化,指示燈不斷閃爍,當(dāng)按一下開關(guān)1時(shí)輸出波形為正弦波,按下2時(shí)輸出為方波,按下3時(shí)輸出為三
26、角波。另外4、5、6、7開關(guān)可以調(diào)節(jié)頻率,三種波形的頻率可調(diào)范圍不同,分別如下:</p><p> 正弦波:20—3KHZ</p><p> 方 波:20——3KHZ</p><p> 三角波:20——3KHZ</p><p> 7.3三種波形的仿真波形圖</p><p><b> 如下:<
27、/b></p><p><b> 圖8、正弦波圖形</b></p><p> 圖9、方波占空比90時(shí)圖形</p><p><b> 圖10、三角波圖行</b></p><p><b> 7.4、測試結(jié)果</b></p><p><b&
28、gt; 測試數(shù)據(jù)如下: </b></p><p> 1)、產(chǎn)生正弦波、方波、三角波基本實(shí)現(xiàn)</p><p> 2)、三種波形的頻率都可調(diào),其中方波的占空比可調(diào)</p><p><b> 4)、鍵盤功能實(shí)現(xiàn)</b></p><p><b> 設(shè)計(jì)心得及體會(huì)</b></p&g
29、t;<p> 通過這次課程設(shè)計(jì),使我深刻地認(rèn)識到學(xué)好專業(yè)知識的重要性,也理解了理論聯(lián)系實(shí)際的含義,并且檢驗(yàn)了大學(xué)三年的學(xué)習(xí)成果,進(jìn)一步加深了我對專業(yè)知識的了解和認(rèn)識以及動(dòng)手的能力。雖然在這次設(shè)計(jì)中對于所學(xué)知識的運(yùn)用和銜接還不夠熟練,作品完成的還不是很出色。但是我將在以后的工作和學(xué)習(xí)中繼續(xù)努力、不斷完善。這個(gè)設(shè)計(jì)是對我們過去所學(xué)知識的系統(tǒng)提高和擴(kuò)充的過程,為今后的發(fā)展打下了良好的基礎(chǔ)。</p><p&g
30、t;<b> 參考文獻(xiàn)</b></p><p> [1] 譚浩強(qiáng)主編 C程序設(shè)計(jì)(第四) 清華大學(xué)出版社,2008</p><p> [2] 郭天翔.新概念51單片機(jī)C語言教程 入門、提高、開發(fā)、拓展全.北京.電子工業(yè)出版社 2009.1</p><p> [2] 童詩白.模擬電路技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2000.171
31、~202.</p><p><b> 附錄</b></p><p><b> 10.1源程序</b></p><p> /*********************************************************************************************</
32、p><p> 程序名: 信號發(fā)生器波形產(chǎn)生程序</p><p> 編寫人: Xuzhiyuan</p><p> 編寫時(shí)間: 2013.7.1</p><p> 硬件支持: MCU STC89C52RC XAL 12MHz</p><p><b> 接口說明: </
33、b></p><p> 修改日志: </p><p> /*********************************************************************************************</p><p><b> 說明: </b></p>&
34、lt;p> /*********************************************************************************************/</p><p> #include <reg52.h></p><p> #define uchar unsigned char</p><p&
35、gt; #define uint unsigned int</p><p> #define KEY P2 //鍵盤所連接的I/O接口組定義</p><p> #define OUTPUT P3//波形碼發(fā)出定義</p><p> #define StoU 1000000//定義一個(gè)常量</p><p> uchar i=0;//提
36、取正弦波碼變量</p><p> uchar n=0;//三角波碼產(chǎn)生變量</p><p> uchar flag;/*按鍵對應(yīng)操作標(biāo)志 1:波形選擇 2: 頻率調(diào)節(jié) 3:占空比調(diào)節(jié)*/</p><p> uchar flag1;/*波形選擇標(biāo)志 1:正弦波 2:三角波 3:方波*/</p><p> uchar keynum;
37、/*按鍵掃描返回值 1:產(chǎn)生正弦波 2:產(chǎn)生三角波 3:產(chǎn)生方波</p><p> 4:頻率加1 5:頻率減1 6:頻率加100 7:頻率減100</p><p> 8:占空比加1 9:占空比減1 10:占空比加100 11:占空比減100*/</p><p> uint frequency;//設(shè)定波形頻率值,帶符號數(shù)據(jù)類型</p><p
38、> char zkb;//設(shè)定方波占空比,帶符號數(shù)據(jù)類型</p><p> uint t;//時(shí)間中間變量</p><p> sbit led=P1^0;//單片機(jī)正常工作指示燈</p><p> sbit beep=P1^1;/*各波形產(chǎn)生跟蹤指示 正弦波:蜂鳴器響 三角波:蜂鳴器不響 方波:蜂鳴器交替響*/</p><p>
39、 uchar code tosin[256]={</p><p> 0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,</p><p> 0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,</p><p> 0xc7,0
40、xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,</p><p> 0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,</p><p> 0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,
41、</p><p> 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,</p><p> 0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,</p><p> 0xef,0xee,0xec,0xea,0xe9,0xe7,0
42、xe5,0xe3,0xe1,0xde,0xdd,0xda,</p><p> 0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,</p><p> 0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,</p><p> 0x
43、96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,</p><p> 0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,</p><p> 0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0
44、x30,</p><p> 0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,</p><p> 0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,</p><p> 0x05,0x04,0x03,0x02,0x02,0x
45、01,0x00,0x00,0x00,0x00,0x00,0x00,</p><p> 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,</p><p> 0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,</p><p>
46、 0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,</p><p> 0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e,</p><p> 0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x
47、6f,0x72,</p><p> 0x76,0x79,0x7c,0x80 };/*正弦波碼 */</p><p> void delayms(uint );//毫秒級延時(shí)函數(shù)</p><p> void sinwave();//正弦波產(chǎn)生函數(shù)</p><p> void triwave();//三角波產(chǎn)生函數(shù)</p>
48、<p> void recwave();//方波產(chǎn)生函數(shù)</p><p> void init();//系統(tǒng)初始化函數(shù)</p><p> uchar keyscan();//按鍵掃描函數(shù)</p><p> void check();//單片機(jī)監(jiān)測函數(shù)</p><p> void delayms(uint ms )</
49、p><p><b> {</b></p><p><b> uchar j;</b></p><p> while(ms--)</p><p><b> {</b></p><p> for(j=0;j<120;j++);</p>
50、<p><b> }</b></p><p><b> }</b></p><p> void check()</p><p><b> {</b></p><p><b> led=~led;</b></p><
51、;p> delayms(20); </p><p><b> }</b></p><p> /*********************************************************************************************</p><p> 函數(shù)名:系統(tǒng)初始化函數(shù)</
52、p><p> 調(diào) 用init();</p><p><b> 參 數(shù):無</b></p><p><b> 返回值:無</b></p><p> 結(jié) 果:設(shè)置初始頻率、初始占空比、定時(shí)器T0、T1的工作方式</p><p> 備 注:在主函數(shù)中開始時(shí)調(diào)用<
53、;/p><p> /**********************************************************************************************/</p><p> void init(void)</p><p><b> {</b></p><p>&l
54、t;b> keynum=0;</b></p><p><b> flag=0;</b></p><p><b> flag1=0;</b></p><p> frequency=20;//初始頻率為20HZ</p><p> zkb=50;//初始設(shè)置占空比為50<
55、/p><p> TMOD=0X11;//設(shè)置定時(shí)器T0、T1工作在方式1</p><p><b> TH0=0X3C;</b></p><p><b> TL0=0XB0;</b></p><p><b> TH1=0X9E;</b></p><p>
56、;<b> TL1=0X58;</b></p><p> ET0=1;//打開定時(shí)器T0中斷</p><p> ET1=1;//打開定時(shí)器T1中斷</p><p> EA=1;//打開系統(tǒng)總中斷 </p><p><b> }</b></p><p> /****
57、*****************************************************************************************</p><p> 函數(shù)名:16個(gè)陣列式鍵盤驅(qū)動(dòng)程序</p><p> 調(diào) 用:? = keyscan ();</p><p><b> 參 數(shù):無</b>&
58、lt;/p><p> 返回值:uchar 鍵值0~11</p><p> 結(jié) 果:1~11鍵按下時(shí)返回值為1~11,無鍵按下或其他鍵按下時(shí)返回值為0</p><p> 備 注:在主函數(shù)中不斷調(diào)用</p><p> /************************************************************
59、**********************************/</p><p> uchar keyscan (void)//4*4矩陣鍵盤處理程序</p><p><b> { </b></p><p> uchar a,b=0,c;</p><p> KEY = 0x0f; //設(shè)定鍵盤初始電平狀態(tài)&
60、lt;/p><p> if (KEY != 0x0f)//讀取鍵盤狀態(tài)是否改變</p><p><b> { </b></p><p> delayms (10); //延時(shí)10ms去抖動(dòng)</p><p> if (KEY != 0x0f)//重新讀取</p><p><b> {
61、 </b></p><p> a = KEY; //寄存狀態(tài)值到a</p><p> KEY = 0xf0; //設(shè)定鍵盤反向電平狀態(tài)</p><p> c = KEY; //讀取反向電平狀態(tài)值到c</p><p> a = a|c; //a與c相或</p><p> switch(a)//鍵盤狀
62、態(tài)查表</p><p><b> { </b></p><p> case 0xee: b = 1; flag=1; break;</p><p> case 0xed: b = 2; flag=1; break;</p><p> case 0xeb: b = 3; flag=1; break;</p&g
63、t;<p> case 0xe7: b = 4; flag=2; break;</p><p> case 0xde: b = 5; flag=2; break;</p><p> case 0xdd: b = 6; flag=2; break;</p><p> case 0xdb: b = 7; flag=2; break;<
64、/p><p> case 0xd7: b = 8; flag=3; break;</p><p> case 0xbe: b = 9; flag=3; break;</p><p> case 0xbd: b = 10;flag=3; break;</p><p> case 0xbb: b = 11;flag=3; break;&l
65、t;/p><p> default: b = 0 ; break;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> return (b); //將b中的鍵值代號
66、送入函數(shù)返回值</p><p><b> }</b></p><p> /**********************************************************************************************/</p><p> /***************************
67、******************************************************************</p><p> 定時(shí)器T0中斷服務(wù)子程序</p><p> /*********************************************************************************************/&
68、lt;/p><p> void Timer0(void) interrupt 1</p><p><b> {</b></p><p> switch(flag1)//鍵盤狀態(tài)查表</p><p><b> { </b></p><p> case 1: beep=0;
69、sinwave(); break;</p><p> case 2: beep=1;triwave(); break;</p><p> case 3: beep=~beep;recwave(); break; </p><p> default: break;</p><p><b> }</b>&
70、lt;/p><p><b> }</b></p><p> /*********************************************************************************************</p><p> 定時(shí)器T1中斷服務(wù)子程序</p><p> /**
71、*******************************************************************************************/</p><p> void Timer1(void) interrupt 3</p><p><b> {</b></p><p><b> T
72、R1=0;</b></p><p> t=65536-10000*zkb/frequency; </p><p><b> TL1=t;</b></p><p><b> TH1=t>>8;</b></p><p> OUTPUT=0; </p><
73、;p><b> }</b></p><p> /***********************************************************</p><p><b> 產(chǎn)生正弦波</b></p><p> /**************************************
74、***********************/</p><p> void sinwave(void)</p><p><b> {</b></p><p> t=65536-StoU/(256*frequency); </p><p><b> TL0=t;</b></p>
75、<p><b> TH0=t>>8;</b></p><p> OUTPUT=tosin[i];//發(fā)出正弦波碼</p><p><b> i++;</b></p><p><b> }</b></p><p> /**************
76、*********************************************</p><p><b> 產(chǎn)生三角波</b></p><p> /*************************************************************/</p><p> void triwave(void)&
77、lt;/p><p><b> {</b></p><p> t=65536-StoU/(256*frequency); </p><p><b> TL0=t;</b></p><p><b> TH0=t>>8;</b></p><p>
78、;<b> if(n<128)</b></p><p><b> OUTPUT=n;</b></p><p><b> if(n>128)</b></p><p> OUTPUT=255-n;</p><p><b> n++;</b>
79、;</p><p><b> }</b></p><p> /***********************************************************</p><p><b> 產(chǎn)生方波</b></p><p> /***********************
80、**************************************/</p><p> void recwave(void)</p><p><b> {</b></p><p><b> TR1=1;</b></p><p> t=65535-StoU/frequency; &l
81、t;/p><p><b> TL0=t;</b></p><p><b> TH0=t>>8;</b></p><p> OUTPUT=255; </p><p><b> }</b></p><p> void main()</
82、p><p><b> {</b></p><p><b> init();</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> keynum=keyscan();
83、</p><p> if(keynum!=0)</p><p><b> {</b></p><p> if(flag==1) </p><p><b> {</b></p><p><b> TR0=1;</b></p>&
84、lt;p> switch(keynum)</p><p><b> { </b></p><p> case 1: flag1= 1; break; </p><p> case 2: flag1= 2; break;</p><p> case 3: flag1= 3; break;</p
85、><p> default: keynum= 0 ; break;</p><p><b> }</b></p><p><b> }</b></p><p> if(flag==2) </p><p><b> {</b></p>
86、<p> switch(keynum)</p><p><b> { </b></p><p> case 4: frequency++;</p><p> if(frequency>300)</p><p> frequency=20;</p><p> brea
87、k; </p><p> case 5: frequency--;</p><p> if(frequency<20)</p><p> frequency=300;</p><p><b> break; </b></p><p> case 6: frequency+
88、=10;</p><p> if(frequency>300)</p><p> frequency=20;</p><p> break; </p><p> case 7: frequency-=10;</p><p> if(frequency<20)</p>&
89、lt;p> frequency=300;</p><p> break; </p><p> default: keynum= 0 ; break;</p><p><b> }</b></p><p><b> }</b></p><p> if(
90、flag==3) </p><p><b> {</b></p><p> switch(keynum)</p><p><b> { </b></p><p> case 8: zkb++;</p><p> if(zkb>99)</p>
91、<p><b> zkb=1;</b></p><p> break; </p><p> case 9: zkb--;</p><p><b> if(zkb<1)</b></p><p> frequency=99;</p><p>&l
92、t;b> break; </b></p><p> case 10: zkb+=10;</p><p> if(zkb>99)</p><p><b> zkb=1;</b></p><p> break; </p><p> case 11:
93、zkb-=10;</p><p><b> if(zkb<1)</b></p><p><b> zkb=99;</b></p><p> break; </p><p> default: keynum= 0 ; break;</p><p><
94、b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> check();</b></p><p><b> }</b></p><p>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 測控課程設(shè)計(jì)--簡易低頻信號發(fā)生器的設(shè)計(jì)
- 簡易信號發(fā)生器課程設(shè)計(jì)
- 課程設(shè)計(jì)-簡易信號發(fā)生器
- 簡易信號發(fā)生器 課程設(shè)計(jì)
- 簡易信號發(fā)生器課程設(shè)計(jì)
- 簡易信號發(fā)生器課程設(shè)計(jì)
- 微機(jī)課程設(shè)計(jì)--簡易信號發(fā)生器
- eda課程設(shè)計(jì)-簡易信號發(fā)生器
- 模電簡易信號發(fā)生器課程設(shè)計(jì)
- 模電課程設(shè)計(jì)-簡易信號發(fā)生器
- 高頻信號發(fā)生器的設(shè)計(jì)與制作課程設(shè)計(jì)
- 模電課程設(shè)計(jì)-簡易信號發(fā)生器報(bào)告
- 函數(shù)信號發(fā)生器模擬電路課程設(shè)計(jì)
- 模電課程設(shè)計(jì)——簡易函數(shù)信號發(fā)生器
- 模擬電路課程設(shè)計(jì)-函數(shù)信號發(fā)生器
- 函數(shù)信號發(fā)生器模擬電路課程設(shè)計(jì)
- 信號發(fā)生器課程設(shè)計(jì)----函數(shù)信號發(fā)生器
- 信號發(fā)生器課程設(shè)計(jì)報(bào)告--函數(shù)信號發(fā)生器的設(shè)計(jì)
- 簡易波形發(fā)生器課程設(shè)計(jì)
- 課程設(shè)計(jì)---多音信號發(fā)生器電路的設(shè)計(jì)
評論
0/150
提交評論