設計并實現占空比可調的信號發(fā)生器_第1頁
設計并實現占空比可調的信號發(fā)生器_第2頁
設計并實現占空比可調的信號發(fā)生器_第3頁
設計并實現占空比可調的信號發(fā)生器_第4頁
設計并實現占空比可調的信號發(fā)生器_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、武漢理工大學單片機原理與應用課程設計說明書目錄1 仿真軟件介紹11.1 Proteus軟件介紹11.2 Keil軟件介紹12 設計原理和方案12.1方案的選擇和設計12.2 設計原理22.3 系統硬件線路圖設計圖3 2.3.1 51單片機介紹32.3.2 LCD1602簡介42.3.3 系統硬件電路簡介5 3系統軟件設計6 3.1 主程序6 3.2 系統初始化子程序6 3.3 鍵盤掃描程序73.4 系統的資源分配表73.5 源程序84 系統軟件仿真135 性能分析155.1定時器中斷分析155.2系統性能分析155.3誤差分析156 心得體會167 參考文獻171 仿真軟件介紹1.1 Prot

2、eus軟件介紹Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風標電子技術有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發(fā)應用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協同仿真,一鍵切換到PCB設計,真正實現了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設

3、計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。1.2 Keil軟件介紹Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發(fā)方案,通過一個集成開

4、發(fā)環(huán)境(uVision)將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調試工具也會令你事半功倍。2 設計原理和方案2.1方案的選擇和設計方案一:采用分立器件實現非穩(wěn)態(tài)的多諧振蕩器,然后根據具體需要加入積分電路等構成矩形等波形發(fā)生器。這種信號發(fā)生器輸出頻率范圍窄而且電路參數設定較繁瑣,其頻率大小的測量往往需要通過硬件電路的切換來實現,操作不方便。方案二:用集成芯片實現函數信號發(fā)生器。這種信號發(fā)生器。這種信號發(fā)生器能產生

5、多種波形信號,可以達到較高頻率,但電路復雜并且不易調試。方案三:采用單片機編程的方法實現。該方法可以通過編程,來控制方波信號輸出的頻率和幅度,并且只要改變程序的相關參數,便可以改變輸出波形的頻率和占空比。由于編程的方法產生的是數字信號,所以信號的精度可以做到很高。并且電路簡單。方案四:利用專用直接數字合成DDS芯片實現函數信號發(fā)生器。這種信號發(fā)生器能產生任意波形并且達到很高的頻率,但成本較高。綜合成本和性能等多方面因素,本例采用第三種方法,即采用單片機編程的方法實現占空比可調,頻率可調的方波信號發(fā)生器。2.2 設計原理在此次課程設計中,利用AT89C51單片機,軟硬件結合,實現占空比和頻率可調

6、,案件的操作是通過數字電路跟外部中斷0來控制的??梢暂敵稣伎毡仍?%到99%可調,精度為1%,頻率范圍在50HZ到500HZ可調,精度為10HZ的方波。AT89C51單片機是整個波形信號發(fā)生器的核心,通過程序的編寫和執(zhí)行,可以產生可以調節(jié)的方波,并受到按鍵的控制,增減頻率和占空比。并且在液晶上顯示出來。定時器0工作再方式1下,決定輸出信號的頻率,定時器1工作再方式1下,決定輸出信號的占空比。按鍵1和2決定信號的輸出頻率,按鍵1用于增大信號的頻 率,按一下就增加10HZ,當增減大500HZ時,就歸為50HZ。按鍵2用于減小輸出信號的頻率,按一次鍵,輸出信號的頻率減少10HZ,當減少到 50HZ時

7、,頻率就歸于500.按鍵3和4決定信號的占空比,按鍵3用于增加信號的占空比,按下一次鍵,占空比就增加1,上限值為99,當在此按鍵是,就 讓占空比歸1.按鍵4用于減小信號的占空比,按下一次鍵,占空比就減1,下限值為1,當再次按鍵時,就讓占空比回歸到99.通過上面的步驟,可以實現占空比和頻率的可調。液晶則選用LCD032L,可直觀的看到頻率和占空比。信號發(fā)生器原理框圖如圖1 :單片機AT89C51LCD顯示按鍵或按鈕頻率與占空比數據頻率與占空比數據圖1信號發(fā)生器原理框圖2.3 系統硬件線路圖設計圖2.3.1 51單片機介紹51單片機是對目前所有兼容Intel 8031指令系統的單片機的統稱。該系列

8、單片機的始祖是Intel的8031單片機,后來隨著Flash rom技術的發(fā)展,8031單片機取得了長足的進展,成為目前應用最廣泛的8位單片機之一,其代表型號是ATMEL公司的AT89系列,它廣泛應用于工業(yè)測控系統之中。目前很多公司都有51系列的兼容機型推出,在目前乃至今后很長的一段時間內將占有大量市場。51單片機是基礎入門的一個單片機,還是應用最廣泛的一種。需要注意的是52系列的單片機一般不具備自編程能力。 當前常用的51系列單片機主要產品有: *Intel的:80C31、80C51、87C51,80C32、80C52、87C52等; *ATMEL的:89C51、89C52、89C2051等

9、; *Philips、華邦、Dallas、Siemens(Infineon)等公司的許多產品 目前,國產宏晶STC單片機以其低功耗、廉價、穩(wěn)定性能,占據著國內51單片機較大市場。主要功能有:8位CPU4kbytes 程序存儲器(ROM) (52為8K) 圖2 51單片機的引腳圖256bytes的數據存儲器(RAM) (52有384bytes的RAM) 32條I/O口線111條指令,大部分為單字節(jié)指令 21個專用寄存器 2個可編程定時/計數器5個中斷源,2個優(yōu)先級(52有6個) 一個全雙工串行通信口 外部數據存儲器尋址空間為64kB 外部程序存儲器尋址空間為64kB 邏輯操作位尋址功能雙列直插4

10、0PinDIP封裝 單一+5V電源供電 CPU:由運算和控制邏輯組成,同時還包括中斷系統和部分外部特殊功能寄存器; RAM:用以存放可以讀寫的數據,如運算的中間結果、最終結果以及欲顯示的數據; ROM:用以存放程序、一些原始數據和表格; I/O口:四個8位并行I/O口,既可用作輸入,也可用作輸出; T/C:兩個定時/記數器,既可以工作在定時模式,也可以工作在記數模式; 五個中斷源的中斷控制系統; 一個全雙工UART(通用異步接收發(fā)送器)的串行I/O口,用于實現單片機之間或單片機與微機之間的串行通信; 片內振蕩器和時鐘產生電路,石英晶體和微調電容需要外接。最高振蕩頻率為12M。2.3.2 LCD

11、1602簡介工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。(16列2行)1602液晶也叫1602字符型液晶它是一種專門用來顯示字母、數字、符號等的點陣型液晶模塊它有若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符。每位之間有一個點距的間隔每行之間也有間隔起到了字符間距和行間距的作用,正因為如此所以他不能顯示圖形。1602LCD是指顯示的內容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數字)。目前市面上字符液晶絕大多數是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應用于市面上大部分的字符型液晶

12、。 圖3 LCD1602引腳圖1602采用標準的16腳接口,其中: 第1腳:VSS為電源地 第2腳:VDD接5V電源正極 第3腳:V0為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會 產生“鬼影”,使用時可以通過一個10K的電位器調整對比度)。 第4腳:RS為寄存器選擇,高電平1時選擇數據寄存器、低電平0時選擇指令寄存器。 第5腳:RW為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。 第6腳:E(或EN)端為使能(enable)端。 第714腳:D0D7為8位雙向數據端。 第1516腳:空腳或背燈電源。15腳背光正極,16腳背光負極1602

13、LCD的特性:+5V電壓,對比度可調,內含復位電路提供各種控制命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能。有80字節(jié)顯示數據存儲器DDRAM,內建有192個5X7點陣的字型的字符發(fā)生器CGROM,8個可由用戶自定義的5X7的字符發(fā)生器CGRAM。2.3.3 系統硬件電路簡介系統硬件電路原理圖如下圖2所示:四個獨立按鍵分別與單片機P1.0,P1.1,P1.2,P1.3相連接,并且通過一個四輸入的與門,將與門的輸出當做單片機外部中斷0的觸發(fā)信號。當有按鍵按下時,就會進入外部中斷程序。P1.4口輸出信號連接到示波器,檢測輸出波形。通過單片機的PO口連接到LCD016L的數據段,用以顯示波

14、形信號發(fā)生器的頻率和占空比。圖4系統硬件電路原理圖3 系統軟件設計軟件是該LCD顯示控制系統的重要組成部分,在軟件的設計中,我們采用了模塊了設計,將各部分功能編寫為子模塊的形式,這樣增加了程序的可讀性。3.1 主程序主程序用于控制整個系統,先對系統初始化,然后通過一個空循環(huán)等待中斷程序,當中斷到來時候,就進入中斷程序,執(zhí)行中斷程序。中斷程序執(zhí)行完成之后,就返回主程序,繼續(xù)等待。3.2 系統初始化子程序在此程序中,給所有變量賦初值,特別是T0,T1的初始值使產生方波的頻率為50Hz,占空比為50%,且在LCD016L上顯示出來。3.3 鍵盤掃描程序鍵盤掃描用外部中斷0實現,用以分析是哪個鍵盤被按

15、下,然后在實現所要的功能。關于鍵盤掃描程序的說明:頻率可調時,占空比保持原狀不變,反之亦然。(1)頻率調節(jié)當按下鍵1的時候,會轉到外部中斷0子程序,判斷之后,會改變其中變量fre的值,然后分別將T0,T1按要求重新賦初始值,然后再在液晶上實時刷新。即可改變即加10Hz,當加到最大值500Hz時,繼續(xù)按下鍵1,將會回到最小值50Hz上。同理按下鍵2,頻率值將會減10Hz,當減到最小值50Hz,會回到最大值500Hz上。(2)占空比調節(jié)當按下鍵3,進入到外部中斷0子程序,判斷卻是按下后,改變zkb(即占空比),然后改變定時器的初值。實時刷新,同頻率調節(jié),占空比也需要進行限制。要注意的是頻率和占空比

16、的初始值都為50,我們定義的占空比為百分比的分子部分。鍵盤處理子程序,當有按鍵按下時,進入到外部中斷,然后暫時關閉外部中斷,啟動延時程序,以消除抖動。然后檢測是哪個按鍵被按下,然后對頻率跟占空比的變量做出相應的賦 值,并且將占空比的值送到數碼管顯示。并且對定時器0和定時器1分別賦新的初值,開啟外部中斷,定時器0和1中斷,中斷程序結束。3.4 系統的資源分配表系統的資源分配表如表1所示:表1系統資源分配P0P1.0P1.3P1.4P3.2液晶數據線按鍵接口方波信號輸出口外部中斷0觸發(fā)引腳3.5 源程序#include #define uchar unsigned char#define uint

17、 unsigned intfloat fosc=12000000; /系統時鐘頻率sbit key1=P10; /控制頻率的增加sbit key2=P11; /控制頻率的減少sbit key3=P12; /控制占空比的增加sbit key4=P13; /控制占空比的減少sbit LCDEN=P34;sbit RS=P35;sbit clk=P14;uchar num;uchar code table1=FRE(Hz):;uchar code table2=DUT(%):;uint zkb=50; /占空比初值,取值范圍為0到100uint fre=50; /頻率初值,取值范圍為50到500ui

18、nt time0_H,time0_L,time1_H,time1_L;void delay(uint z) uint i,j;for(i=z;i-;i0)for(j=110;j-;j0);void write_com(uchar com)RS=0;P0=com;delay(5);LCDEN=1;delay(5);LCDEN=0;void write_data(uchar date)RS=1;P0=date;delay(5);LCDEN=1;delay(5);LCDEN=0;void init() /方波產生TMOD=0x11; /定時器0和1都工作在方式1(高8位與低8位)time0_H=0x

19、B1;time0_L=0xE0;time1_H=0xD8;time1_L=0xF0;TH0=0xB1; /定時器0裝入初值,計數器計數20000次,20msTL0=0xE0;TH1=0xD8; /定時器1裝入初值,計數器計數10000次,10msTL1=0xF0;IT0=1; /外部中斷1為低電平觸發(fā)EX0=1; /開外部中斷1ET0=1; /定時器T0中斷允許ET1=1; /定時器T1中斷允許EA=1; /開啟總中斷TR0=1; /開啟定時器0TR1=1; /開啟定時器1LCDEN=0;write_com(0x38);write_com(0x0c);write_com(0x06);write

20、_com(0x01);void main()init();write_com(0x80);for(num=0;num8;num+)write_data(table1num);delay(5);write_data(0x30+5);delay(5);write_data(0x30+0);delay(5);write_com(0x80+0x40);for(num=0;num500)fre=50;if(key2=0)fre=fre-10;if(fre99)zkb=1;if(key4=0)zkb=zkb-1;if(zkb1)zkb=99;TX=(65536-fosc/(12.0*fre);TZ=(65

21、536-(fosc*zkb)/(12.0*100*fre);time0_H=(uint)TX/256; /十進制轉化為十六進制高八位time0_L=(uint)TX%256;time1_H=(uint)TZ/256;time1_L=(uint)TZ%256;P1=0x0f;EX0=1;TR0=1;TR1=1;fre_bai=fre/100;fre_shi=fre/10%10;fre_ge=fre%10;write_com(0x80+0x08);write_data(0x30+fre_bai);delay(5);write_data(0x30+fre_shi);delay(5);write_da

22、ta(0x30+fre_ge);delay(5);zkb_shi=zkb/10;zkb_ge=zkb%10;write_com(0x80+0x07+0x40);write_data(0x30+zkb_shi);delay(5);write_data(0x30+zkb_ge);delay(5);4 系統軟件仿真下載KEIL的HEX文件在單片機中。仿真如下圖。圖5初始仿真圖 調節(jié)頻率后仿真圖如圖6示:圖6調頻后仿真圖 再調占空比后仿真如圖7所示:圖7 調占空比后仿真圖5 性能分析5.1定時器中斷分析本次占空比可調的信號發(fā)生器的設計采用了定時器0和定時器1中斷,定時器0中斷用于控制信號的頻率,定時器

23、1用于控制信號的占空比。當調節(jié)輸出信號的占空 比時,信號的頻率就不變;如果調節(jié)信號的頻率,占空比就不變。設fre表示輸出的頻率,zkb表示輸出的占空比,TX為定時器0的計數次數,TZ為定時器 1的計數次數。給TX裝入初值為:TX=(65536-fosc/(12.0*fre);給TZ裝入初值為TZ=(65536-(fosc*zkb) /(12.0*100*fre);當定時器0計數到時,開啟定時器1,定時器1開始計數,并且P1.4口輸出高電平。當經過一個周期中高電平持續(xù)的時間后,定時器1計數時間就到了,程序進 入到定時器1中斷執(zhí)行,然后關掉定時器1,并且輸出低電平。因為定時器0中斷是一直開著的,當

24、經過一個周期中低電平持續(xù)的時間后,定時器0計數又到了,進 入定時器0中斷執(zhí)行,如此循環(huán)。當改變fre或者zkb的時候,就可以相應改變輸出信號的占空比跟頻率。5.2系統性能分析該系統實現占空比跟頻率可調的信號發(fā)生器。占空比的調節(jié)范圍是1%到99%,精度是1%,當達到上限值時,再次增加時,占空比歸于1%,達到下限時,再次 減少,占空比自動歸于99%。頻率的調節(jié)范圍是50HZ到500HZ,精度是10HZ,當達到上限值時,再次增加時,頻率自動歸于50HZ,當達到下限值 時,再次減少時,頻率自動歸于500HZ。5.3誤差分析本設計中主要的參數有設定的頻率值和占空比,示波器上測得的頻率值和占空比,以及LCD顯示的頻率值和占空比,可以看到設定的占空比和頻率值總是和LCD上顯示的一樣,出現誤差的只有示波器上測得的,這是因為雖然設定的頻率值和占

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論