版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 單 片 機(jī) 課 程 設(shè) 計(jì) </p><p> 題 目 ____________________</p><p> 姓 名 ____________________</p><p> 學(xué) 院 ____________________</p><p> 專 業(yè) ___________
2、_________</p><p> 學(xué) 號(hào) ____________________</p><p> 指導(dǎo)教師 ____________________</p><p> 成 績(jī) ____________________</p><p> 二〇一二年五月二十二日制</p><p><
3、;b> 摘 要</b></p><p> 本課程設(shè)計(jì)設(shè)計(jì)的是一種AT89C51單片機(jī)構(gòu)成的波形發(fā)生器,可產(chǎn)生方波、三角波、正弦波、鋸齒波等多種波形,波形的周期可用程序改變,并可根據(jù)需要選擇單極性輸出或雙極性輸出,具有線路簡(jiǎn)單、結(jié)構(gòu)緊湊、性能優(yōu)越等特點(diǎn)。文章給出了源代碼,通過(guò)仿真測(cè)試,其性能指標(biāo)達(dá)到了設(shè)計(jì)要求。</p><p> 關(guān)鍵詞:?jiǎn)纹瑱C(jī);DAC;信號(hào)發(fā)生器&
4、lt;/p><p><b> 目 錄</b></p><p> 第一章 系統(tǒng)功能要求:2</p><p> 1.1、設(shè)計(jì)內(nèi)容2</p><p><b> 1.2設(shè)計(jì)原理2</b></p><p> 第二章 方波發(fā)生器設(shè)計(jì)方案論證3</p>&l
5、t;p> 2.1 方案的設(shè)計(jì)與選擇 3</p><p> 第三章 系統(tǒng)的硬件電路的設(shè)計(jì)4</p><p> 3.1系統(tǒng)硬件原理4</p><p> 3.2芯片端口資源分配表4</p><p> 第四章 軟件設(shè)計(jì)5</p><p><b> 4.1 主程序5</b&g
6、t;</p><p> 4.2系統(tǒng)初始化子程序5</p><p> 4.3鍵盤中斷子程序5</p><p> 4.4 定時(shí)器中斷子程序6</p><p> 第五章、 系統(tǒng)調(diào)試7</p><p> 第六章、 結(jié)果分析9</p><p><b> 參考文獻(xiàn)10<
7、;/b></p><p><b> 附件 111</b></p><p> 附錄2 基于單片機(jī)方波發(fā)生器的器件清單16</p><p> 第一章 系統(tǒng)功能要求:</p><p> 用單片機(jī)產(chǎn)生頻率可調(diào)的方波信號(hào)。輸出方波的頻率范圍為1Hz-200Hz,頻率誤差比小于0.5%。要求用4 個(gè)按鈕改
8、變方波給定頻率,按鈕每按下一次,給定頻率改變一次。用示波器觀察方波波形。</p><p><b> 1.1、設(shè)計(jì)內(nèi)容</b></p><p> 本課程設(shè)計(jì)是設(shè)計(jì)一個(gè)方波發(fā)生器,用4個(gè)按鈕控制方波的頻率以及占空比。</p><p><b> 1.2設(shè)計(jì)原理 </b></p><p> AT89
9、C51單片機(jī)具有組成微型計(jì)算機(jī)的各部分部件:CPU、RAM、I/O定時(shí)器/計(jì)數(shù)器以及串行通訊接口等。只要將AT89C51的ROM,接口電路,再配置鍵盤及其接口,顯示器及其接口,數(shù)模轉(zhuǎn)換及波形輸出,指示燈及其接口等四部分,即可構(gòu)成所需波形發(fā)生器。其信號(hào)發(fā)生器構(gòu)成原理框圖如圖1所示。 </p><p> 圖1 – 方波信號(hào)發(fā)生器設(shè)計(jì)原理框圖 </p><p> 在信號(hào)發(fā)生器中,只用到片內(nèi)中
10、斷請(qǐng)求,即是在AT89C51輸出一個(gè)波形采樣點(diǎn)信號(hào)后,接著啟動(dòng)定時(shí)器,在定時(shí)器未產(chǎn)生中斷之前,AT89C51等待,直到定時(shí)器計(jì)時(shí)結(jié)束,產(chǎn)生中斷請(qǐng)求,AT89C51響應(yīng)中斷,接著輸出下一個(gè)信號(hào)波形,如此循環(huán)。當(dāng)有按鍵按下時(shí),產(chǎn)生外部中斷請(qǐng)求信號(hào),CPU暫停當(dāng)前工作,處理中斷請(qǐng)求,重新裝入定時(shí)初值,開始定時(shí)。 </p><p> 第二章 方波發(fā)生器設(shè)計(jì)方案論證</p><p> 在電子技
11、術(shù)領(lǐng)域中,實(shí)現(xiàn)方波發(fā)生器的方法有很多種,可以采用不同的原理及器件構(gòu)成不同的電路,但可以實(shí)現(xiàn)相同的功能。</p><p> 2.1 方案的設(shè)計(jì)與選擇 實(shí)現(xiàn)方波發(fā)生器的方法很多, 但主要有三個(gè)方案: 采用單片函數(shù)發(fā)生器 8038, 采用鎖相式頻率合成器,采用單片機(jī)編程。</p><p> 通過(guò)對(duì)比, 決定采用單片機(jī)編程的方法來(lái)實(shí)現(xiàn)。 該方法可以通過(guò)編程的方法來(lái)控制信號(hào)波形的頻
12、率和幅度, 而且在硬件電路不變的情況下, 通過(guò)改編程序來(lái)實(shí)現(xiàn)頻率的變換。此外,由于通過(guò)編程方法產(chǎn)生的是數(shù)字信號(hào),所以信號(hào)的精度可以做得很高。 </p><p> 本設(shè)計(jì)用到一個(gè)AT89C51微處理器,4個(gè)按鍵,一個(gè)四與門。AT89C51用到兩個(gè)定時(shí)器,定時(shí)器0和定時(shí)器1。其中定時(shí)器0工作在定時(shí)方式1下,決定方波頻率;定時(shí)器1工作在定時(shí)方式1下,用來(lái)設(shè)定占空比。按鍵1與2控制方波信號(hào)頻率。按下按鍵1或2時(shí),
13、進(jìn)行頻率的調(diào)節(jié),占空比不變。1鍵按下時(shí),頻率增加100Hz,若2鍵按下時(shí),頻率增加10Hz。頻率最大值為500Hz,當(dāng)頻率大于最大值時(shí),重新賦值為50Hz。另外兩個(gè)按鍵控制方波信號(hào)占空比。當(dāng)按鍵3和4按下時(shí),進(jìn)行占空比調(diào)節(jié),頻率不變。3鍵按下時(shí),占空比進(jìn)行增加10%,4鍵按下時(shí),占空比增加1%。占空比最大值為100%,當(dāng)占空比大于100%時(shí),重新賦值為0%。 </p><p> 第三章 系統(tǒng)的硬件電路的設(shè)計(jì)&l
14、t;/p><p> 3.1系統(tǒng)硬件原理 </p><p> 系統(tǒng)硬件原理圖如圖2。本次設(shè)計(jì)中,采用內(nèi)部時(shí)鐘方式。 AT89C51單片機(jī)的P1.0、P1.1、P1.2、P1.3口分別連接四個(gè)按鍵,對(duì)輸出方波的頻率、占空比進(jìn)行控制。P2.0口作為方波輸出口,可以通過(guò)示波器來(lái)觀察波形。四個(gè)鍵盤口連接一個(gè)四與門,與INT0口連接,將鍵盤中斷請(qǐng)求信號(hào)送入CPU。 </p><p&
15、gt; 圖2 – 系統(tǒng)硬件原理圖 </p><p> 3.2芯片端口資源分配表</p><p> 表2 74LS21芯片端口資源分配表 </p><p> 表3 AT89C51 芯片端口資源分配表 </p><p><b> 第四章 軟件設(shè)計(jì)</b></p><p> 方波發(fā)生器的軟
16、件設(shè)計(jì)包括主程序、延時(shí)子程序、系統(tǒng)初始化程序、鍵盤中斷子程序、定時(shí)器中斷子程序。 </p><p><b> 4.1 主程序 </b></p><p> 主程序包括系統(tǒng)初始化,和一個(gè)死循環(huán)系統(tǒng)。當(dāng)有中斷請(qǐng)求信號(hào)產(chǎn)生時(shí),跳出循環(huán), 執(zhí)行中斷程序。流程圖如圖3 所示。 </p><p> 圖3 – 主程序流程圖 </p><
17、;p> 4.2系統(tǒng)初始化子程序 </p><p> 在此程序中,給所有變量賦初值:鍵盤掃描口、初始頻率與占空比及定時(shí)、開中斷、定時(shí)器0與定時(shí)器1的工作方式等。初始化時(shí)啟動(dòng)了定時(shí)器0和定時(shí)器1.其中初始頻率為50Hz,占空比為50%。鍵盤中斷處理子程序流程圖如圖4所示 </p><p> 4.3鍵盤中斷子程序 </p><p> 鍵盤用外中斷0實(shí)現(xiàn)。當(dāng)有
18、鍵按下時(shí),產(chǎn)生低電平送入INT0口,形成中斷請(qǐng)求信號(hào),CUP轉(zhuǎn)去執(zhí)行鍵盤中斷子程序,進(jìn)行頻率調(diào)節(jié)或占空比調(diào)節(jié)。 (1)頻率調(diào)節(jié) 按下按鍵1或2時(shí),進(jìn)行頻率的調(diào)節(jié),占空比不變。1鍵按下時(shí),頻率增加100Hz,若2鍵按下時(shí),頻率增加10Hz。頻率最大值為500Hz,當(dāng)頻率大于最大值時(shí),重新賦值為50Hz。 (2)占空比調(diào)節(jié) 當(dāng)按鍵3和4按下時(shí),進(jìn)行占空比調(diào)節(jié),頻率不變。3鍵按下時(shí),占空比進(jìn)行增加10%,4鍵按下時(shí),占空比增加1%。占空比最大
19、值為99%,當(dāng)占空比大于99%時(shí),重新賦值為1%。 </p><p><b> N</b></p><p><b> Y</b></p><p><b> N</b></p><p><b> Y</b></p><p>
20、 圖 4 – 鍵盤中斷處理子程序流程圖</p><p> 4.4 定時(shí)器中斷子程序 定時(shí)器中斷子程序中有定時(shí)器 0 與定時(shí)器 1 中斷, 頻率定時(shí)器 0 中斷流程圖與占空比定時(shí)器 1 流程圖分別如圖 5、圖 6 所示。①定時(shí)器 0 中斷執(zhí)行的操作有:復(fù)位,啟動(dòng)自身進(jìn)行頻率定時(shí),同時(shí)啟動(dòng)定時(shí)器 1,進(jìn)行占空比定時(shí),輸出高電平。②定時(shí)器 1 中斷,停止自身的計(jì)時(shí),輸出低電平。</p>
21、<p> 第五章、 系統(tǒng)調(diào)試 </p><p> 在本次課程設(shè)計(jì)中, 使用 Proteus 軟件進(jìn)行仿真調(diào)試。調(diào)試內(nèi)容主要為軟硬件的協(xié)同,觀察波形輸出結(jié)果是否能夠與設(shè)計(jì)方案所設(shè)計(jì)的那樣達(dá)到要求。調(diào)試結(jié)果如下: 1) 在 Proteus 軟件中運(yùn)行仿真,示波器窗口中出現(xiàn)方波波形,顯然波形頻率與占空比分別為 50Hz 和 50%,符合程序初始化的結(jié)果。</p><p>
22、 圖 7 – Proteus 仿真 – 初始狀態(tài)</p><p> 分別按下按鍵 1、 2 調(diào)節(jié)方波頻率??梢钥吹椒讲úㄐ晤l率不斷增加,一快一慢,而占空比依然為 50%未變。</p><p> 圖 8 – Proteus 仿真 – 調(diào)節(jié)方波頻率 </p><p> 3) 重新在初始狀態(tài)下進(jìn)行仿真。 分別按下按鍵 3、 4 調(diào)節(jié)方波占空比, 可以看到方波波形
23、的占空比發(fā)生變化,而頻率未變。</p><p> 圖 9 – Proteus 仿真 – 調(diào)節(jié)方波占空比 </p><p><b> 第六章、 結(jié)果分析</b></p><p> 在本次設(shè)計(jì)中, 方波信號(hào)發(fā)生器的頻率和占空比都獨(dú)立可調(diào)。 輸出方波信號(hào)的占空比圍為 0%—100%,調(diào)節(jié)精度為 1%;頻率范圍為 50Hz—500Hz,調(diào)節(jié)精度為
24、 10Hz。頻率和占空比之間的調(diào)節(jié)彼此獨(dú)立。 進(jìn)行頻率調(diào)節(jié)時(shí), 每次可以增加 100Hz 或 10Hz, 超過(guò) 500Hz輸出為 50Hz 的方波;進(jìn)行占空比調(diào)節(jié)時(shí),每次可增加 1%或 10%, 超出 100%時(shí)輸出占空為 0%方波??傮w看來(lái),設(shè)計(jì)成果達(dá)到了設(shè)計(jì)要求。 輸出方波的波形穩(wěn)定,調(diào)節(jié)也較為簡(jiǎn)單。</p><p><b> 參考文獻(xiàn) </b></p><p&g
25、t; [1] 皮大能.南光群.劉金華.單片機(jī)課程設(shè)計(jì)指導(dǎo)書.北京理工大學(xué)出版社,2010.7.</p><p> [2] 李光飛.樓然苗.胡佳文.謝象佐.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo).北京航空航天大學(xué)出版社,2004.9.</p><p> [3] 求是科技.單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航.人民郵局出版社.2004.5.</p><p> [4] 童詩(shī)白.模擬電路技術(shù)
26、基礎(chǔ)[M].北京:高等教育出版社,2000.5.</p><p> [5] 方大千.鮑俏偉.實(shí)用電子控制電路.國(guó)防工業(yè)出版社,2003.4. </p><p> [6] 李朝青.單片機(jī)原理及接口技術(shù).北京航空航天大學(xué)出版社.2011.6</p><p><b> 附件 1</b></p><p> 基于單片機(jī)方
27、波發(fā)生器的程序清單:</p><p> #include<reg51.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> float fosc=12000000; //系統(tǒng)時(shí)鐘頻率</p>&l
28、t;p> sbit KEY1=P1^0; //控制頻率百位;</p><p> sbit KEY2=P1^1; //控制頻率十位;</p><p> sbit KEY3=P1^2; //控制占空比十位;</p><p> sbit KEY4=P1^3; //控制占空比個(gè)位;</p><p> sbit OUTPUT=P2^0;
29、 //方波輸出端口;</p><p> uchar zkb;</p><p> uint freq;</p><p> uchar TIMER0_L,TIMER0_H,TIMER1_L,TIMER1_H; //定</p><p> /****************************</p><p>&l
30、t;b> 延時(shí)子程序</b></p><p> ****************************/</p><p> void delay(uchar n) //延時(shí)</p><p><b> {</b></p><p><b> uchar i;</b><
31、/p><p> while(n--)</p><p> {for(i=255;i>0;i--)</p><p><b> {}</b></p><p><b> }}</b></p><p> /*******************</p><
32、;p><b> 系統(tǒng)初始化</b></p><p> *******************/</p><p> void chushihua(void)</p><p><b> {</b></p><p><b> P1=0x0f;</b></p>
33、;<p><b> freq=50;</b></p><p><b> zkb=50;</b></p><p> TIMER0_L=0xe0;</p><p> TIMER0_H=0xb1;</p><p> TIMER1_L=0xf0;</p><p&g
34、t; TIMER1_H=0xd8;</p><p> TL0=0xe0; //初始頻率 50Hz 定時(shí) 20ms</p><p><b> TH0=0xb1;</b></p><p> TL1=0xf0; //初始占空比 50%定時(shí) 10ms</p><p><b> TH1=0xd8;</b&
35、gt;</p><p> TMOD=0x11; //定時(shí)器 1 和定時(shí)器 0 工作在方式 1</p><p> IT0=1; //選擇 INT0 為下降沿觸發(fā)方式</p><p> EX0=1; //外部中斷 0 允許</p><p> ET0=1; //定時(shí)器 1 和定時(shí)器 0 中斷允許</p><p>&l
36、t;b> ET1=1;</b></p><p> EA=1; //系統(tǒng)中斷允許</p><p> TR0=1; //定時(shí)器 1 和定時(shí)器 0 開始定時(shí)</p><p><b> TR1=1;</b></p><p><b> }</b></p><p&
37、gt; /*********************</p><p><b> 主函數(shù)</b></p><p> *********************/</p><p> void main(void)</p><p><b> {</b></p><p>
38、 chushihua(); //系統(tǒng)初始化</p><p><b> while(1)</b></p><p><b> { }</b></p><p><b> }</b></p><p> /************************</p>&
39、lt;p><b> 定時(shí)器中斷子程序</b></p><p> ************************/</p><p> void Timer0_freq() interrupt 1 //頻率定時(shí)器 0 中斷</p><p><b> {</b></p><p> TR1
40、=1; //啟動(dòng)定時(shí)器 1,占空比定時(shí)</p><p> TL0=TIMER0_L;</p><p> TH0=TIMER0_H;</p><p> OUTPUT=1; //輸出高電平</p><p><b> }</b></p><p> void Timer1_zkb() inter
41、rupt 3 //占空比定時(shí)器 1 中斷</p><p><b> {</b></p><p> TR1=0; //定時(shí)器 1 停止</p><p> TL1=TIMER1_L;</p><p> TH1=TIMER1_H;</p><p> OUTPUT=0; //輸出低電平</
42、p><p><b> }</b></p><p> /***********************</p><p><b> 鍵盤掃描子程序</b></p><p> ***********************/</p><p> void keyscan() i
43、nterrupt 0 using 1 //外部中斷 0</p><p> {float TF0,TZ1;</p><p> EX0=0; //關(guān)中斷</p><p> delay(10); //延時(shí)消抖</p><p> if(P1!=0x0f) //判斷是否有鍵按下</p><p><b> {&
44、lt;/b></p><p> if(KEY1==0) freq+=100; //按鍵為 1 號(hào),頻率加 100</p><p> if(KEY2==0) freq+=10; //按鍵為 2 號(hào),頻率加 10</p><p> if(freq>500) freq=50; //頻率大于 500Hz,重新賦值為 5</p><p&g
45、t; if(KEY3==0) zkb+=10; //按鍵為 3 號(hào),占空比加 10</p><p> if(KEY4==0) zkb++; //按鍵為 4 號(hào),占空比加 1</p><p> if(zkb>100) zkb=1; //占空比大于 100,重新賦值為</p><p> TF0=(65536-fosc/(12.0*freq));//頻率定時(shí)
46、初值</p><p> TZ1=(65536-(fosc*zkb)/(12.0*100*freq)); //占空比定時(shí)</p><p> TIMER0_H=(uint)TF0/256;</p><p> TIMER0_L=(uint)TF0%256;</p><p> TIMER1_H=(uint)TZ1/256;</p>
47、<p> TIMER1_L=(uint)TZ1%256;</p><p><b> }</b></p><p> P1=0x0f; //給鍵盤掃描口賦初值</p><p> EX0=1; //開中斷</p><p> TR0=1; //定時(shí)器 1 和定時(shí)器 0 開始定時(shí)</p>&l
48、t;p><b> TR1=1;}</b></p><p> 附錄2 基于單片機(jī)方波發(fā)生器的器件清單 </p><p> 9*15萬(wàn)能板..............................................1個(gè)</p><p> 40P鎖緊座..................................
49、.............1個(gè)</p><p> 40P晶振座子.............................................1個(gè)</p><p> 自鎖開關(guān)................................................1個(gè)</p><p> 按鍵..........................
50、..........................5個(gè)</p><p> 25V10uf電解電容.........................................5個(gè) </p><p> 30pf瓷片電容............................................5個(gè)</p><p> 3mmLED燈.......
51、.........................................15個(gè)</p><p> 40P單排排針.............................................5個(gè)</p><p> 40P單排排座............................................5個(gè)</p><p>
52、10K9腳排阻.............................................5個(gè)</p><p> 方頭USB-B母...........................................2個(gè)</p><p> 10k電阻................................................4個(gè)</p>
53、<p> AT89C52................................................1個(gè) </p><p> 74LS21.................................................1個(gè)</p><p> 1uf電容........................................
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)—基于單片機(jī)的方波信號(hào)發(fā)生器
- 用單片機(jī)進(jìn)行方波發(fā)生器的課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---占空比可調(diào)的方波發(fā)生器
- 單片機(jī)課程設(shè)計(jì)報(bào)告---基于單片機(jī)的波形發(fā)生器
- 單片機(jī)課程設(shè)計(jì)報(bào)告(信號(hào)發(fā)生器)
- 單片機(jī)課程設(shè)計(jì)報(bào)告--波形發(fā)生器
- 單片機(jī)課程設(shè)計(jì)報(bào)告--- 函數(shù)發(fā)生器
- 單片機(jī)波形發(fā)生器課程設(shè)計(jì)報(bào)告
- 簡(jiǎn)易信號(hào)發(fā)生器單片機(jī)課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)(波形發(fā)生器)
- 單片機(jī)課程設(shè)計(jì)---波形發(fā)生器
- 單片機(jī)波形發(fā)生器課程設(shè)計(jì)報(bào)告 (2)
- 基于mcs-51單片機(jī)的可調(diào)頻率方波發(fā)生器課程設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告---方波發(fā)生器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)—波形發(fā)生器
- 課程設(shè)計(jì)--單片機(jī)波形發(fā)生器
- 單片機(jī)課程設(shè)計(jì)-波形發(fā)生器
- 基于單片機(jī)的波形發(fā)生器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)(簡(jiǎn)易函數(shù)發(fā)生器)
- 單片機(jī)信號(hào)發(fā)生器課程設(shè)計(jì)論文
評(píng)論
0/150
提交評(píng)論