單片機(jī)實(shí)習(xí)報(bào)告_第1頁
單片機(jī)實(shí)習(xí)報(bào)告_第2頁
單片機(jī)實(shí)習(xí)報(bào)告_第3頁
單片機(jī)實(shí)習(xí)報(bào)告_第4頁
單片機(jī)實(shí)習(xí)報(bào)告_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

單片機(jī)原理與應(yīng)用課程設(shè)計(jì)題目:計(jì)數(shù)器數(shù)碼管綜合設(shè)計(jì)專業(yè)班級:電自化1201班學(xué)號:2835姓名:邱勝朋11月12日目錄摘要及核心詞 11.1重要問題 11.2解決思路 12.介紹 22.1系統(tǒng)特性及其功效 22.2設(shè)計(jì)的具體方案 23.系統(tǒng)設(shè)計(jì) 23.1硬件電路 33.1.1使用的重要器件 43.1.2重要部分器件闡明 53.2軟件設(shè)計(jì) 73.2.1程序流程圖 73.2.2程序設(shè)計(jì)內(nèi)容 93.2.3實(shí)驗(yàn)程序及部分注釋 94.實(shí)驗(yàn)成果 145.實(shí)習(xí)總結(jié) 15參考文獻(xiàn) 15附錄 151.摘要及核心詞1.1重要解決問題隨著當(dāng)今社會(huì)的快速發(fā)展,大部分的自動(dòng)化生產(chǎn)過程中的流水線的自動(dòng)裝箱或自動(dòng)裝配都需要用的自動(dòng)計(jì)數(shù),而如何對流水線上的產(chǎn)品需要進(jìn)行實(shí)時(shí)的、有效率的、精確地自動(dòng)技術(shù)成為廣泛關(guān)注的問題。傳統(tǒng)的機(jī)械式或電子式計(jì)數(shù)器比較復(fù)雜,元器件數(shù)量較多,故障率較高,維修比較困難,并且設(shè)立不方便,功效不易更改,合用范疇較窄。1.2解決思路基于單片機(jī)的自動(dòng)計(jì)數(shù)器已經(jīng)成為比較成熟的產(chǎn)品,應(yīng)用于多個(gè)需要計(jì)數(shù)的場合,含有計(jì)數(shù)精確,操作方便,顯示精確計(jì)數(shù)功效形式多樣化的特點(diǎn),被廣泛的應(yīng)用,能夠?qū)崿F(xiàn)數(shù)據(jù)統(tǒng)計(jì)的收集,有效的節(jié)省勞動(dòng)力高質(zhì)量地完畢任務(wù)?;趩纹瑱C(jī)構(gòu)成的產(chǎn)品自動(dòng)計(jì)數(shù)器研究的重要內(nèi)容涉及:如果構(gòu)成檢測電路、STC89C51單片機(jī)用何種方式對外部計(jì)數(shù)脈沖進(jìn)行計(jì)數(shù)顯示控制、LED顯示驅(qū)動(dòng)模塊的選擇、STC89C51單片機(jī)的擴(kuò)展。在這個(gè)設(shè)計(jì)中重要需要解決的問題便是如何提高單片機(jī)的抗干擾能力以及穩(wěn)定性。本文以單片機(jī)為核心的技術(shù)設(shè)計(jì),敘述了系統(tǒng)的原理、硬件電路和軟件設(shè)計(jì)有關(guān)內(nèi)容。核心詞:單片機(jī),數(shù)碼管,計(jì)數(shù)顯示,流水線2.介紹2.1系統(tǒng)特性及其功效本次實(shí)習(xí)設(shè)計(jì)以STC89C51系列單片機(jī)開發(fā)板為基礎(chǔ)開發(fā)環(huán)境,編制程序?qū)崿F(xiàn)飲料包裝流水線從0~36的飲料瓶數(shù)字實(shí)時(shí)顯示。設(shè)計(jì)具體思路是:綜合單片機(jī)開發(fā)板按鍵模塊和led數(shù)碼管模塊,使用按鍵的閉合模擬流水線上檢測裝置檢測到的計(jì)數(shù)脈沖,送入STC89C51單片機(jī)控制單元,通過對單片機(jī)編程實(shí)現(xiàn)計(jì)數(shù)然后由led數(shù)碼管顯示,實(shí)現(xiàn)實(shí)時(shí)計(jì)數(shù)功效。能夠?qū)崿F(xiàn)的功效有:按下啟動(dòng)鍵,能夠統(tǒng)計(jì)顯示流水線啟動(dòng)開始后的物件數(shù)量,計(jì)數(shù)值到36自動(dòng)清零,再次按下啟動(dòng)重新計(jì)數(shù);在計(jì)數(shù)過程中按下清零鍵能夠清零并停止計(jì)數(shù),再次按下開始重新計(jì)數(shù);計(jì)數(shù)過程中按下暫停鍵暫停計(jì)數(shù)并顯示現(xiàn)在數(shù)值,按下啟動(dòng)鍵繼續(xù)計(jì)數(shù);若按下請零鍵能夠清零并停止計(jì)數(shù);2.2設(shè)計(jì)方案選擇基于STC89C51單片機(jī)的流水線計(jì)數(shù)器設(shè)計(jì)能夠采用下列方案:2.2.1單片機(jī)計(jì)數(shù)器的方式控制寄存器TMOD中的GATE位=1時(shí),能夠很方便的進(jìn)行INT0引腳的外部輸入信號的時(shí)間間隔測量。通過p1.7口模擬外部計(jì)數(shù)脈沖,通過外部連線將P1.7與P3.4相連接進(jìn)行計(jì)數(shù)功效,這種辦法使用單片機(jī)內(nèi)部的計(jì)數(shù)器,含有使用方便,計(jì)數(shù)精確等特點(diǎn)。但是由于我粗心大意沒有讀請題目規(guī)定,沒有使用計(jì)數(shù)器,因此本次設(shè)計(jì)使用下面一種方案:2.2.2使用C語言編寫軟件程序,嵌套循環(huán)實(shí)現(xiàn)計(jì)數(shù)功效,實(shí)驗(yàn)成果也能夠符合設(shè)計(jì)的規(guī)定。系統(tǒng)設(shè)計(jì)3.1硬件電路3.1.1使用的重要器件有下列部分:(1)單片機(jī)電路;(2)復(fù)位電路;(3)usb供電電路;(4)單片機(jī)復(fù)位電路;(5)led顯示、機(jī)器驅(qū)動(dòng)電路;(6)矩陣按鍵電路;圖1、STC89C51圖2、電源電路和復(fù)位電路圖3、跳線帽圖4、譯碼器和數(shù)碼管電路3.1.2重要部分器件闡明(1)LED數(shù)碼管圖5、數(shù)碼管示意圖

我們最慣用的是七段式和八段式LED數(shù)碼管,八段比七段多了一種小數(shù)點(diǎn),其它的基本相似。所謂的八段就是指數(shù)碼管里有八個(gè)小LED發(fā)光二極管,通過控制不同的LED的亮滅來顯示出不同的字形。數(shù)碼管又分為共陰極和共陽極兩種類型,其實(shí)共陰極就是將八個(gè)LED的陰極連在一起,讓其接地,這樣給任何一種LED的另一端高電平,它便能點(diǎn)亮。而共陽極就是將八個(gè)LED的陽極連在一起。其原理圖以下。其中引腳圖的兩個(gè)COM端連在一起,是公共端,共陰數(shù)碼管要將其接地,共陽數(shù)碼管將其接正5伏電源。一種八段數(shù)碼管稱為一位,多個(gè)數(shù)碼管并列在一起可構(gòu)成多位數(shù)碼管,它們的段選線(即a,b,c,d,e,f,g,dp)連在一起,而各自的公共端稱為位選線。顯示時(shí),都從段選線送入字符編碼,而選中哪個(gè)位選線,那個(gè)數(shù)碼管便會(huì)被點(diǎn)亮。數(shù)碼管的8段,對應(yīng)一種字節(jié)的8位,a對應(yīng)最低位,dp對應(yīng)最高位。因此如果想讓數(shù)碼管顯示數(shù)字0,那么共陰數(shù)碼管的字符編碼為00111111,即0x3f;共陽數(shù)碼管的字符編碼為11000000,即0xc0。能夠看出兩個(gè)編碼的各位正好相反。

共陽極的數(shù)碼管0~f的段編碼是這樣的:unsignedcharcodetable[]={//共陽極0~f數(shù)碼管編碼

0xc0,0xf9,0xa4,0xb0,//0~3

0x99,0x92,0x82,0xf8,//4~7

0x80,0x90,0x88,0x83,//8~b

0xc6,0xa1,0x86,0x8e//c~f

};

圖6、數(shù)碼管(共陰、共陽極)(2)4x4矩陣鍵盤模塊擬定矩陣式鍵盤上任何一種鍵被按下普通采用行掃描法。行掃描法又稱為逐行查詢法它是一種最慣用的多按鍵識(shí)別辦法。因此,我們就以行掃描法為例介紹矩陣式鍵盤的工作原理。首先,不停循環(huán)地給低四位獨(dú)立的低電平,然后判斷鍵盤中有無鍵按下。將低位中其中一列線(P1.0~P1.3中其中一列)置低電平然后檢測行線的狀態(tài)(高4位,即P1.4~P1.7,由于線與關(guān)系,只要與低電平列線接通,即跳變成低電平),只要有一行的電平為低就延時(shí)一段時(shí)間以消除抖動(dòng),然后再次判斷,如果仍然為低電平,則表達(dá)鍵盤中真的有鍵被按下并且閉合的鍵位于低電平的4個(gè)按鍵之中任其一,若全部行線均為高電平則表達(dá)鍵盤中無鍵按下。再另首先,判斷閉合鍵所在的具體位置。在確認(rèn)有鍵按下后,即可進(jìn)入擬定具體閉合鍵的過程。其辦法是:依次將列線置為低電平,即在置某一根列線為低電平時(shí),其它列線為高電平。同時(shí)再逐行檢測各行線的電平狀態(tài);若某行為低,則該行線與置為低電平的列線交叉處的按鍵就是閉合的按鍵。下面圖7是4*4矩陣式按鍵硬件接法。圖7、矩陣鍵盤3.1.3電路原理圖圖8、矩陣鍵盤數(shù)碼管連接示意圖3.2.1軟件程序設(shè)計(jì)開始初始化顯示“00”;等待按鍵。未按下按下開始鍵?記到了按下了開始計(jì)數(shù);等待按鍵。沒有36未按下按下清零?計(jì)數(shù)36了嗎?按下暫停顯示現(xiàn)在數(shù)值清零并顯示“00”并暫停計(jì)數(shù);等待按鍵?按下開始?按下清零?繼續(xù)計(jì)數(shù)清零顯示“00”顯示數(shù)值結(jié)束3.2.2程序設(shè)計(jì)內(nèi)容單片機(jī)對按鍵的識(shí)別的過程解決:(1)單片機(jī)對對的識(shí)別的按鍵進(jìn)行計(jì)數(shù),計(jì)數(shù)滿時(shí),又從零開始計(jì)數(shù);(2)單片機(jī)對計(jì)的數(shù)值要進(jìn)行數(shù)碼顯示,計(jì)得的數(shù)是十進(jìn)數(shù),含有十位和個(gè)位,我們要把十位和個(gè)位拆開分別送出這樣的十位和個(gè)位數(shù)值到對應(yīng)的數(shù)碼管上顯示。如何拆開十位和個(gè)位我們能夠把所計(jì)得的數(shù)值對10求余,即可個(gè)位數(shù)字,對10整除,即可得到十位數(shù)字了。(3)通過查表方式,分別顯示出個(gè)位和十位數(shù)字。3.2.3實(shí)驗(yàn)程序及注釋/** 數(shù)碼管測試** 晶振:11.0592M*/#include<reg52.h>sbitENLED=P1^4;//sbitADDR3=P1^3;//sbitADDR2=P1^2;//sbitADDR1=P1^1;//sbitADDR0=P1^0;//聲明地址sbitEN=P1^5;//3-8譯碼器設(shè)立sbitKeyOut1=P2^3;//按鍵列掃描sbitKeyIn1=P2^4;sbitKeyIn2=P2^5;sbitKeyIn3=P2^6;sbitKeyIn4=P2^7;//按鍵輸入intx;//用x作為監(jiān)測到的個(gè)數(shù)變量,但是模擬計(jì)數(shù)令x自動(dòng)增加inta,b,c,d,e,f;//用到7個(gè)中間變量unsignedcharcodeLedcode[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//0-9.的數(shù)碼管段碼voiddelay(unsignedinti)//延時(shí){ while(i--);}voiddisplay(intnum)//數(shù)碼管顯示{ADDR0=0;//第一種數(shù)碼管地址顯示各個(gè)位 ADDR1=0; ADDR2=0; P0=Ledcode[num%10];//取余數(shù)就是個(gè)位數(shù)值 delay(200); ADDR0=1;//第二個(gè)數(shù)碼管顯示十位 ADDR1=0; ADDR2=0; P0=Ledcode[num%100/10]; delay(200);}main()//主函數(shù){ KeyOut1=0;// ADDR3=1;//譯碼器使能端 ENLED=0; while(1)//主循環(huán){ display(0); //一開始顯示00 if(KeyIn1==0)//第一種按鍵按下就開始顯示 { b=36,x=0;//循環(huán)36次,并使從0開始顯示 } while(b>0)//限制循環(huán)36次{ if(KeyIn4==0) {x++;//如果有增數(shù)量增加脈沖,循環(huán)一次,假設(shè)數(shù)量加1 b--;} if(KeyIn2==0)//計(jì)數(shù)時(shí)如果按下K2就清零 { b=0,x=0,c=1;while(c>0) {for(a=50;a>0;a--)//每次刷新50次顯示 { display(x); }if(KeyIn1==0)//重新計(jì)數(shù) { b=36,x=0,c=c-1; } } } if(KeyIn3==0)//暫停計(jì)數(shù)并顯示現(xiàn)在數(shù)值 { e=x,f=b,d=1;while(d>0) {for(a=50;a>0;a--) { display(x);//顯示現(xiàn)在數(shù)值 } if(KeyIn1==0) //從現(xiàn)在繼續(xù)計(jì)數(shù) { b=f,x=e,d=d-1; } if(KeyIn2==0) //暫停狀態(tài)下按下清零 { b=0,x=0,d=d-1; } } } for(a=50;a>0;a--) //刷新50次顯示 { display(x); } } } }4.實(shí)驗(yàn)成果(1)不停按下K4按鍵模擬計(jì)數(shù)脈沖。當(dāng)按下啟動(dòng)鍵,能夠統(tǒng)計(jì)顯示K4啟動(dòng)開始后按下的次數(shù),計(jì)數(shù)值到36自動(dòng)清零,再次按下啟動(dòng)重新計(jì)數(shù);(2)在計(jì)數(shù)過程中按下清零鍵能夠清零并停止計(jì)數(shù),再次按下開始重新計(jì)數(shù);(3)計(jì)數(shù)過程中按下暫停鍵暫停計(jì)數(shù)并顯示現(xiàn)在數(shù)值,按下啟動(dòng)鍵繼續(xù)計(jì)數(shù);若按下請零鍵能夠清零并停止計(jì)數(shù);5.實(shí)習(xí)總結(jié)通過這次單片機(jī)實(shí)習(xí),我不僅加深了對單片機(jī)理論的理解,將理論較好地應(yīng)用到實(shí)際當(dāng)中去,并且我還學(xué)會(huì)了如何去培養(yǎng)我們的創(chuàng)新精神,從而不停地戰(zhàn)勝自己,超越自己。創(chuàng)新能夠是在原有的基礎(chǔ)上進(jìn)行改善,使之功效不停完善,成為真己的東西。作為一名自動(dòng)化專業(yè)的大四學(xué)生,我覺得做單片機(jī)實(shí)習(xí)是十分必要的。在已度過的大學(xué)時(shí)間里,我們大多數(shù)接觸的是專業(yè)課。我們在課堂上掌握的僅僅是專業(yè)課的理論知識(shí),如何去鍛煉我們的實(shí)踐能力,如何把我們所學(xué)的專業(yè)基礎(chǔ)課理論知識(shí)運(yùn)用到實(shí)踐中去,我想做類似實(shí)習(xí)就為我們提供了良好的實(shí)踐平臺(tái)。學(xué)習(xí)單片機(jī)沒有捷徑,不能指望兩三天就學(xué)會(huì),要堅(jiān)持不懈,重在積累。單片機(jī)是一門應(yīng)用性和實(shí)踐性很強(qiáng)的學(xué)科,要多動(dòng)手,多做實(shí)驗(yàn)。(4)要學(xué)會(huì)參考別人的程序

溫馨提示

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

評論

0/150

提交評論