版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 單片機(jī)課程設(shè)計(jì)</b></p><p><b> 實(shí)訓(xùn)報(bào)告</b></p><p> 題目 基于51單計(jì)時計(jì)數(shù)器系統(tǒng)設(shè)計(jì)</p><p><b> 姓 名: </b></p><p> 所在學(xué)院: 電子與電氣工程學(xué)院
2、 </p><p> 所學(xué)專業(yè):__ _電氣工程及其自動化 </p><p> 班 級: 08電氣學(xué)2班 </p><p> 學(xué) 號: 20082926113 </p><p> 完成時間: 2011年7月23日 </p><p> 單片機(jī)應(yīng)用
3、系統(tǒng)設(shè)計(jì)報(bào)告</p><p> 一 設(shè)計(jì)題目…………………………………………………………….3</p><p><b> 二 設(shè)計(jì)目的</b></p><p> 2.1設(shè)計(jì)目的要求……………………………………………………3</p><p> 2.2系統(tǒng)設(shè)計(jì)意義……………………………………………………3</p
4、><p><b> 三 系統(tǒng)硬件圖</b></p><p> 3.1系統(tǒng)硬件電路原理圖………………………………………………4</p><p> 3.2各主要芯片及相應(yīng)組成電路………………………………………5</p><p> 四 流程圖………………………………………………………………8</p><
5、p><b> 五 系統(tǒng)說明與分析</b></p><p> 5.1設(shè)計(jì)步驟…………………………………………………………9</p><p> 5.2單片機(jī)簡要介紹…………………………………………………10</p><p> 六 源程序…………………………………………………………………11</p><p>
6、七 總結(jié)……………………………………………………………………14</p><p> 八 參考文獻(xiàn)………………………………………………………………15</p><p> 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)報(bào)告</p><p><b> 一、設(shè)計(jì)題目</b></p><p> 計(jì)時/計(jì)數(shù)器系統(tǒng)設(shè)計(jì)</p><p&
7、gt; 設(shè)計(jì)說明:用80C51單片機(jī)定時/計(jì)數(shù)器和LED數(shù)碼管顯示計(jì)時時間。要求某鍵按下去開始計(jì)時,再按一次停止計(jì)時;另一鍵按下去則將時間清零。同時,在計(jì)數(shù)/定時到100時實(shí)現(xiàn)二極管的發(fā)光和蜂鳴器的報(bào)警 ,計(jì)數(shù)到10000顯示器清零。</p><p><b> 二、設(shè)計(jì)目的</b></p><p> 該單片機(jī)最小應(yīng)用系統(tǒng)設(shè)計(jì)目的及要求如下:</p>
8、<p><b> 2.1設(shè)計(jì)目的要求</b></p><p> 1采用單片機(jī)為核心器件,構(gòu)成數(shù)字式電子秒表系統(tǒng)。</p><p> 2用四位一體的數(shù)碼管分別顯示時間/次數(shù)(格式要求為XXXX)</p><p> 3通過按鍵實(shí)現(xiàn)人機(jī)對話功能:要求某鍵按下去開始計(jì)時,再按另一鍵停止計(jì)時;第三鍵按下去則將時間/次數(shù)清零。 <
9、/p><p> 4.掌握單片機(jī)匯編編程技術(shù)中的設(shè)計(jì)和分析方法;</p><p> 5.學(xué)會使用并熟練掌握電路繪制軟件Protel99SE(或DXP);</p><p> 6.掌握電路圖繪制及PCB圖布線技巧。 </p><p> 2.2 系統(tǒng)設(shè)計(jì)意義</p><p> 1、在系統(tǒng)掌握單片機(jī)相應(yīng)基礎(chǔ)知識的前提下,熟
10、悉單片機(jī)最小應(yīng)用系統(tǒng)的設(shè)計(jì)方法及系統(tǒng)設(shè)計(jì)的基本步驟。</p><p> 2、完成所需單片機(jī)最小應(yīng)用系統(tǒng)原理圖設(shè)計(jì)繪制的基礎(chǔ)上完成系統(tǒng)的電路圖設(shè)計(jì)。</p><p> 3、完成系統(tǒng)所需的硬件設(shè)計(jì)制作,在提高實(shí)際動手能力的基礎(chǔ)上進(jìn)一步鞏固所學(xué)知識。</p><p> 4、進(jìn)行題目要求功能基礎(chǔ)上的軟件程序編程,會用相應(yīng)軟件進(jìn)行程序調(diào)試和測試工作。</p>
11、<p> 5、用AT89C51,DAC0832設(shè)計(jì)出題目所要求的波形實(shí)現(xiàn)循環(huán)顯示,并針對實(shí)際設(shè)計(jì)過程中軟、硬件設(shè)計(jì)方面出現(xiàn)的問題提出相應(yīng)解決辦法。</p><p> 6、通過單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)將所學(xué)的知識融會貫通,鍛煉獨(dú)立設(shè)計(jì)、制作和調(diào)試單片機(jī)應(yīng)用系統(tǒng)的能力;領(lǐng)會單片機(jī)應(yīng)用系統(tǒng)的軟、硬件調(diào)試方法和系統(tǒng)的研制開發(fā)過程,為進(jìn)一步的科研實(shí)踐活動打下堅(jiān)實(shí)的基礎(chǔ)。</p><p>
12、;<b> 三、系統(tǒng)硬件圖</b></p><p> 圖1 系統(tǒng)硬件電路原理圖</p><p> 3.1系統(tǒng)的硬件電路原理圖</p><p> 系統(tǒng)的硬件電路圖如圖1所示,從圖中可以看到該電路主要有時鐘電路、復(fù)位電路顯示電路等組成。電源電路有設(shè)備提供,在原理圖上不在說明,本文簡單介紹電源電路的組成原理。</p><p
13、> 3.2 各主要芯片及相應(yīng)組成電路</p><p> 1)8051單片機(jī):</p><p><b> 2) 時鐘電路</b></p><p> 該電路主要有電容C1、C2和晶振Y1組成。其組成原理圖如圖2所示,圖中XTAL1為芯片內(nèi)部振蕩電路的輸入端,XTAL2為芯片內(nèi)部振蕩電路的輸出端。</p><p>
14、;<b> 圖2 時鐘電路</b></p><p><b> 4)復(fù)位電路</b></p><p> 單片機(jī)通常采用的復(fù)位方式有上電復(fù)位和按鈕復(fù)位兩種。本次設(shè)計(jì)用的復(fù)位方式是按鈕電平復(fù)位。其原理圖如圖3所示。當(dāng)按下按鈕SW時,電容對R6迅速放電,RESET端變?yōu)楦唠娖?,RESET松開后,電容通過電阻R6進(jìn)行充電,RESET端恢復(fù)為低電平。&
15、lt;/p><p><b> 圖3 復(fù)位電路</b></p><p> 繪制的相應(yīng)PCB硬件電路圖如下:</p><p><b> 四 流程圖</b></p><p><b> 略 </b></p><p><b> 五、系統(tǒng)說明與分析
16、</b></p><p><b> 5.1設(shè)計(jì)步驟</b></p><p> 1. 理解設(shè)計(jì)任務(wù)要求(通過閱讀有關(guān)資料及調(diào)查研究);</p><p> 2. 對總體方案進(jìn)行分析、論證;</p><p> 3. 系統(tǒng)硬件電路的設(shè)計(jì);</p><p> 4. 系統(tǒng)控制軟件的設(shè)計(jì);
17、</p><p> 1) 以功能明確、相互界面能清晰分割的軟件程序?yàn)榛A(chǔ),確定主程序流程框圖;</p><p> 2) 以主程序流程框圖為基礎(chǔ),確定各模塊程序算法及實(shí)現(xiàn)的功能,進(jìn)一步確定各模塊程序流程框圖;</p><p> 3) 根據(jù)軟件流程框圖,用AT89C51匯編語言編寫主程序和延時子程序;</p><p> 4) 系統(tǒng)
18、軟、硬件的調(diào)試;</p><p> 5) 編寫課程設(shè)計(jì)說明書;</p><p><b> 6) 答辯驗(yàn)收。</b></p><p> 5.2 8051單片機(jī)簡要介紹</p><p> 8051單片機(jī)包含中央處理器(CPU)、存儲器(程序存儲器ROM和數(shù)據(jù)存儲器RAM)、定時/計(jì)數(shù)器、并行I/O接口(P1、P
19、2、P3、P0共4個8位口)、一個雙工串行接口和5個中斷源等幾大單元及數(shù)據(jù)總線、地址總線和控制總線三大總線等結(jié)構(gòu)組成。</p><p> MCS-51系列單片機(jī)中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對這些引腳的功能加以說明:</p&
20、gt;<p> MCS-51系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖如圖11所示。</p><p> 圖11 MCS-51系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖</p><p> · Pin20: 接地腳。 </p><p> · Pin40: 正電源腳,正常工作或?qū)ζ瑑?nèi)EPROM燒入程序時,接+5V
21、電源。 </p><p> · Pin19: 時鐘XTAL1腳,片內(nèi)振蕩電路的輸入端。 </p><p> · Pin18: 時鐘XTAL2腳,片內(nèi)振蕩電路的輸出端。 </p><p> 8051的時鐘有兩種方式,一種是片內(nèi)時鐘振蕩方式,但需在18和19腳外接石英晶體(2
22、-12MHz)和振蕩電容,振蕩電容的值一般取10p-30p。另外一種是外部時鐘方式,即將XTAL1接地,外部時鐘信號從XTAL2腳輸入。 </p><p> · 輸入輸出(I/O)引腳:</p><p> Pin39-Pin32為P0.0-P0.7輸入輸出腳,Pin1-Pin1為P1.0-P1.7輸入輸出腳,Pin21-Pin28為P2.0-P
23、2.7輸入輸出腳,Pin10-Pin17為P3.0-P3.7輸入輸出腳。</p><p> · Pin9: RESET/V pd 復(fù)位信號復(fù)用腳。當(dāng)8051通電,時鐘電路開始工作,在RESET引腳上出現(xiàn)24個時鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。R
24、ESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開始執(zhí)行程序。然而,初始復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài)。</p><p> · Pin30: ALE/ 當(dāng)訪問外部程序器時,ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問內(nèi)部程序存儲器時,ALE端將有一個1/6時鐘頻率的正脈沖信號,這個信號可以用于識別單片機(jī)是否工作,也可以當(dāng)作一個時鐘向外輸
25、出。更有一個特點(diǎn),當(dāng)訪問外部程序存儲器,ALE會跳過一個脈沖。 </p><p> 如果單片機(jī)是EPROM,在編程其間, 將用于輸入編程脈沖。 </p><p> · Pin29: 當(dāng)訪問外部程序存儲器時,此腳輸出負(fù)脈沖選通信號,PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并
26、執(zhí)行。</p><p> · Pin31: EA/V pp 程序存儲器的內(nèi)外部選通線,8051和8751單片機(jī),內(nèi)置有4kB的程序存儲器,當(dāng)EA為高電平并且程序地址小于4kB時,讀取內(nèi)部程序存儲器指令數(shù)據(jù),而超過4kB地址則讀取外部指令數(shù)據(jù)。如EA為低電平,則不管地址大小,一律讀取外部程序存儲器指令。顯然,對內(nèi)部無程序存儲器的8031,EA端必須接地。
27、; ·在對8751的EPROM進(jìn)行編程時,EA/Vpp 腳還需加上用于編程的電壓。</p><p><b> 六、源程序</b></p><p> C語言源程序編寫如下:</p><p> #include<reg51.h></p><p> #include<intrin
28、s.h></p><p> #define uint unsigned int </p><p> #define uchar unsigned char</p><p> uchar code table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};</p><p&
29、gt; uchar DispBuf[10]={0,1,2,3,4,5,6,7};</p><p> sbit P1_0=P1^0;</p><p> sbit P1_1=P1^1;</p><p> sbit P1_3=P1^3;</p><p> sbit P1_4=P1^4;</p><p> sbit
30、 P2_1=P2^1;</p><p> sbit P2_2=P2^2;</p><p> sbit P2_4=P2^4;</p><p> sbit P2_5=P2^5;</p><p> sbit K3=P3^3;</p><p> sbit K2=P3^6;</p><p>
31、sbit K1=P3^7;</p><p> uint i=0,a=0,b=0,c=0,d=0,e=0,f=0;</p><p> void delay(uint z)</p><p><b> {</b></p><p> for(z=0;z<1000;z++);</p><p>
32、<b> }</b></p><p> void main()</p><p><b> {</b></p><p><b> P1=0x00;</b></p><p><b> P3=0xff;</b></p><p>
33、 TMOD=0x01;//計(jì)數(shù)定時器初始化</p><p><b> TH0=0xd8;</b></p><p><b> TL0=0xf0;</b></p><p> EA=1;i=0;b=0;</p><p><b> ET0=1;</b></p>
34、;<p><b> TR0=0;</b></p><p> while(1) </p><p><b> { </b></p><p> if(K3 != 1) // K3鍵按下啟動計(jì)數(shù)器 </p><p><b> {
35、</b></p><p> delay(9); // 延時10ms去抖 </p><p> if(K3 != 1) // 確定是有鍵按下 </p><p><b> { </b></p><p> while(K1 != 1); // 等待鍵松開 &l
36、t;/p><p> TR0 = 1; // 按鍵處理 </p><p><b> } </b></p><p><b> } </b></p><p> } </p><p><b> }&l
37、t;/b></p><p> void time_int(void) interrupt 1</p><p><b> { </b></p><p><b> TH0=0xd0;</b></p><p><b> TL0=0xf0;</b></p>
38、<p> if(K2 != 1) // K2鍵按下暫停計(jì)數(shù)器 </p><p><b> { </b></p><p> delay(10); // 延時10ms去抖 </p><p> if(K2 != 1) // 確定是有鍵按下 </p&g
39、t;<p><b> { </b></p><p> while(K2 != 1); // 等待鍵松開 </p><p> TR0 = 0; // 按鍵處理 </p><p> while(K1 !=0) // K1鍵按下暫停計(jì)數(shù)器 </p><p><b>
40、{</b></p><p> e=4; </p><p> if(e!=0) //計(jì)數(shù)器停止時顯示當(dāng)前值</p><p><b> {</b></p><p> P1_4=0;e--;</p><p> P0=DispBuf[3];delay(10) ;
41、</p><p> P1=0xff;e--;P1_3=0;</p><p> P0=DispBuf[2];delay(10) ;</p><p> P1=0xff;e--;</p><p><b> P1_1=0;</b></p><p> P0=DispBuf[1];delay(10)
42、 ;</p><p> P1=0xff;e--;P1_0=0;</p><p> P0=DispBuf[0];delay(10) ;</p><p><b> P1=0xff;</b></p><p> }</p><p> } TR0 = 1;<
43、/p><p><b> } </b></p><p><b> } </b></p><p><b> i++;</b></p><p> if (i == 10) </p><p><b> {</b></
44、p><p><b> i = 0;</b></p><p><b> c++;</b></p><p> if(c==10)P2_1=0;//當(dāng)計(jì)數(shù)/計(jì)時到10時二極管發(fā)光</p><p> if(c==100)P2_2=0;//當(dāng)計(jì)數(shù)/計(jì)時到100時另一個二極管發(fā)光</p>
45、<p> if(c==100)P2_5=0;//當(dāng)計(jì)數(shù)/計(jì)時到100時二極管發(fā)光蜂鳴器報(bào)警 </p><p> //數(shù)碼管 顯示程序 </p><p> DispBuf[0]= table[c / 1000];</p><p> DispBuf[1]= table[((c%1000)/100)]
46、;</p><p> DispBuf[2]= table[(((c%1000)%100)/10)]; </p><p> DispBuf[3]= table[(((c%1000)%100)%10)];</p><p><b> }</b></p><p> e=4; </p>&l
47、t;p><b> if(e!=0)</b></p><p> {P1_4=0;e--;</p><p> P0=DispBuf[e];delay(10) ;</p><p> P1=0xff;e--;P1_3=0;</p><p> P0=DispBuf[e];delay(10) ;</p>
48、<p> P1=0xff;e--;</p><p><b> P1_1=0;</b></p><p> P0=DispBuf[e];delay(10) ;</p><p> P1=0xff;e--;P1_0=0;</p><p> P0=DispBuf[e];delay(10) ;</p&g
49、t;<p><b> P1=0xff;</b></p><p><b> } </b></p><p><b> }</b></p><p><b> 七、總結(jié)</b></p><p> 1、在設(shè)計(jì)系統(tǒng)過程中,學(xué)會用Protel D
50、XP畫原理圖和PCB圖。通過查閱相關(guān)的書籍,設(shè)計(jì)了電路原理圖,經(jīng)過仿真和反復(fù)的修改電路中元器件的參數(shù)得到了可行的電路圖。</p><p> 2、根據(jù)自己設(shè)計(jì)的PCB圖開始電路板的制做,自己親自動手制作電路板,在制板的過程中出現(xiàn)了較多問題,如腐蝕不徹底、PCB中焊盤設(shè)計(jì)過小、信號線的尺寸偏小等問題,又重新的做了一個電路板。然后用萬用表檢測需要元器件的質(zhì)量,進(jìn)行元器件的焊接,整個過程中大大的提高了動手能力。<
51、/p><p> 3、接下來是最關(guān)鍵的步驟——電路板的調(diào)試,軟硬件相結(jié)合,開始將程序燒到硬件電路中,剛開始工作比較正常,達(dá)到了題目的要求,當(dāng)程序運(yùn)行幾個循環(huán)后,發(fā)現(xiàn)開始出現(xiàn)錯誤。輸出的波形比較紊亂,然后進(jìn)行故障的排查,檢查硬件和軟件都沒有問題,再進(jìn)行一次調(diào)試還是不行,通過查閱數(shù)模轉(zhuǎn)換芯片的資料,發(fā)現(xiàn)問題的所在,自己將片選信號接到地上可能導(dǎo)致一直工作狀態(tài),出現(xiàn)程序紊亂的現(xiàn)象。將片選信號接到單片機(jī)的一個管腳上,通過程序來
52、控制數(shù)模轉(zhuǎn)換芯片的工作狀態(tài)。經(jīng)過再一次的調(diào)試,程序運(yùn)行比較穩(wěn)定。運(yùn)算放大器輸出正常的波形。</p><p> 4、經(jīng)過學(xué)習(xí)單片機(jī)接口實(shí)驗(yàn)這門課,使自己對單片機(jī)有了更深入的了解,提高了自己的動手能力。很感謝在整個課程學(xué)習(xí)中老師和師兄們的指導(dǎo),以及同班同學(xué)的熱心幫助。</p><p><b> 八、參考文獻(xiàn)</b></p><p> [1]
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)---基于51單計(jì)時計(jì)數(shù)器系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)----手動計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)---倒數(shù)計(jì)數(shù)器
- 單片機(jī)計(jì)數(shù)器課程設(shè)計(jì)報(bào)告
- 倒數(shù)計(jì)數(shù)器單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)——籃球計(jì)時計(jì)分器
- 單片機(jī)課程設(shè)計(jì)—籃球計(jì)時計(jì)分器
- 單片機(jī)課程設(shè)計(jì)——籃球計(jì)時計(jì)分器
- 單片機(jī)課程設(shè)計(jì)—籃球計(jì)時計(jì)分器
- 單片機(jī)籃球計(jì)時計(jì)分器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)----語言報(bào)數(shù)計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)(語言報(bào)數(shù)計(jì)數(shù)器)
- 基于單片機(jī)的頻率計(jì)數(shù)器課程設(shè)計(jì)
- 單片機(jī)c51籃球計(jì)時計(jì)分器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)——籃球計(jì)時計(jì)分器 - 副本
- 單片機(jī)課程設(shè)計(jì)報(bào)告-籃球計(jì)時計(jì)分器
- 《單片機(jī)原理與應(yīng)用》課程設(shè)計(jì)---可編程定時計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)--簡易頻率計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)外部脈沖計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)報(bào)告(零件計(jì)數(shù)器)
評論
0/150
提交評論