單片機(jī)課設(shè)零件計(jì)數(shù)器_第1頁
單片機(jī)課設(shè)零件計(jì)數(shù)器_第2頁
單片機(jī)課設(shè)零件計(jì)數(shù)器_第3頁
單片機(jī)課設(shè)零件計(jì)數(shù)器_第4頁
單片機(jī)課設(shè)零件計(jì)數(shù)器_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

河海大學(xué)課程設(shè)計(jì)報(bào)告單片機(jī)課程設(shè)計(jì)報(bào)告課程名稱:零件計(jì)數(shù)器學(xué)號(hào):1162310120姓名:授課班號(hào):275501年級(jí)專業(yè):11級(jí)通信工程指導(dǎo)老師:劉玉宏摘要:本次單片機(jī)課程設(shè)計(jì)我組選擇的題目是零件計(jì)數(shù)器,零件計(jì)數(shù)器本身在生產(chǎn)實(shí)踐中具有很實(shí)際的用途,選擇這個(gè)項(xiàng)目可以繞過我們更好的把課堂上學(xué)到的課本知識(shí)和理論內(nèi)容與生產(chǎn)實(shí)踐結(jié)合起來,提高對(duì)實(shí)際問題的動(dòng)手操作能力以及解決問題的能力,進(jìn)一步加深學(xué)生對(duì)于實(shí)際的電子元件電路功能的理解與運(yùn)用,對(duì)于設(shè)計(jì)實(shí)際的實(shí)用程序來解決一系列生產(chǎn)生活遇到的問題的能力有著顯著的家加強(qiáng)與提高。零件計(jì)數(shù)器的功能是通過感應(yīng)器對(duì)零件數(shù)量進(jìn)行中斷計(jì)數(shù),并由數(shù)碼管動(dòng)態(tài)顯示出來,并通過實(shí)用的程序?qū)⒘慵?shù)目通過串口傳送給PC機(jī),還能夠通過實(shí)時(shí)的檢測(cè)電路將之與蜂鳴器連接起來,起到整十報(bào)警以及零件打包的功能。關(guān)鍵字:計(jì)數(shù)器,單片機(jī),數(shù)碼顯示,串口通信目錄一.設(shè)計(jì)內(nèi)容設(shè)計(jì)要求················································4二.設(shè)計(jì)方案1電路框圖··············································42流程框圖··············································53分段原理··············································54電路功能··············································61)蜂鳴器及繼電器原理································62)數(shù)碼管顯示原理·····································7三.計(jì)數(shù)器主程序1分段程序及功能········································82問題及解決方案·······································14四.結(jié)論1實(shí)驗(yàn)結(jié)果···············································152本次課設(shè)的貢獻(xiàn)········································152改善建議···············································163心得體會(huì)···············································16五.附錄1軟件介紹··············································172參考文獻(xiàn)··············································18設(shè)計(jì)內(nèi)容設(shè)計(jì)內(nèi)容:把接在INT0上的單穩(wěn)信號(hào)當(dāng)作零件信號(hào),單片機(jī)計(jì)數(shù)一次,當(dāng)計(jì)滿十次時(shí),蜂鳴器發(fā)出一聲警告音,并使繼電器閉合一次,產(chǎn)生零件打包動(dòng)作。要求和提高要求主要掌握外部中斷和動(dòng)態(tài)顯示的應(yīng)用,提高實(shí)時(shí)通過串口把零件數(shù)量發(fā)送給PC。設(shè)計(jì)方案電路框圖P0P0單片機(jī)AT89C51P2P38個(gè)限流電阻4位共陰數(shù)碼管動(dòng)態(tài)顯示復(fù)位復(fù)位選位選位INT0INT0蜂鳴器繼電器蜂鳴器繼電器電路總圖與功能如圖所示,每當(dāng)來一次外部中斷時(shí),內(nèi)部計(jì)數(shù)一次,并將數(shù)值通過4位共陰數(shù)碼管動(dòng)態(tài)顯示出來。而單片機(jī)的P2口可以選擇四根不同的數(shù)碼管來動(dòng)態(tài)顯示,通過視覺暫留達(dá)到同時(shí)顯示的效果。同時(shí)內(nèi)部程序檢測(cè)每當(dāng)計(jì)數(shù)十次時(shí),會(huì)形成一個(gè)繼電器閉合的零件打包動(dòng)作,并通過程序使得蜂鳴器發(fā)出警報(bào)。流程框圖否判斷是否為10的倍數(shù)循環(huán)警示打包操作是計(jì)數(shù),串口賦值是監(jiān)測(cè)中斷開始(復(fù)位)否判斷是否為10的倍數(shù)循環(huán)警示打包操作是計(jì)數(shù),串口賦值是監(jiān)測(cè)中斷開始(復(fù)位)主程序:主程序?yàn)橹袛喑踔翟O(shè)定程序,包括中斷計(jì)數(shù)超出時(shí)的清零程序,中斷以及時(shí)鐘的設(shè)定,計(jì)數(shù)初值的計(jì)算以及波特率的計(jì)算,還有子程序的調(diào)用。延時(shí)子程序:包括兩種不同的延時(shí)程序,分別是計(jì)數(shù)時(shí)需要的短延時(shí)以及蜂鳴器等需要的較長(zhǎng)時(shí)間延遲。數(shù)碼管顯示子程序:包括P2口的數(shù)碼管選擇設(shè)定以及計(jì)數(shù)數(shù)值對(duì)應(yīng)的數(shù)碼管顯示數(shù)值的設(shè)定,通過獨(dú)特的計(jì)算方法將計(jì)數(shù)總值與四根不同的數(shù)碼管顯示一一對(duì)應(yīng)起來。外部中斷0與串口數(shù)據(jù)發(fā)送子程序:每來一次中斷計(jì)數(shù)值加1,同時(shí)向串口發(fā)送一次此時(shí)的數(shù)值。串口中斷子程序:串口數(shù)據(jù)發(fā)送的開始和停止程序。電路功能蜂鳴器及繼電器原理動(dòng)態(tài)顯示部分電路由4位一體的數(shù)碼管LED1、單個(gè)數(shù)碼管LED2和8個(gè)獨(dú)立發(fā)光二極管L1-L7組成。這3個(gè)部分都是共陰結(jié)構(gòu),并聯(lián)在一起,連接在P0口上。LED1用于完成LED動(dòng)態(tài)顯示實(shí)驗(yàn),各個(gè)位選線為P24-P27,段碼由P0口輸出;LED2的COM端接地,完成LED靜態(tài)顯示實(shí)驗(yàn);L1-L7,可以方便地讀出P0輸出的二進(jìn)制數(shù)據(jù),亦可做流水燈實(shí)驗(yàn)。7407在此起驅(qū)動(dòng)作用。計(jì)數(shù)器主程序分段程序及功能#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitP32=P3^2;sbitP37=P3^7;sbitP36=P3^6;sbitP24=P2^4;sbitP25=P2^5;sbitP26=P2^6;sbitP27=P2^7;ucharcount;uchartable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共陰極數(shù)碼管表voidbeep();voidrelay();voiddelay(ucharx);voiddisplay(uchara,ucharb,ucharc,uchard);voidsendchar(uchardat1); voidmain(){intge,shi,bai,qian;EA=1;//開總中斷EX0=1;//允許外部中斷0IT0=1;//負(fù)跳變沿中斷方式SCON=0x50;//串口工作在方式1,允許接收PCON=0x00;//波特率不加倍TMOD=0x20;//定時(shí)器1工作在方式2TH1=0xfd;//賦初始值TL1=0xfd;TR1=1;while(1){qian=count/1000;bai=count%1000/100;shi=count%100/10;ge=count%10;display(ge,shi,bai,qian);}voiddelay(ucharx){uchari,j;for(i=0;i<100;i++)for(j=0;j<x;j++);}//延時(shí)時(shí)間的計(jì)算:先將程序轉(zhuǎn)變?yōu)閰R編語言,通過每一條匯編語言所占據(jù)的機(jī)器周期時(shí)間的總和,便可以算出延時(shí)所花費(fèi)的時(shí)間。//蜂鳴器程序voidbeep(){P37=0;delay(300);P37=1;}//繼電器程序voidrelay(){P36=1;delay(300);P36=0;}voiddisplay(uchara,ucharb,ucharc,uchard)//四段數(shù)碼管顯示{P0=table[a];P27=0;delay(8);P27=1;P0=table[b];P26=0;delay(8);P26=1;P0=table[c];P25=0;delay(8);P25=1;P0=table[d];P24=0;delay(8);P24=1;}//將得到的數(shù)據(jù)對(duì)照共陰極數(shù)碼管表顯示voidzhongduan()interrupt0{if(P32==0){delay(10);//延時(shí)消除抖動(dòng)if(P32==0)//確認(rèn)有按鍵按下{count++;sendchar(count);if(count%10==0&count!=0){beep();relay();}}while(!P32);//等待KEY1松開delay(10);//延時(shí)消除抖動(dòng)}}voidsendchar(uchardat1)//串口發(fā)送數(shù)據(jù)程序{SBUF=dat1;while(!TI);//等待串行口發(fā)送完畢TI=0;//清除串行口發(fā)送結(jié)束標(biāo)志}//產(chǎn)生計(jì)數(shù)信號(hào)、計(jì)數(shù)標(biāo)志、并將計(jì)數(shù)值實(shí)時(shí)發(fā)給PC串行口發(fā)送時(shí),第一位是0,結(jié)束位是1問題及解決方案遇到的問題:運(yùn)用指數(shù)函數(shù)計(jì)數(shù)以及選擇四根數(shù)碼管顯示,導(dǎo)致程序運(yùn)行速度過慢,燈光閃爍。改進(jìn)方法:改進(jìn)后去掉指數(shù)函數(shù),改用每一根數(shù)碼管分別使用計(jì)算出顯示數(shù)值的方法。遇到的問題:計(jì)數(shù)值達(dá)到時(shí)蜂鳴器持續(xù)響,直到按下第十一次計(jì)數(shù)按鍵方才停止。解決方法:在蜂鳴器程序中增加清零語句,中斷中增加置位語句,可以讓蜂鳴器在計(jì)數(shù)第十次時(shí)只響一聲。結(jié)論實(shí)驗(yàn)結(jié)果按鍵脈沖源0,則四位數(shù)碼管顯示數(shù)字+1,當(dāng)?shù)?0的倍數(shù)時(shí),蜂鳴器發(fā)出聲音,繼電器產(chǎn)生打包動(dòng)作。通過串口調(diào)試助手在PC機(jī)上可實(shí)時(shí)顯示數(shù)碼管數(shù)據(jù)。本次課設(shè)的貢獻(xiàn)本次課設(shè)中參與了程序的編寫、改進(jìn),在keil軟件中運(yùn)行無誤后,燒寫程序到單片機(jī)實(shí)驗(yàn)箱進(jìn)行調(diào)試,通過串口調(diào)試助手顯示計(jì)數(shù)值,以實(shí)現(xiàn)實(shí)驗(yàn)的要求。改善建議實(shí)驗(yàn)中INT0中斷信號(hào)計(jì)數(shù)到10次時(shí),本次實(shí)現(xiàn)的功能在PC端不能顯示打包指令,只能通過硬件繼電器閉合,虛擬計(jì)一次打包。更好是在串口調(diào)試助手中能夠顯示打包次數(shù),以方便計(jì)數(shù)。同時(shí),在初始化計(jì)數(shù)初值時(shí),串口調(diào)試程序不能發(fā)送一個(gè)數(shù)目顯示到數(shù)碼管中,以適應(yīng)實(shí)際計(jì)數(shù)過程中計(jì)數(shù)中斷和電源無法工作的情況。心得體會(huì)通過本次的單片機(jī)課程設(shè)計(jì),我深刻體會(huì)和理解了如何將所學(xué)的單片機(jī)理論知識(shí)和實(shí)際生產(chǎn)生活需要結(jié)合起來,進(jìn)行實(shí)踐運(yùn)用的方法,極大的鍛煉了我的實(shí)際動(dòng)手和根據(jù)實(shí)際需要設(shè)計(jì)程序的能力。通過設(shè)計(jì)零件計(jì)數(shù)器,我加深了對(duì)于課堂上所學(xué)知識(shí)的掌握和理解,對(duì)于串口通信以及中斷程序的掌握更上一個(gè)臺(tái)階,中間的實(shí)踐動(dòng)手過程中通過對(duì)遇到的實(shí)際問題的思考和解決,極大的提升了我個(gè)人的實(shí)踐水平以及綜合素質(zhì)。附錄軟件介紹燒寫程序:打開STC-ISP,如下圖界面,在MCUType欄目下選中單片機(jī),如STC89C51。根據(jù)您的9針數(shù)據(jù)線連接情況選中COM端口,波特率一般保持默認(rèn),如果遇到下載問題,可以適當(dāng)下調(diào)一些,按圖示選中各項(xiàng)。先確認(rèn)硬件連接正確,按如圖點(diǎn)擊“打開文件”并在對(duì)話框內(nèi)找到您要下載的HEX文件按下圖選中兩個(gè)條件項(xiàng),這樣可以使您在每次編譯KEIL時(shí)HEX代碼能自動(dòng)加載到STC-ISP,點(diǎn)擊“Download/下載”。手動(dòng)按下電源開關(guān)便即可把可執(zhí)行文件HEX寫入到單片機(jī)內(nèi),如圖是正在寫入程序截圖。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論