秒信號(hào)發(fā)生器_第1頁
秒信號(hào)發(fā)生器_第2頁
秒信號(hào)發(fā)生器_第3頁
秒信號(hào)發(fā)生器_第4頁
秒信號(hào)發(fā)生器_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

一、硬件電路設(shè)計(jì)復(fù)位電路復(fù)位是使單片機(jī)處于某種確定的初始狀態(tài)。單片機(jī)工作從復(fù)位開始。在單片機(jī)RST引腳引入高電平并保持2個(gè)機(jī)器周期,單片機(jī)就執(zhí)行復(fù)位操作。復(fù)位操作有兩種基本方式:一種是上電復(fù)位,另一種是上電與按鍵均有效的復(fù)位。如圖1所示為復(fù)位電路:圖SEQ圖\*ARABIC1復(fù)位電路開機(jī)瞬間RST獲得高電平,隨著電解電容C3的充電,RST引腳的高電平將逐漸下降。若該高電平能保持足夠2個(gè)機(jī)器周期,就可以實(shí)現(xiàn)復(fù)位操作。根據(jù)經(jīng)典電路選擇參數(shù),選取C3=10μF,R1=10KΩ。晶振電路單片機(jī)的時(shí)鐘信號(hào)通常有兩種產(chǎn)生方式:一是內(nèi)部時(shí)鐘方式,二是外部時(shí)鐘方式。內(nèi)部時(shí)鐘方式是利用單片機(jī)內(nèi)部的振蕩電路產(chǎn)生時(shí)鐘信號(hào)。外部時(shí)鐘方式是把外部已有的時(shí)鐘信號(hào)引入到單片機(jī)內(nèi)。本次設(shè)計(jì)中,采用的是12MHz晶振,配上30pF的電容,構(gòu)成諧振,這樣有助于輸出穩(wěn)定的波形。圖2所示為晶振電路:圖SEQ圖\*ARABIC2晶振電路在單片機(jī)的XTAL1和XTAL2引腳外接石英晶體(簡(jiǎn)稱晶振),作為單片機(jī)內(nèi)部振蕩電路的負(fù)載,構(gòu)成自激振蕩器,可在單片機(jī)內(nèi)部產(chǎn)生時(shí)鐘脈沖信號(hào)。C1和C2的作用是穩(wěn)定振蕩頻率和快速起振。根據(jù)經(jīng)典電路選擇參數(shù),本電路選用晶振12MHz,C1=C2=33PF。其中晶振周期(或外部時(shí)鐘信號(hào)周期)為最小的時(shí)序單位。(3)串口調(diào)試電路程序設(shè)計(jì)程序思路說明:只需要4個(gè)按鍵。關(guān)于頻率和占空比的確定,對(duì)于12M晶振,輸出頻率為1KHZ,這樣定時(shí)中斷次數(shù)設(shè)定為10,即10MS中斷一次,則TH0=FF,TL0=F6;由于設(shè)定中斷時(shí)間為10ms,這樣可以設(shè)**定占空比可從1-99%變化。即10ms*100=1s#include<regx51.h>#defineucharunsignedchar#defineuintunsignedintuchartimer0_tick,ZKB=1;//timer0_tick計(jì)數(shù),ZKB占空比uchari=0,n=0,temp=0;codeseven_seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//1,2,3,4,5,6,7,8,9codescan[2]={0xfd,0xfe};ucharcounter[2]={0,0};sbitAN1=P3^2;//調(diào)整個(gè)位sbitAN2=P3^3;//調(diào)整十位sbitAN3=P3^4;//啟動(dòng)按鍵sbitAN4=P3^5;//確認(rèn)按鍵voiddelay(uintz)//軟件延時(shí)函數(shù){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}staticvoidtimer0_isr(void)interrupt1using0//中斷函數(shù){TR0=0;TL0=(65536-10000)%256;TH0=(65536-10000)/256;TR0=1;if(ZKB>99)ZKB=1;if(ZKB<1)ZKB=99;counter[0]=ZKB%10;counter[1]=ZKB/10;n++;if(n==100){n=0;i++;if(i==2)i=0;P0=seven_seg[counter[i]];P2=scan[i];}timer0_tick++;if(timer0_tick++==100){timer0_tick=0;}if(AN2==0){delay(100);if(AN2==0){temp=1;counter[0]++;if(counter[0]==10){counter[0]=0;}}}if(AN1==0){delay(100);if(AN1==0){temp=1;counter[1]++;if(counter[1]==10){counter[1]=0;}}}ZKB=counter[0]+counter[1]*10;if(AN4==0){delay(5);if(AN4==0)temp=0;}if(temp==1)P3_7=0;//P3_7為脈沖輸出引腳else{if(timer0_tick<=ZKB)/*當(dāng)小于占空比值時(shí)輸出低電平,高于時(shí)是高電平,從而實(shí)現(xiàn)占空比的調(diào)整*/{P3_7=1;}else{P3_7=0;}}}staticvoidtimer0_initialize(void)//中斷初始化{EA=0;timer0_tick=0;TR0=0;TMOD=0x01;TL0=(65536-10000)%256;TH0=(65536-10000)/256;PT0=0;ET0=1;TR0=1;EA=1;}voidmain(void){STAR:delay(100);if(AN3!=0)gotoSTAR;//按鍵3啟動(dòng)脈沖timer0_initialize();while(1);}//按按鍵3啟動(dòng)脈沖器,初始設(shè)置占空比為1%,按鍵1調(diào)整十位,//按鍵2調(diào)整個(gè)位,一旦調(diào)整,輸出為0,必須按確認(rèn)鍵確認(rèn),//輸出正確脈沖.可以占空比1-99%任意調(diào)節(jié)。學(xué)習(xí)單片機(jī)的體會(huì)通過在單片機(jī)原理課程的學(xué)習(xí)我簡(jiǎn)單總結(jié)了幾點(diǎn)心得和體會(huì):第一:萬事開頭難,要勇敢的邁出第一步,不要總找借口說沒有學(xué)習(xí)過就總推脫。凡事都有第一步可以先可簡(jiǎn)單的來,然后可以逐步的向深層次學(xué)習(xí)??梢詮慕?xiàng)目開始,然后可以找一個(gè)簡(jiǎn)單的小程序先把它敲進(jìn)單片機(jī)內(nèi)然他運(yùn)行起來,感覺一下單片機(jī)的運(yùn)行,讓自己了解單片機(jī)整個(gè)運(yùn)行。第二:對(duì)于知識(shí)點(diǎn),學(xué)過的要掌握牢固,對(duì)于沒有學(xué)的和暫時(shí)用不到的先不用學(xué)習(xí)。比如:小燈得點(diǎn)亮就沒有用到中斷可以先不用看。這樣可以避免知識(shí)過多記不住的麻煩。對(duì)于程序這里的知識(shí)點(diǎn)不能只停留在理論層次上,一定要結(jié)合著程序進(jìn)行學(xué)習(xí)這樣才能掌握的很牢靠,當(dāng)用到哪里的知識(shí)點(diǎn)不記得了可以去看書,對(duì)于用不到的可以不去看。第三:程序不要只是看別人得,一定要自己寫過才是自己的。開始不懂可以參考別人的,看看每一句代表著什么意思,能夠?qū)崿F(xiàn)什么現(xiàn)象。明白之后自己再重新寫一遍,你會(huì)發(fā)現(xiàn)看別人的能懂到自己寫的時(shí)候很困難。當(dāng)你自己能寫出來的時(shí)候說明你真懂了。第四:一定要學(xué)會(huì)程序調(diào)試的方法。有時(shí)候把程序?qū)懲炅巳缓筮\(yùn)行時(shí)不能實(shí)現(xiàn)理想的現(xiàn)象。這時(shí)有人就暈了不知該怎么辦,然后就去問別人。當(dāng)別人找出問題出在哪里時(shí)就會(huì)恍然大悟。其實(shí)當(dāng)遇到問題一定要自己嘗試著解決,不能遇到問題就去問別人。自己一定要掌握解決問的方法和思路。第五:在學(xué)習(xí)初期看別人的代碼,學(xué)習(xí)別人的思路這個(gè)很有用。通過看別人的代碼特別是有多年編程經(jīng)驗(yàn)的人的程序,可以迅速提高自己的編程水平。也可以結(jié)合著別人的手法,與自己的想法結(jié)合在一起寫出更好的程序。但是切記將學(xué)習(xí)變成抄襲,不能認(rèn)為抄襲別人的你就學(xué)會(huì)了,這樣只能使你退步。第六:面對(duì)一個(gè)新項(xiàng)目時(shí),自己一定要多想想,不要急著去看別人是怎么寫的。有的人看到新項(xiàng)目時(shí)就去找別人的然后抄一小段,自己在寫幾句,放在一起完成任務(wù),雖然省時(shí)間但不利你的學(xué)習(xí)。當(dāng)你遇到一新項(xiàng)目時(shí)你應(yīng)該先想一下程序的構(gòu)架,想想如何來完成。然后自己動(dòng)手去寫,當(dāng)你遇到實(shí)在是沒辦法解決的問題時(shí)再去請(qǐng)教別人,看他是怎么處理的,學(xué)習(xí)他的方法。這樣起碼你自己想過了,有自己的思路不會(huì)受到別人的影響,這樣更容易提高自己。在單片機(jī)的學(xué)習(xí)開始時(shí)感覺很吃力,在不斷的學(xué)習(xí)過程中慢慢的對(duì)單片

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論