版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 單片機原理與接口技術(shù)課程設(shè)計</p><p> 基于AT89S51單片機的手動計數(shù)器</p><p><b> 設(shè)計報告</b></p><p><b> 目 錄</b></p><p> 一、手動計數(shù)器課程設(shè)計功能描述………………………………2</p>
2、;<p> 單片機概述………………………………………………………………2</p><p> 芯片簡介…………………………………………………………………2</p><p> 二、硬件分析設(shè)計及硬件連線圖…………………………………5</p><p> 2.1 硬件分析設(shè)計……………………………………………………………5</p><
3、;p> 2.2 硬件連線圖………………………………………………………………6</p><p> 三、程序設(shè)計內(nèi)容及框圖…………………………………………6</p><p> 3.1 程序設(shè)計內(nèi)容……………………………………………………………6</p><p> 3.2 程序框圖…………………………………………………………………7</p>&
4、lt;p> 四、程序源代碼清單………………………………………………7</p><p> 五、上機調(diào)試運行結(jié)果及分析……………………………………9</p><p> 六、課程設(shè)計的經(jīng)驗教訓(xùn)總結(jié)……………………………………9</p><p> 參考文獻…………………………………………………………10</p><p> 一、手動計數(shù)
5、器課程設(shè)計功能描述</p><p><b> 1.1 單片機概述</b></p><p> 單片機微型計算機是微型計算機的一個重要分支,也是頗具生命力的機種。單片機微型計算機簡稱單片機,特別適用于控制領(lǐng)域,故又稱為微控制器。</p><p> 通常,單片機由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計算機的基本功能部件:中央處理器、存儲器和I/O接
6、口電路等。因此,單片機只需要和適當?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個單片機控制系統(tǒng)。</p><p> 單片機經(jīng)過1、2、3、3代的發(fā)展,目前單片機正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強,內(nèi)部資源在增多,引角的多功能化,以及低電壓底功耗。</p><p> 1.2 MSC-51芯片簡介</p><p> 1.2.1 MCS-51單片機內(nèi)部結(jié)構(gòu)
7、</p><p> 8051是MCS-51系列單片機的典型產(chǎn)品,我們以這一代表性的機型作為課程設(shè)計的實驗板。 8051單片機包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時/計數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說明:</p><p><b> ·
8、中央處理器:</b></p><p> 中央處理器(CPU)是整個單片機的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進制數(shù)據(jù)或代碼,CPU負責控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工作,完成運算和控制輸入輸出功能等操作。</p><p> ·數(shù)據(jù)存儲器(RAM)</p><p> 8051內(nèi)部有128個8位用戶數(shù)據(jù)存儲單元和128個專用寄
9、存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個,可存放讀寫的數(shù)據(jù),運算的中間結(jié)果或用戶定義的字型表。</p><p> ·程序存儲器(ROM):</p><p> 8051共有4096個8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。</p><p> &
10、#183;定時/計數(shù)器(ROM):</p><p> 8051有兩個16位的可編程定時/計數(shù)器,以實現(xiàn)定時或計數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。</p><p> ·并行輸入輸出(I/O)口:</p><p> 8051共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數(shù)據(jù)的傳輸。</p><p><b> &
11、#183;全雙工串行口:</b></p><p> 8051內(nèi)置一個全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當同步移位器使用。</p><p><b> ·中斷系統(tǒng):</b></p><p> 8051具備較完善的中斷功能,有兩個外中斷、兩個定時/計數(shù)器中斷和一個串行
12、中斷,可滿足不同的控制要求,并具有2級的優(yōu)先級別選擇。</p><p><b> ·時鐘電路:</b></p><p> 8051內(nèi)置最高頻率達12MHz的時鐘電路,用于產(chǎn)生整個單片機運行的脈沖時序,但8051單片機需外置振蕩電容。</p><p> 單片機的結(jié)構(gòu)有兩種類型,一種是程序存儲器和數(shù)據(jù)存儲器分開的形式,即哈佛(Har
13、vard)結(jié)構(gòu),另一種是采用通用計算機廣泛使用的程序存儲器與數(shù)據(jù)存儲器合二為一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié)構(gòu)。INTEL的MCS-51系列單片機采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品16位的MCS-96系列單片機則采用普林斯頓結(jié)構(gòu)。</p><p> 下圖是MCS-51系列單片機的內(nèi)部結(jié)構(gòu)示意圖。</p><p> 1.2.2 MCS-51的引腳說明:</p>
14、<p> MCS-51系列單片機中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對這些引腳的功能加以說明:</p><p> MCS-51的引腳說明:</p><p> MCS-51系列單片機中的8031、80
15、51及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對這些引腳的功能加以說明:</p><p> ·Pin9:RESET/Vpd復(fù)位信號復(fù)用腳,當8051通電,時鐘電路開始工作,在RESET引腳上出現(xiàn)24個時鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計
16、數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開始執(zhí)行程序。然而,初始復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),8051的初始態(tài)。</p><p> 8051的復(fù)位方式可以是自動復(fù)位,也可以是手動復(fù)位,見下圖。此外,RESET/Vpd還是一復(fù)用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片
17、機內(nèi)部RAM的數(shù)據(jù)不丟失。</p><p> ·Pin30:ALE/當訪問外部程序器時,ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問內(nèi)部程序存儲器時,ALE端將有一個1/6時鐘頻率的正脈沖信號,這個信號可以用于識別單片機是否工作,也可以當作一個時鐘向外輸出。更有一個特點,當訪問外部程序存儲器,ALE會跳過一個脈沖。</p><p> 如果單片機是EPROM,在編程其
18、間,將用于輸入編程脈沖。</p><p> ·Pin29:當訪問外部程序存儲器時,此腳輸出負脈沖選通信號,PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。</p><p> ·Pin31:EA/Vpp程序存儲器的內(nèi)外部選通線,8051和8751單片機,內(nèi)置有4kB的程序存儲器,當EA為高電平并且程序地址小于4k
19、B時,讀取內(nèi)部程序存儲器指令數(shù)據(jù),而超過4kB地址則讀取外部指令數(shù)據(jù)。如EA為低電平,則不管地址大小,一律讀取外部程序存儲器指令。顯然,對內(nèi)部無程序存儲器的8031,EA端必須接地。</p><p> 在編程時,EA/Vpp腳還需加上21V的編程電壓。</p><p> 二、課程設(shè)計分析設(shè)計及硬件接線圖</p><p><b> 2.1 分析設(shè)計&l
20、t;/b></p><p> 利用AT89S51單片機來制作一個手動計數(shù)器,在AT89S51單片機的P3.7管腳接一個輕觸開關(guān),作為手動計數(shù)的按鈕;用單片機的P0.0-P0.7接一個共陽數(shù)碼管,作為00-99計數(shù)的個位數(shù)顯示;用單片機的P1.0-P1.7接一個共陽數(shù)碼管,作為00-99計數(shù)的十位數(shù)顯示;P2.7口接一個發(fā)光二極管作為計數(shù)按鈕顯示,P2.7口接一個發(fā)光二極管作為數(shù)據(jù)溢出標志。硬件電路圖如下圖
21、所示。</p><p><b> 2.2 硬件接線圖</b></p><p> 三、程序設(shè)計內(nèi)容及框圖</p><p> 3.1程序設(shè)計內(nèi)容 </p><p> (1).單片機對按鍵的識別的過程處理 </p><p> (2).單片機對正確識別的按鍵進行計數(shù),同時P2.7口驅(qū)動發(fā)光二極管
22、進行閃爍顯示,計數(shù)滿時,P2.0口驅(qū)動發(fā)光二極管顯示溢出,又從零開始計數(shù); </p><p> (3).單片機對計的數(shù)值要進行數(shù)碼顯示,計得的數(shù)是十進數(shù),含有十位和個位,我們要把十位和個位拆開分別送出這樣的十位和個位數(shù)值到對應(yīng)的數(shù)碼管上顯示。如何拆開十位和個位我們可以把所計得的數(shù)值對10求余,即可個位數(shù)字,對10整除,即可得到十位數(shù)字了。 </p><p> (
23、4).通過查表方式,分別顯示出個位和十位數(shù)字。 </p><p><b> 3.2程序框圖 </b></p><p><b> 四、程序源代碼清單</b></p><p> #include <AT89X51.H> </p><p> unsigned char code tab
24、le[]={0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90}; //共陽極數(shù)碼管顯示代碼</p><p> unsigned char Count; </p><p> unsigned int z;</p><p> void delay(int z)
25、 //延時程序</p><p><b> { </b></p><p> unsigned char i,j; </p><p> for(i=z;i>0;i--) </p><p> for(j=496;j>0;j--); </p><p><b> } <
26、/b></p><p> void main(void) </p><p><b> { </b></p><p> Count=0; //初始狀態(tài)數(shù)碼管顯示00</p><p> P1=table[Count/10]; </p><p> P0
27、=table[Count%10]; </p><p><b> while(1) </b></p><p><b> { </b></p><p> if(P3_7==0) //讀取P3.7口按鈕狀態(tài)</p><p><b> { </b><
28、;/p><p> delay(10); //調(diào)用延時,防抖動</p><p> if(P3_7==0) //確定按鈕按下</p><p><b> { </b></p><p> P2_7=0; //P2.7口發(fā)光二極管閃爍</p><p&
29、gt; delay(20);</p><p><b> P2_7=1;</b></p><p> Count++; //計數(shù)累加</p><p> if(Count==100) //檢查溢出</p><p><b> { </b></p><p>
30、 P2_0=0; //P2.0口二極管閃爍</p><p> delay(2000);</p><p><b> P2_0=1;</b></p><p> Count=0; //計數(shù)歸零</p><p><b> } </b></p>
31、<p> P1=table[Count/10]; //數(shù)碼管顯示十位數(shù)字</p><p> P0=table[Count%10]; //數(shù)碼管顯示個位數(shù)字</p><p> while(P3_7==0); </p><p><b> } </b></p><p><b> } <
32、/b></p><p><b> } </b></p><p><b> }</b></p><p> 五、上機調(diào)試運行結(jié)果及分析</p><p> 最初開始調(diào)試時,發(fā)現(xiàn)數(shù)碼管個位數(shù)字與十位數(shù)字顛倒,經(jīng)分析發(fā)現(xiàn)將P1口和P0口的輸出顛倒了;改正后,再次調(diào)試,功能演示正常,但個人感覺計數(shù)
33、按鈕顯示二極管和溢出顯示二極管閃爍過于短暫,經(jīng)反復(fù)修改延時時間,終于得到較滿意的顯示效果。</p><p> 六、課程設(shè)計的經(jīng)驗教訓(xùn)總結(jié)</p><p> 通過這次課程設(shè)計,加強了我的分析、思考、解決問題的能力。同時在課程設(shè)計的過程中,通過對實驗板的觀察和軟件程序的不斷改進,深刻體會到了單片機的工作原理和程序開發(fā)的步驟過程。實踐是檢驗真理的唯一標準,完成課程設(shè)計的基礎(chǔ)上,我還嘗試了其他
34、的實驗項目,如交通燈設(shè)計和報警器設(shè)計等。越學(xué)習越發(fā)現(xiàn)單片機的無窮魅力,這種興趣比上理論課時強烈得多。但是,由于課設(shè)時間比較短暫,沒有能夠嘗試更多的功能,頗為遺憾。同時,本次課設(shè),本想加入溢出聲音報警,但實驗室沒有接線,無法連接蜂鳴器,也是一個遺憾。希望學(xué)校重視學(xué)生實驗室,給予實驗室應(yīng)有的硬件設(shè)備,讓學(xué)生更多的嘗試實踐體驗學(xué)科的實用性。最后感謝指導(dǎo)老師的無私幫助!</p><p><b> 參考文獻&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設(shè)計---倒數(shù)計數(shù)器
- 單片機計數(shù)器課程設(shè)計報告
- 倒數(shù)計數(shù)器單片機課程設(shè)計
- 單片機課程設(shè)計-00-99手動計數(shù)器設(shè)計
- 單片機課程設(shè)計----語言報數(shù)計數(shù)器
- 單片機課程設(shè)計(語言報數(shù)計數(shù)器)
- 單片機課程設(shè)計--簡易頻率計數(shù)器
- 單片機課程設(shè)計外部脈沖計數(shù)器
- 單片機課程設(shè)計報告(零件計數(shù)器)
- 基于單片機的頻率計數(shù)器課程設(shè)計
- 單片機課程設(shè)計00-99加計數(shù)器
- 單片機課程設(shè)計---基于51單計時計數(shù)器系統(tǒng)設(shè)計
- 單片機課程設(shè)計---基于51單計時計數(shù)器系統(tǒng)設(shè)計
- 單片機課程設(shè)計--00-99加計數(shù)器程序設(shè)計
- 單片機課程設(shè)計帶有l(wèi)cd顯示的音樂倒數(shù)計數(shù)器
- 基于單片機lcd顯示的音樂倒數(shù)計數(shù)器課程設(shè)計論文
- 傳感器課程設(shè)計---基于單片機的工業(yè)產(chǎn)品自動計數(shù)器
- 單片機計數(shù)器實驗報告
- 《單片機原理與應(yīng)用》課程設(shè)計---可編程定時計數(shù)器
- 基于單片機的紅外自動計數(shù)器設(shè)計
評論
0/150
提交評論