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

下載本文檔

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

文檔簡介

1、單片機原理與接口技術課程設計基于at89s51單片機的手動計數(shù)器設計報告 目 錄一、手動計數(shù)器課程設計功能描述21.1 單片機概述21.2 芯片簡介2二、硬件分析設計及硬件連線圖52.1 硬件分析設計52.2 硬件連線圖6三、程序設計內容及框圖63.1 程序設計內容63.2 程序框圖7四、程序源代碼清單7五、上機調試運行結果及分析9六、課程設計的經驗教訓總結9 參考文獻10一、手動計數(shù)器課程設計功能描述1.1 單片機概述 單片機微型計算機是微型計算機的一個重要分支,也是頗具生命力的機種。單片機微型計算機簡稱單片機,特別適用于控制領域,故又稱為微控制器。 通常,單片機由單塊集成電路芯片構成,內部

2、包含有計算機的基本功能部件:中央處理器、存儲器和i/o接口電路等。因此,單片機只需要和適當?shù)能浖巴獠吭O備相結合,便可成為一個單片機控制系統(tǒng)。 單片機經過1、2、3、3代的發(fā)展,目前單片機正朝著高性能和多品種方向發(fā)展,它們的cpu功能在增強,內部資源在增多,引角的多功能化,以及低電壓底功耗。1.2 msc-51芯片簡介1.2.1 mcs-51單片機內部結構8051是mcs-51系列單片機的典型產品,我們以這一代表性的機型作為課程設計的實驗板。 8051單片機包含中央處理器、程序存儲器(rom)、數(shù)據(jù)存儲器(ram)、定時/計數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制

3、總線等三大總線,現(xiàn)在我們分別加以說明:中央處理器:中央處理器(cpu)是整個單片機的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進制數(shù)據(jù)或代碼,cpu負責控制、指揮和調度整個單元系統(tǒng)協(xié)調的工作,完成運算和控制輸入輸出功能等操作。數(shù)據(jù)存儲器(ram)8051內部有128個8位用戶數(shù)據(jù)存儲單元和128個專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的ram只有128個,可存放讀寫的數(shù)據(jù),運算的中間結果或用戶定義的字型表。程序存儲器(rom):8051共有4096個8位掩膜rom,用于存放用戶程序,原始數(shù)據(jù)或表格。定時/

4、計數(shù)器(rom):8051有兩個16位的可編程定時/計數(shù)器,以實現(xiàn)定時或計數(shù)產生中斷用于控制程序轉向。并行輸入輸出(i/o)口:8051共有4組8位i/o口(p0、 p1、p2或p3),用于對外部數(shù)據(jù)的傳輸。全雙工串行口:8051內置一個全雙工串行通信口,用于與其它設備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當同步移位器使用。中斷系統(tǒng):8051具備較完善的中斷功能,有兩個外中斷、兩個定時/計數(shù)器中斷和一個串行中斷,可滿足不同的控制要求,并具有2級的優(yōu)先級別選擇。時鐘電路:8051內置最高頻率達12mhz的時鐘電路,用于產生整個單片機運行的脈沖時序,但8051單片機需外置振蕩電

5、容。單片機的結構有兩種類型,一種是程序存儲器和數(shù)據(jù)存儲器分開的形式,即哈佛(harvard)結構,另一種是采用通用計算機廣泛使用的程序存儲器與數(shù)據(jù)存儲器合二為一的結構,即普林斯頓(princeton)結構。intel的mcs-51系列單片機采用的是哈佛結構的形式,而后續(xù)產品16位的mcs-96系列單片機則采用普林斯頓結構。下圖是mcs-51系列單片機的內部結構示意圖。 1.2.2 mcs-51的引腳說明:mcs-51系列單片機中的8031、8051及8751均采用40pin封裝的雙列直接dip結構,右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32

6、個i/o口,中斷口線與p3口線復用?,F(xiàn)在我們對這些引腳的功能加以說明:mcs-51的引腳說明:mcs-51系列單片機中的8031、8051及8751均采用40pin封裝的雙列直接dip結構,右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個i/o口,中斷口線與p3口線復用?,F(xiàn)在我們對這些引腳的功能加以說明:pin9:reset/vpd復位信號復用腳,當8051通電,時鐘電路開始工作,在reset引腳上出現(xiàn)24個時鐘周期以上的高電平,系統(tǒng)即初始復位。初始化后,程序計數(shù)器pc指向0000h,p0-p3輸出口全部為高電平,堆棧指針寫入07h,其它專用寄

7、存器被清“0”。reset由高電平下降為低電平后,系統(tǒng)即從0000h地址開始執(zhí)行程序。然而,初始復位不改變ram(包括工作寄存器r0-r7)的狀態(tài),8051的初始態(tài)。8051的復位方式可以是自動復位,也可以是手動復位,見下圖。此外,reset/vpd還是一復用腳,vcc掉電其間,此腳可接上備用電源,以保證單片機內部ram的數(shù)據(jù)不丟失。pin30:ale/當訪問外部程序器時,ale(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問內部程序存儲器時,ale端將有一個1/6時鐘頻率的正脈沖信號,這個信號可以用于識別單片機是否工作,也可以當作一個時鐘向外輸出。更有一個特點,當訪問外部程序存儲器,ale會

8、跳過一個脈沖。如果單片機是eprom,在編程其間,將用于輸入編程脈沖。pin29:當訪問外部程序存儲器時,此腳輸出負脈沖選通信號,pc的16位地址數(shù)據(jù)將出現(xiàn)在p0和p2口上,外部程序存儲器則把指令數(shù)據(jù)放到p0口上,由cpu讀入并執(zhí)行。pin31:ea/vpp程序存儲器的內外部選通線,8051和8751單片機,內置有4kb的程序存儲器,當ea為高電平并且程序地址小于4kb時,讀取內部程序存儲器指令數(shù)據(jù),而超過4kb地址則讀取外部指令數(shù)據(jù)。如ea為低電平,則不管地址大小,一律讀取外部程序存儲器指令。顯然,對內部無程序存儲器的8031,ea端必須接地。在編程時,ea/vpp腳還需加上21v的編程電壓

9、。二、課程設計分析設計及硬件接線圖2.1 分析設計利用at89s51單片機來制作一個手動計數(shù)器,在at89s51單片機的p3.7管腳接一個輕觸開關,作為手動計數(shù)的按鈕;用單片機的p0.0p0.7接一個共陽數(shù)碼管,作為0099計數(shù)的個位數(shù)顯示;用單片機的p1.0p1.7接一個共陽數(shù)碼管,作為0099計數(shù)的十位數(shù)顯示;p2.7口接一個發(fā)光二極管作為計數(shù)按鈕顯示,p2.7口接一個發(fā)光二極管作為數(shù)據(jù)溢出標志。硬件電路圖如下圖所示。2.2 硬件接線圖三、程序設計內容及框圖3.1程序設計內容 (1)單片機對按鍵的識別的過程處理 (2)單片機對正確識別的按鍵進行計數(shù),同時p2.7口驅動發(fā)光二極管進行閃爍顯示

10、,計數(shù)滿時,p2.0口驅動發(fā)光二極管顯示溢出,又從零開始計數(shù); (3)單片機對計的數(shù)值要進行數(shù)碼顯示,計得的數(shù)是十進數(shù),含有十位和個位,我們要把十位和個位拆開分別送出這樣的十位和個位數(shù)值到對應的數(shù)碼管上顯示。如何拆開十位和個位我們可以把所計得的數(shù)值對10求余,即可個位數(shù)字,對10整除,即可得到十位數(shù)字了。 (4)通過查表方式,分別顯示出個位和十位數(shù)字。 3.2程序框圖 四、程序源代碼清單#include unsigned char code table=0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90; /共陽極數(shù)碼管顯示代碼unsigned

11、 char count; unsigned int z;void delay(int z) /延時程序 11unsigned char i,j; for(i=z;i0;i-) for(j=496;j0;j-); void main(void) count=0; /初始狀態(tài)數(shù)碼管顯示00 p1=tablecount/10; p0=tablecount%10; while(1) if(p3_7=0) /讀取p3.7口按鈕狀態(tài) delay(10); /調用延時,防抖動 if(p3_7=0) /確定按鈕按下 p2_7=0; /p2.7口發(fā)光二極管閃爍 delay(20); p2_7=1; count+

12、; /計數(shù)累加 if(count=100) /檢查溢出 p2_0=0; /p2.0口二極管閃爍delay(2000);p2_0=1; count=0; /計數(shù)歸零 p1=tablecount/10; /數(shù)碼管顯示十位數(shù)字 p0=tablecount%10; /數(shù)碼管顯示個位數(shù)字 while(p3_7=0); 五、上機調試運行結果及分析 最初開始調試時,發(fā)現(xiàn)數(shù)碼管個位數(shù)字與十位數(shù)字顛倒,經分析發(fā)現(xiàn)將p1口和p0口的輸出顛倒了;改正后,再次調試,功能演示正常,但個人感覺計數(shù)按鈕顯示二極管和溢出顯示二極管閃爍過于短暫,經反復修改延時時間,終于得到較滿意的顯示效果。六、課程設計的經驗教訓總結通過這次課程設計,加強了我的分析、思考、解決問題的能力。同時在課程設計的過程中,通過對實驗板的觀察和軟件程序的不斷改進,深刻體會到了單片機的工作原理和程序開發(fā)的步驟過程。實踐是檢驗真理的唯一標準,完成課程設計的基礎上,我還嘗試了其他的實驗項目,如交通燈設計和報警器設計等。越學習越發(fā)現(xiàn)單片機的無窮魅力,這種興趣比上理論課時強烈得多。但是,由于課設時間比較短暫,沒有能夠嘗試更多的功能,頗為遺憾。同時,本次課設

溫馨提示

  • 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

提交評論