簡易頻率計數(shù)器_第1頁
簡易頻率計數(shù)器_第2頁
簡易頻率計數(shù)器_第3頁
簡易頻率計數(shù)器_第4頁
簡易頻率計數(shù)器_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

摘要在當代電子設(shè)備中運用中,經(jīng)常要測量一個波形的頻率,然后對其進行分析研究。為了測量頻率,就要用到頻率計。在傳統(tǒng)的電子測量儀器中,示波器在進行頻率測量時測量精度較低,誤差較大。但是頻率計能夠快速準確的捕捉到被測信號頻率變化,因此,頻率計擁有非常廣泛的應用范圍。本次課程設(shè)計總結(jié)和回顧了所學的單片機的相關(guān)知識,運用了C51芯片的相關(guān)功能和編程的知識。簡易頻率計數(shù)器系統(tǒng)包括串口下載、復位電路,外部計數(shù)器T0或T1作為外部頻率輸入,信號源提供外部頻率,四位數(shù)碼管顯示結(jié)果等6部分。關(guān)鍵詞:C51芯片,C語言編程,Proteus軟件,keil軟件

一、設(shè)計題目與要求1.1設(shè)計題目簡易頻率計數(shù)器1.2設(shè)計要求:自制一個單片機最小系統(tǒng),包括串口下載、復位電路,采用外部計數(shù)器T0或T1作為外部頻率輸入,外部頻率由信號源提供,測量出來的頻率顯示在四位一體的數(shù)碼管上。二、系統(tǒng)方案設(shè)計2.1功能需求 要求所設(shè)計電路能夠進行串口下載、手動復位、測量外接信號源的頻率,并且測量出的頻率能在四位一體數(shù)碼管上顯示出來。2.2設(shè)計流程實驗過程首先用Proteus軟件進行電路設(shè)計和仿真,利用keil軟件進行編程并檢查程序,然后根據(jù)仿真電路布局把元件焊接在電路板上,并進行通電測試,最終到一個滿足設(shè)計要求的簡易頻率計數(shù)器。(1)根據(jù)設(shè)計要求和已知條件,確定頻率計數(shù)器電路方案,計算和選取單元電路的原件參數(shù),確定系統(tǒng)總體方案的設(shè)計,畫出系統(tǒng)框圖;(2)單元電路設(shè)計、參數(shù)計算和器件的選擇;(3)應用Proteus軟件進行仿真,并分析系統(tǒng)性能;(4)應用Keil軟件進行編程,并檢查程序與仿真相匹配;(5)系統(tǒng)的硬件設(shè)計及制作;(6)硬件調(diào)試及分析:利用函數(shù)信號發(fā)生器,萬用表等實驗室現(xiàn)有工具檢查復位電路,外接晶振電路以及主干電路的各項技術(shù)指標,并與設(shè)計要求值進行比較,若有不同則仔細分析調(diào)試至出現(xiàn)預期實驗結(jié)果;(7)按要求按時撰寫設(shè)計報告。2.3資料查詢與硬件選型89C51是一種高性能低功耗的采用CMOS工藝制造的8位微控制器,它提供下列標準特征:4K字節(jié)的程序存儲器,128字節(jié)的RAM,32條I/O線,2個16位定時器/計數(shù)器,一個5中斷源兩個優(yōu)先級的中斷結(jié)構(gòu),一個雙工的串行口,片上震蕩器和時鐘電路。單片機各引腳功能及引腳圖單片機各引腳功能VCC/GND:供電電源。P0口(P0.0-P0.7):可以被定義為數(shù)據(jù)/地址的低八位,能夠用于外部程序/數(shù)據(jù)存儲器。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口(P1.0-1.7):標準輸入輸出I/O,P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入。在FLASH編程和校驗時,P1口作為第八位地址接收。P2口(P2.0-P2.7):既可用于標準輸入輸出I/O,也可用于外部程序存儲器或數(shù)據(jù)存儲器訪問時的高八位地址。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口(P3.0-P3.7):既可以作標準輸入輸出I/O,也可作為AT89C51的一些特殊功能口。P3口管腳備選功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外部中斷0)P3.3/INT1(外部中斷1)P3.4T0(定/計時器0外部輸入)P3.5T1定/計時器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲器寫選通)P3.7/RD(外部數(shù)據(jù)存儲器讀選通)RST/VPD(9腳):復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG(30腳):當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。/PSEN(29腳):外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP(31腳):當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1(19腳):反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2(18腳):來自反向振蕩器的輸出。(2)單片機引腳圖如圖2-1所示圖2-SEQ圖2_-\*ARABIC1單片機引腳圖四位一體數(shù)碼管各引腳介紹及引腳圖(1)數(shù)碼管結(jié)構(gòu)各引腳介紹數(shù)碼管動態(tài)顯示接口是單片機中應用最為廣泛的一種顯示方式之一。a,b,c,d,e,f,g,dp引腳為段選引腳,分別控制數(shù)碼管8個顯示筆畫及小數(shù)點,顯示動態(tài)驅(qū)動將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,1,2,3,4引腳分別表示四個數(shù)碼管的位選引腳,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,即1、2、3、4引腳控制。(2)數(shù)碼管引腳圖如圖2-2所示圖2-SEQ圖2_-\*ARABIC2數(shù)碼管引腳圖3.硬件選型本次課程設(shè)計所用單片機型號為AT89C51RD,四位一體數(shù)碼管為共陰極型。2.4器件說明本課程設(shè)計所需器件有:89C51RD芯片(與89C51芯片管腳和指令共用,只是內(nèi)部存儲單元有差異)1個,12MHz晶振1個,10uF電容1個,20pF電容2個,10kΩ電阻2個,排阻1個,四位一體共陰極數(shù)碼顯示管1個,按鈕1個,導線若干。三、系統(tǒng)原理圖設(shè)計與仿真簡易頻率計數(shù)器系統(tǒng)設(shè)計主要分為四個部分,分別是外接晶體振蕩電路、復位電路、四位一體數(shù)碼管電路、信號源電路。外接晶體振蕩電路,形成反饋電路,構(gòu)成一個穩(wěn)定的自激振蕩器,位單片機提供時鐘信號;復位電路,用于重置計數(shù)器;四位一體數(shù)碼管,用于顯示頻率計數(shù)結(jié)果;外接信號源,提供待測信號源。這四部分電路都要與51單片機相連接,以下將從各部分電路進行分析設(shè)計。3.1外接晶體振蕩電路單片機的時鐘產(chǎn)生方法有兩種,一種是外部時鐘方式,一種是內(nèi)部時鐘方式,本方案設(shè)計采用內(nèi)部時鐘電路方式。MCS-51片內(nèi)有一個高增益反相放大器,XTAL1、XTAL2引腳分別為該反相放大器的輸入端和輸出端,在芯片的外部通過這兩個引腳跨接石英晶體振蕩器和微調(diào)電容,形成反饋電路,就構(gòu)成了一個穩(wěn)定的自激振蕩器。本次課程設(shè)計需在高速串行通信下實現(xiàn),故選用12MHz的晶振。振蕩電路產(chǎn)生的信號經(jīng)過十二分頻后才作為系統(tǒng)內(nèi)部時鐘信號,即12MHz的晶振得到的內(nèi)部機器周期為1us。微調(diào)電容C1和C2電容值均選用33pF,幫助晶振起振,這樣可擁有較高的頻率穩(wěn)定性。外接晶振電路圖設(shè)計如圖3-1。圖3-SEQ圖3_-\*ARABIC1外接晶體振蕩電路3.2復位電路單片機復位電路的設(shè)計需要用到RST引腳(引腳9)。外部電路在復位引腳RAT端產(chǎn)生大于兩個機器周期的高電平信號,就可進行復位操作。MCS-51單片機的復位方式有很多種,這里采用上電復位+手動復位的方式。復位電路如圖3-2所示。在單片機啟動0.1S后,電容C兩端的電壓持續(xù)充電為5V,這是時候10K電阻兩端的電壓接近于0V,RST處于低電平所以系統(tǒng)正常工作。當按鍵按下的時候,開關(guān)導通,這個時候電容兩端形成了一個回路,電容被短路,所以在按鍵按下的這個過程中,電容開始釋放之前充的電量。隨著時間的推移,電容的電壓在0.1S內(nèi),從5V釋放到變?yōu)榱?.5V,甚至更小。根據(jù)串聯(lián)電路電壓為各處之和,這個時候10K電阻兩端的電壓為3.5V,甚至更大,所以RST引腳又接收到高電平,單片機系統(tǒng)自動復位。本電路電容選為10uF,電阻選為1kΩ,實際電路時選擇阻值更大的阻值,如10k歐姆,可更有效的限制電流。圖3-SEQ圖3_-\*ARABIC2復位電路3.3數(shù)碼管電路四位一體共陰極數(shù)碼管用于顯示頻率計數(shù)結(jié)果。A,B,C,D,E,F,G引腳與普通七段數(shù)碼管的作用相同,dp為小數(shù)點控制,在這次課程設(shè)計中不需要用到,1234為四位位選控制端,分別控制個位、十位、百位、千位。實際情況下四位數(shù)碼是按順序輪流點亮的,在輪流顯示過程中,每位數(shù)碼管的點亮時間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,所以從表面看起來是同時點亮。數(shù)碼管電路如圖3-3所示。本次電路設(shè)計中,用單片機的P0口控制數(shù)碼管的片選端,P2口的低四位控制數(shù)碼管的位選端。當P0口作一般I/O口使用時,由于輸出驅(qū)動電路工作于漏極開路狀態(tài),因此,仿真和焊接過程中P0口都需接上拉電阻,即排阻RP1,其作用是穩(wěn)定高電平。排阻第一位需要外接+5V電源。圖3-SEQ圖3_-\*ARABIC3數(shù)碼管電路3.4外接信號電路外接信號電路如圖3-4所示。本次課程設(shè)計中,設(shè)定定時器0工作在定時方式,定時/計數(shù)器1工作在計數(shù)方式,因此P3.5口作為外部脈沖輸入端。在實際過程中外部信號脈沖由函數(shù)信號發(fā)生器提供。圖3-SEQ圖3_-\*ARABIC4外接信號電路3.5系統(tǒng)仿真結(jié)果1.外部輸入信號為1kHz時,仿真結(jié)果如圖3-5所示。接通電源,計數(shù)頻率顯示為0000,然后跳變?yōu)?000,隨后在1000附近跳動。圖3-SEQ圖3_-\*ARABIC5外部信號為1kHz2.外部輸入信號為500Hz時,當電路正常運行時,按下復位按鈕,仿真結(jié)果如圖3-6所示。可見,此時電路正常復位。圖3-SEQ圖3_-\*ARABIC6按下復位按鈕3.6仿真結(jié)果分析在仿真中發(fā)現(xiàn),無論外部信號頻率為多大,接通電源時,數(shù)碼管顯示均為0000,與按下復位按鈕時的現(xiàn)象一致,即當電路接通時,就會復位;當外部信號頻率改變時,數(shù)碼管顯示數(shù)據(jù)與相應的外接信號頻率基本一致,說明本次仿真成功。分析電路在開機時候復位的原因如下:在電路圖中,電容的的大小是10uf,電阻的大小是1k。所以根據(jù)公式,可以算出電容充電到電源電壓的0.7倍(單片機的電源是5V,所以充電到0.7倍即為3.5V),需要的時間是1K*10UF=0.01S。也就是說在電腦啟動的0.01S內(nèi),電容兩端的電壓時在0~3.5V增加。這個時候1K電阻兩端的電壓為從5~1.5V減少(串聯(lián)電路各處電壓之和為總電壓)。所以在0.01S內(nèi),RST引腳所接收到的電壓是5V~1.5V。在5V正常工作的51單片機中小于1.5V的電壓信號為低電平信號,而大于1.5V的電壓信號為高電平信號。所以在開機0.01S內(nèi),單片機系統(tǒng)自動復位。四、程序設(shè)計4.1程序流程圖開始開始初始化初始化T0計時,T1計數(shù)T1計數(shù)T0定時滿1T1計數(shù)T0定時滿1sT1Count++T1Count++計算脈沖個數(shù)送數(shù)碼管顯示送數(shù)碼管顯示圖4-SEQ圖4_-\*ARABIC1程序流程圖4.2程序說明1.程序預處理,申明頭文件,定義相關(guān)變量#include<reg51.h> bitint_flag;unsignedcharvolatileT0Count;unsignedcharvolatileT1Count;unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//數(shù)碼管顯示段碼值為0、1、2、3、4、5、6、7、8、9unsignedcharcodetemp[]={0xf7,0xfb,0xfd,0xfe};//數(shù)碼管選通1234左到右unsignedlongsum;//1s內(nèi)脈沖的個數(shù)unsignedcharLed[4];//LED顯示緩存2.子函數(shù)聲明(1)延時程序,在程序開始前生命延時程序,以便主函數(shù)調(diào)用voiddelay(unsignedintnum){ while(--num);}//延時程序(2)init函數(shù)聲明,該函數(shù)用于定時器、計數(shù)器置初值。TMOD寄存器是工作方式控制寄存器,用于設(shè)定兩個定時/計數(shù)器的工作方式。各位定義如圖4-2所示。圖4-SEQ圖4_-\*ARABIC2GATE——門控制:GATE=1時,由外中斷請求信號和TR的組合狀態(tài)啟動定時器;GATE=0時,由運行控制位TR啟動。C/T——計數(shù)或定時選擇位:C/T=1時為計數(shù)工作方式;C/T=0時為定時工作方式。M0、M1——工作方式選擇位:M0M1=00,為工作方式0,13位定時器/計數(shù)器工作方式;M0M1=01,為工作方式1,16位定時器/計數(shù)器工作方式;M0M1=10,為工作方式2,常數(shù)自動裝入的8位定時器/計數(shù)器工作方式;M0M1=11,為工作方式3,兩個8位定時器/計數(shù)器工作方式(僅適用于T0,此工作方式下T1停止計數(shù))。本程序中將其設(shè)置為0x51,轉(zhuǎn)化為二進制為01010001,對照TMOD寄存器的位符號,可知,對定時器/計數(shù)器0,設(shè)置為由運行控制位TR啟動,并開啟定時工作方式,工作于工作方式2,16位定時器工作方式。而對定時器/計數(shù)器1,設(shè)置為由運行控制位TR啟動,并開啟計數(shù)工作方式,工作于方式1,16位計數(shù)器工作方式。同時給定時器0、計數(shù)器1置初值。程序如下:

voidinit(void){ TMOD=0x51;//T0定時,T1計數(shù) TH0=(65536-50000)/256; TL0=(65536-50000)%256; TH1=0x00; TL1=0x00;//置定時器、計數(shù)器初始值,周期為50ms}(3)disp函數(shù),用于控制數(shù)碼管的顯示利用for循環(huán)依次將四位數(shù)碼管位選端按個位、十位、百位、千位依次接通,并在每次接通的同時,將字符數(shù)組Led[]的儲存內(nèi)容賦值給P2端口,同時延時1ms。程序如下:voiddisp(void){ unsignedchari; for(i=0;i<4;i++) { P2=temp[i];//片選 P0=table[Led[i]];//取數(shù)據(jù)顯示 delay(100);//延時1毫秒 }主函數(shù)Main函數(shù)是程序的入口,開啟中斷控制總控制和所需的定時器、計數(shù)器。利用while循環(huán)將脈沖數(shù)的千位、百位、十位、個位分離并分別儲存在已定義的字符數(shù)組Led[4]中,同時準備開啟下一秒的計數(shù)工作。其中TCON寄存器既參與中斷控制,又參與定時控制。如圖4-2為各位定義。圖4-SEQ圖4_-\*ARABIC3TF1:定時器1溢出標志位。當定時器1計滿溢出時,由硬件使TF1置“1”,并且申請中斷。進入中斷服務(wù)程序后,由硬件自動清“0”,在查詢方式下用軟件清“0”。TR1:定時器1運行控制位。由軟件清“0”關(guān)閉定時器1。當GATE=1,且/INT1為高電平時,TR1置“1”啟動定時器1;當GATE=0,TR1置“1”啟動定時器1。TF0:定時器0溢出標志。其功能及操作情況同TF1。TR0:定時器0運行控制位。其功能及操作情況同TR1。IE1:外部中斷1請求標志位。IT1:外部中斷1觸發(fā)方式選擇位。當IT1=0,為低電平觸發(fā)方式;當IT1=1,為下降沿觸發(fā)方式。IE0:外部中斷0請求標志位。IT0:外部中斷0觸發(fā)方式選擇位。當IT0=0,為低電平觸發(fā)方式;當IT0=1,為下降沿觸發(fā)方式。程序如下:voidmain(void){ EA=1;//CPU關(guān)中斷 init();//初始化定時器 TR0=1;//啟動定時器0 TR1=1;//啟動計數(shù)器1 ET0=1;//定時器0開中斷 ET1=1;//計數(shù)器1開中斷 while(1) { if(int_flag==1) { int_flag=0; sum=TL1+TH1*256+T1Count*65536;//計算1s脈沖個數(shù) 位數(shù)由低到高TL<TH<T1Count Led[3]=sum%10000/1000;//顯示千位 Led[2]=sum%1000/100;//顯示百位 Led[1]=sum%100/10;//顯示十位 Led[0]=sum%10;//顯示個位 T0Count=0x00; T1Count=0; TH1=0x00; TL1=0x00; TR1=1; } disp(); }}中斷程序(1)定時器0中斷,設(shè)置定時器T0初始值,周期為50ms,當T0Count為20時,即20×50ms=1秒時,計數(shù)器T1停止計數(shù),且T0清零。voidint_t0(void)interrupt1{ TH0=(65536-50000)/256; TL0=(65536-50000)%256; T0Count++; if(T0Count==20) { TR1=0;//計數(shù)器1停止工作 int_flag=1; T0Count=0x00; }}(2)計數(shù)器1中斷,T1Count是TH1的進位,在計數(shù)時T1的高低八位均在變化,每滿65536,向T1Count進一,則由式子sum=TL1+TH1*256+T1Count*65536可計算出一秒內(nèi)脈沖個數(shù)。程序如下:voidint_T1(void)interrupt3{ T1Count++;}4.3程序設(shè)計如下:#include<reg51.h> bitint_flag;unsignedcharvolatileT0Count;unsignedcharvolatileT1Count;unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//數(shù)碼管顯示段碼值為0、1、2、3、4、5、6、7、8、9unsignedcharcodetemp[]={0xf7,0xfb,0xfd,0xfe};//數(shù)碼管選通1234左到右unsignedlongsum;//1s內(nèi)脈沖的個數(shù)unsignedcharLed[4];//LED顯示緩存voiddelay(unsignedintnum){ while(--num);}//延時程序voidinit(void){ TMOD=0x51;//T0定時,T1計數(shù) TH0=(65536-50000)/256; TL0=(65536-50000)%256; TH1=0x00; TL1=0x00;//置定時器、計數(shù)器初始值,周期為50ms}voiddisp(void){ unsignedchari; for(i=0;i<4;i++) { P2=temp[i];//片選 P0=table[Led[i]];//取數(shù)據(jù)顯示 delay(100);//延時1毫秒 }}voidmain(void){ EA=1;//CPU關(guān)中斷 init();//初始化定時器 TR0=1;//啟動定時器0 TR1=1;//啟動計數(shù)器1 ET0=1;//定時器0開中斷 ET1=1;//計數(shù)器1開中斷 while(1) { if(int_flag==1) { int_flag=0; sum=TL1+TH1*256+T1Count*65536;//計算1s脈沖個數(shù) 位數(shù)由低到高TL<TH<T1Count Led[3]=sum%10000/1000;//顯示千位 Led[2]=sum%1000/100;//顯示百位 Led[1]=sum%100/10;//顯示十位 Led[0]=sum%10;//顯示個位 T0Count=0x00; T1Count=0; TH1=0x00; TL1=0x00; TR1=1; } disp(); }}voidint_t0(void)interrupt1{ TH0=(65536-50000)/256; TL0=(65536-50000)%256; T0Count++; if(T0Count==20) { TR1=0;//計數(shù)器1停止工作 int_flag=1; T0Count=0x00; }}voidint_T1(void)interrupt3{ T1Count++;}五、系統(tǒng)調(diào)試5.1軟件測試1.外部輸入信號為100Hz時,仿真結(jié)果如圖5-1所示。接通電源,計數(shù)頻率顯示為0000,然后跳變?yōu)?00,隨后在100和99之間跳動。圖5-SEQ圖5_-\*ARABIC1外部信號為100Hz2.外部輸入信號為500Hz時,仿真結(jié)果如圖5-2所示。接通電源,計數(shù)頻率顯示為0000,然后跳變?yōu)?00,隨后在500附近跳動。圖5-SEQ圖5_-\*ARABIC2外部信號為500Hz3.在調(diào)試過程初期,復位電路電阻所用阻值為10kΩ,但仿真時復位電路不能正常進行。仿真如圖5-3所示。圖5-SEQ圖5_-\*ARABIC3R1為10kΩ5.2硬件測試在軟件調(diào)試時,復位電路電阻為10KΩ時,復位電路不能正常運行,但按照正常情況,不該出現(xiàn)此現(xiàn)象,故推斷軟件仿真有誤,在焊接硬件時電阻使用10KΩ進行測試。1.如圖5-4所示,在外接信號頻率為1kHz時,數(shù)碼管顯示在1000左右跳動。圖5-4顯示為1080,硬件頻率計數(shù)測試成功。圖5-SEQ圖5_-\*ARABIC42.如圖5-5所示,為按下復位按鈕后的測試圖,此時數(shù)碼管顯示為0000,即電路復位。硬件復位測試成功。圖5-SEQ圖5_-\*ARABIC5六、總結(jié)與體會本次課程設(shè)計的課題是簡易頻率計數(shù)器,簡易頻率計數(shù)器是計算機、各種通訊設(shè)備和音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的測量儀器。在這次課程設(shè)計中,我收獲頗多。在初期復習準備的過程中鞏固了單片機方面的知識,另外,在后期查找相關(guān)知識時開闊了視野,學到了很多課本上學不到的知識。比如,在這個過程中,我又重新復習了《C語言程序設(shè)計》中的相關(guān)編程知識,較為熟練地掌握了C語言的編寫,重新翻閱了《單片機原理及應用》,溫故而知新,能夠更加熟練地掌握了單片機的相關(guān)知識;另外,我自行學習了仿真軟件Proteus、編程軟件Keil和串口燒入器的使用方法。雖然課程設(shè)計成功完成,但是在此過程中出現(xiàn)了大大小小的問題。比如,課程設(shè)計剛開始時,由于單片機知識的遺忘和自己基礎(chǔ)知識不牢固,在分析設(shè)計電路時略顯吃力,但是經(jīng)過兩天的準備后,就能夠很好的完成電路的設(shè)計。然而,在編程時,由于C語言所學的時間太久,知識遺忘比較大,在編寫程序時遇到了很大的困難。但是我們沒有放棄,最終,在湯老師的耐心幫助和我們隊友同學之間互相幫助下,經(jīng)過一番努力,最終成功編寫出了程序。除了在知識上收獲了很多之外,我在與隊友的相互交流學習時,與人交流的能力有所提升。而且,更加意識到團隊合作的重要性。在此次課程設(shè)計中,我想感謝我的隊友和耐心負責的湯老師,也感謝學校給我們提供如此難得的機會鍛煉自己。在以后的學習中,我一定會更加努力。

附錄一元件清單序號器件名稱型號數(shù)量12345678單片機芯片電阻電容電容晶振按鈕排阻數(shù)碼管AT89C5110kΩ10uF20pF12MHz-A472GF5461AH1個2個1個2個1個1個1個1個附錄二程序清單程序如下:#include<reg51.h> bitint_flag;unsignedcharvolatileT0Count;unsignedcharvolatileT1Count;unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//數(shù)碼管顯示段碼值為0、1、2、3、4、5、6、7、8、9unsignedcharcodetemp[]={0xf7,0xfb,0xfd,0xfe};//數(shù)碼管選通1234左到右unsignedlongsum;//1s內(nèi)脈沖的個數(shù)unsignedcharLed[4];//LED顯示緩存voiddelay(unsignedintnum){ while(--num);}//延時程序voidinit(void){ TMOD=0x51;//T0定時,T1計數(shù) TH0=(65536-50000)/256; TL0=(65536-50000)%256; TH1=0x00; TL1=0x00;//置定時器、計數(shù)器初始值,周期為5

溫馨提示

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

評論

0/150

提交評論