單片機課程設計_簡易頻率計數(shù)器_第1頁
單片機課程設計_簡易頻率計數(shù)器_第2頁
單片機課程設計_簡易頻率計數(shù)器_第3頁
單片機課程設計_簡易頻率計數(shù)器_第4頁
單片機課程設計_簡易頻率計數(shù)器_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機課程設計簡易頻率計數(shù)器1.實驗目的1 .要求學生具有制作調試單片機最小系統(tǒng)及外設的能力,能夠掌握單 片機內部資源的使用。2 .熟練掌握焊接技術的基礎上,能熟練使用單片機軟件開發(fā)環(huán)境KeilC51編程調試,并使用STC ISP調試工具采用串口下載方式聯(lián)調制作 的單片機最小系統(tǒng)。二、實驗要求自制一個單片機最小系統(tǒng),包括串口下載、復位電路,采用外部計數(shù)器T0或T1作為外部頻率輸入,外部頻率由信號源提供,計算 出來的頻率顯示在四位一體的數(shù)碼管上。三、實驗器材89C54RD芯片(與89c51芯片管腳和指令共用,只是內部存儲單元有差異)一個,晶振一個,電容3個,電阻3個,12個10千歐姆電阻,4位一

2、體共陰數(shù)碼顯示管一個,按鈕1個,導線若干。四、實驗原理1 .芯片介紹AT89C5遑一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPERO時Falsh Programmable andErasable Read Only Memory) 的低電壓,高性能 CMOS8微處理器,俗稱單片機。該器件采 用ATME高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。 由于將多功能8位CP曲口閃爍存儲器組合在單個芯片中,ATMELAT89C5他一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。1 .主要特性: 與 MCS-51兼容 4K字節(jié)可編程閃爍存儲器壽命

3、:io。寫/擦循環(huán)數(shù)據(jù)保留時間:1。年 全靜態(tài)工作:0Hz-24Hz 三級程序存儲器鎖定 128*8位內部 RAM 32可編程I/O線 兩個16位定時器/計數(shù)器 5個中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內振蕩器和時鐘電路2 .管腳說明:修,。卜“ J(口卜“制T門 (TO) imt Aft»P 1 4PI TXTAL2xtal t GHOT t N> 5 ,P 1 0P 1 1P1 7P 1 3vccPO.O lADOl FO. 1 (ADI) f 2 |AOJ! PO 3 <AO3 ro * MD4) PO 1 4AU5) FO « 4AOt)

4、P0 T (AD7) E Ar”, ALE /Pff OG ”N fj r *,卜 PJ « 4具 14, 門 5 1AO> P2 4 ,*,7 P孑 3 4 A 1 I > PJ M (AlOj P2,|A») *孑0 MBJAT89C51VCC供電電壓。GND接地。P0口: P0口為一個8位漏級開路雙向I/O 口,每腳可吸收8TTL門電流。當P1 口的 管腳第一次寫1時,被定義為高阻輸入。P0夠用于外部程序數(shù)據(jù)存儲器,它可以被 定義為數(shù)據(jù)/地址的第八位。在 FIASH編程時,P0 口作為原碼輸入口,當 FIASH進行 校驗時,P喻出原碼,此時P0外部必須被拉

5、高。P1 口: P1 口是一個內部提供上拉電阻的 8位雙向I/O 口,P1 口緩沖器能接收輸出 4TTL門電流。P1 口管腳寫入1后,被內部上拉為高,可用作輸入,P1 口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASHY程和校驗時,P1 口作為第八位地址接收。P2口: P2口為一個內部上拉電阻的 8位雙向I/O 口,P2口緩沖器可接收,輸出 4 個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并 因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2 口當用于外部程序存儲器或 16位地址外部數(shù)據(jù)存儲器進行存取時,P2

6、口輸出地址的高八位。在給出地址“ 1”時,它利用內部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器 進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASHY程和校驗時接收高八位地址信號和控制信號。P3口: P3口管腳是8個帶內部上拉電阻的雙向I/O 口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部 下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為 AT89C51的一些特殊功能口,如下表所示:口管腳備選功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0( 外部中斷0)P3.3

7、/INT1( 外部中斷1)P3.4 T0(記時器0外部輸入)P3.5 T1(記時器1外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)P3 口同時為閃爍編程和編程校驗接收一些控制信號。RST復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位 字節(jié)。在FLASHY程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一

8、個ALE脈沖。如想禁止 ALE的輸出可在 SFR8EH&址上置0。此時,ALE只有在執(zhí)行 MOVXMOVC 指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器 周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器 (0000H-FFFFH),不 管是否有內部程序存儲器。注意加密方式 1時,/EA將內部鎖定為 RESET當/EA端保 持高電平時,此間內部程序存儲器。在 FLAS

9、H編程期間,此引腳也用于施加 12V編程 電源(VPP)。XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。XTAL2來自反向振蕩器的輸出。3 .振蕩器特性:XTAL休口 XTAL盼別為反向放大器的輸入和輸出。該反向放大器可以配置為片內 振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL而不接。有余輸入至內部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。4 .芯片擦除:整個PERO除列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持 ALE 管腳處于低電平10ms來完成。在芯片擦操作中,代碼陣列全被寫“1

10、”且在任何非空 存儲字節(jié)被重復編程以前,該操作必須被執(zhí)行。此外,AT89C5破有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下, CPU亭止工作。但 RAM定時器,計數(shù)器,串 口和中斷系統(tǒng)仍在工作。在掉電模式下,保存 RAM勺內容并且凍結振蕩器,禁止所用 其他芯片功能,直到下一個硬件復位為止。2、最小系統(tǒng)電路的組成由電源、復位及振蕩電路、四位一體數(shù)碼管顯示電路、按鈕及LED 電路。復位及振蕩電路復位電路由按鍵復位和上電復位兩部分組成。電阻給電容充電,電容的電壓緩慢上升直到vcc,至Uvcc時芯片復位腳近似低電平,于是芯 片復位,接近vcc時芯片復位腳近高電

11、平,于是芯片停止復位,復位 完成。AT89C5K列單片機為高電平復位,通常在復位引腳RSTt連接一 個電容到VCC再連接一個電阻到GND由此形成一個R流放電回路保 證單片機在上電時RST?上有足夠時間的高電平進行復位,隨后回歸 到低電平進入正常工作狀態(tài),這個電阻和電容的典型值為10討口 10uF。按鍵復位就是在復位電容上并聯(lián)一個開關, 當開關按下時電容被 放電、RST也被拉到高電平,而且由于電容的充電,會保持一段時間 的高電平來使單片機復位。使用 6MHz的晶體振蕩器作為振蕩源,由 于單片機內部帶有振蕩電路,所以外部只要連接一個晶振和兩個電容 即可,電容容量一般在15pF至50pF之間。如下圖

12、所示C2川T啟LiXTAL2RST配.XUPSEN ALE EAATS9C51數(shù)碼管顯示電路利用單片機的T0,T1計數(shù)定時器功能,來完成對輸入信號進行率計數(shù),計數(shù)結果通過4位動態(tài)數(shù)碼管顯示出來,能對 。到9999Hz的方波信號頻率進行準確計數(shù)。如下圖所示3、軟件設計根據(jù)設計項目所需功能,我們先進行初始化,在待機狀態(tài) 下,采集頻率。然后檢測是否有按鈕按下,若按鈕按下,則數(shù) 碼管顯示所采集的頻率,再按下鍵0時則不顯示。系統(tǒng)實現(xiàn)所有功能,其程序框圖如圖所示。開始初始化TQ定時J1計數(shù)TO定時1秒滿計算脈沖個數(shù)T1 CDU111 一送數(shù)碼管顯示4、設計源程序#include<reg51.h>

13、;bit int_flag; /定時器0,1S到標志位unsigned char volatile TOCount; II 定時器 0 的中斷次數(shù)unsigned char volatile TICount;unsigned char code table口 II 定時器 1 的中斷次數(shù) =0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; II 顯示段碼值為123456789數(shù)碼unsigned char code temp口 = 0xfe,0xfd,0xfb,0xf7; II管選通unsigned long sum;/1S內脈沖總個數(shù)uns

14、igned char Led4; /Ledvoid delay(unsigned int num )while(-num);/顯示緩存/軟件延時定時器0初始化void init(void)TMOD=0x51;/T1 定時器0工作于方式1,定時器1計數(shù)TH0=(65536-50000)/256; 定時 50msTL0=(65536-50000)%256;TH1=0x00;TL1=0x00;void disp(void) /數(shù)碼顯示unsigned char i;for(i=0;i<4;i+)P2=tempi;/ 片選P0=tableLedi; 取數(shù)據(jù)顯示delay(100);/ 延時 1

15、毫秒 void main(void)EA=1;/開總中斷init();/初始化定時器TR0=1;/定時器開始工作TR1=1;ET1=1;/開T0中斷ET0=1;while(1)if(int_flag=1)int_flag=0;sum=TL1+TH1*256+T1Count*65536;/ 計算 1S 內脈沖個數(shù)/將數(shù)據(jù)格式化,轉化成可顯示的 BC照Led3=sum%10000/1000; 顯示千位Led2=sum%1000/100; 顯示百位Led1=sum%100/10;/ 顯示十位Led0=sum%10;/ 顯示個位T0Count=0x00;T1Count=0;TH1=0x00;TL1=0

16、x00;TR1 = 1;disp();void int_t0(void) interrupt 1TH0=(65535-50000)/256;TL0=(65536-50000)%256;T0Count+;if(T0Count=20)TR1=0;int_flag=1;T0Count=0x00;void int_T1(void) interrupt 3T1Count+;5、設計仿真圖輸入方波頻率為4216Hz的仿真情況;輸入正弦波頻率為1324HZ的仿真情況;6、實物圖(未上電)六、實驗結果分析在實驗電路板驗收的時候,對于給定的輸入信號,數(shù)碼管顯示的 頻率示數(shù)與實際信號源給定的頻率有大約 20HZ勺偏差,產生偏差的原 因可能有:1.電路電容的選取不恰當;2.焊接電路板的時候,因為操 作不恰當,某些焊點的焊接不到位;3.實際器件與仿真所用到的的元 件有差別。七、心得體會通過這

溫馨提示

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

評論

0/150

提交評論