單片機(jī)課程設(shè)計(jì)報(bào)告 零件計(jì)數(shù)器 電信論文
《單片機(jī)課程設(shè)計(jì)報(bào)告 零件計(jì)數(shù)器 電信論文》由會(huì)員分享,可在線閱讀,更多相關(guān)《單片機(jī)課程設(shè)計(jì)報(bào)告 零件計(jì)數(shù)器 電信論文(17頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 河海大學(xué)物聯(lián)網(wǎng)工程學(xué)院 課程設(shè)計(jì)報(bào)告 題 目 零件計(jì)數(shù)器 專業(yè)、學(xué)號(hào) 電信、 授課班號(hào) 275503 學(xué)生姓名 指導(dǎo)教師 金紀(jì)東 完成時(shí)間 2012/12/25 摘要 本次單片機(jī)課程設(shè)計(jì)我組選擇的題目是零件計(jì)數(shù)器,零件計(jì)數(shù)器本身在生產(chǎn)實(shí)踐中具有很實(shí)際的用途,選擇這個(gè)項(xiàng)目可以繞
2、過我們更好的把課堂上學(xué)到的課本知識(shí)和理論內(nèi)容與生產(chǎn)實(shí)踐結(jié)合起來(lái),提高對(duì)實(shí)際問題的動(dòng)手操作能力以及解決問題的能力,進(jìn)一步加深學(xué)生對(duì)于實(shí)際的電子元件電路功能的理解與運(yùn)用,對(duì)于設(shè)計(jì)實(shí)際的實(shí)用程序來(lái)解決一系列生產(chǎn)生活遇到的問題的能力有著顯著的家加強(qiáng)與提高。零件計(jì)數(shù)器的功能是通過感應(yīng)器對(duì)零件數(shù)量進(jìn)行中斷計(jì)數(shù),并由數(shù)碼管動(dòng)態(tài)顯示出來(lái),并通過實(shí)用的程序?qū)⒘慵?shù)目通過串口傳送給PC機(jī),還能夠通過實(shí)時(shí)的檢測(cè)電路將之與蜂鳴器連接起來(lái),起到整十報(bào)警以及零件打包的功能。 基于單片機(jī)構(gòu)成的零件計(jì)數(shù)器研究的主要內(nèi)容包括:AT89C51單片機(jī)用何種方式對(duì)外部計(jì)數(shù)脈沖進(jìn)行計(jì)數(shù)顯示控制、LED顯示驅(qū)動(dòng)模塊的選擇、如何通過串口
3、與PC機(jī)完成實(shí)時(shí)連接。在這個(gè)設(shè)計(jì)中主要需要解決的問題便是如何提高AT89C51單片機(jī)的抗干擾能力以及穩(wěn)定性。 關(guān)鍵字:?jiǎn)纹瑱C(jī) 零件計(jì)數(shù)器 LED顯示 串口連接 目錄 第1章 系統(tǒng)設(shè)計(jì) 1.1電路框圖3 1.2軟件設(shè)計(jì)方框圖及流程圖4 1.3電路功能6 第2章 計(jì)數(shù)器程序 2.1分段程序及功能8 2.2問題及解決方案11 第3章 實(shí)驗(yàn)結(jié)果及討論 3.1實(shí)驗(yàn)結(jié)果11 3.2結(jié)論11 3.3心得體會(huì)12 參考文獻(xiàn)12 附錄13 第1章
4、系統(tǒng)設(shè)計(jì) 1.1 電路框圖 4位共陰數(shù)碼管動(dòng)態(tài)顯示 8個(gè)限流電阻 P0 單片機(jī) AT89C51 P2 P3 復(fù)位 選位 INT0 蜂鳴器 繼電器 電路總圖與功能如圖所示,每當(dāng)來(lái)一次外部中斷時(shí),內(nèi)部計(jì)數(shù)一次,并將數(shù)值通過4位共陰數(shù)碼管動(dòng)態(tài)顯示出來(lái)。而單片機(jī)的P2口可以選擇四根不同的數(shù)碼管來(lái)動(dòng)態(tài)顯示,通過視覺暫留達(dá)到同時(shí)顯示的效果。同時(shí)內(nèi)部程序檢測(cè)每當(dāng)計(jì)數(shù)十次時(shí),會(huì)形成一個(gè)繼電器閉合的零件打包動(dòng)作,并通過程序使得蜂鳴器發(fā)出警報(bào)。
5、 1.2 軟件設(shè)計(jì)方框圖及流程圖 由于單片機(jī)實(shí)驗(yàn)箱的存在,因此硬件部分無(wú)需做過多準(zhǔn)備,只需根據(jù)硬件部分完成軟件設(shè)計(jì)即可,在此,我們使用基于單片機(jī)的C語(yǔ)言編程。C語(yǔ)言是一種高級(jí)程序設(shè)計(jì)語(yǔ)言,其語(yǔ)法簡(jiǎn)單適用性強(qiáng),在單片機(jī)編程時(shí)很方便。本次設(shè)計(jì)中使用的C語(yǔ)言編程軟件為Keil。 軟件設(shè)計(jì)框圖如下: 初始化函數(shù) 延時(shí)函數(shù) 顯示函數(shù) LED 顯 示 串口通信 延時(shí)函數(shù) 計(jì)滿提示部分 主 函 數(shù) 外 部 中 斷
6、 流程圖如下: 開始 初始化 零件數(shù)為0 LED動(dòng)態(tài)顯示 否 是否按下 S_INT0? 是 零件數(shù)加1 LED動(dòng)態(tài)顯示 否 零件數(shù)是十 的倍數(shù)? 是 蜂鳴器響一次,繼電器 閉合,執(zhí)行零件打包 執(zhí)行串口發(fā)送函數(shù) 是否按下復(fù)位鍵 是 否 編寫零件計(jì)數(shù)程序時(shí)應(yīng)當(dāng)注意需要事先的幾個(gè)功能,可以分段編寫,最后通過主程序連接
7、。這段程序的重點(diǎn)便是一段循環(huán)中斷計(jì)數(shù)程序,在數(shù)值加1的同時(shí)要給串口發(fā)出同樣的信息,每當(dāng)計(jì)數(shù)十次時(shí)還需要轉(zhuǎn)到零件打包以及蜂鳴器程序中執(zhí)行。 1.3 電路功能 B部分是單片機(jī)的最小系統(tǒng)部分,只有這部分電路正常,整個(gè)系統(tǒng)才能工作。單片機(jī)為內(nèi)含8K FLASH程序存儲(chǔ)器的STC89C52RC,EA接高電平;各并行口都加了10K的上拉電阻;晶振為11.0592M。設(shè)置了上電復(fù)位和手動(dòng)復(fù)位電路。S1為手動(dòng)復(fù)位按鈕。 C部分電路由4位一體的數(shù)碼管LED1、單個(gè)數(shù)碼管LED2和8個(gè)獨(dú)立發(fā)光二極管L1-L7組成。這3個(gè)部分都是共陰結(jié)構(gòu),并聯(lián)在一起,連接在P0口上。LED1用于完成L
8、ED動(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)作用。 F部分電路是由555和電容組成的單穩(wěn)電路。當(dāng)S_INT0按鈕按下后產(chǎn)生一個(gè)低電平單穩(wěn)信號(hào)送單片機(jī)的INT0,同時(shí)D_PLUS1亮一次,作為外部中斷請(qǐng)求信號(hào)。 I部分電路為蜂鳴器和繼電器電路。 蜂鳴器采用9012三極管驅(qū)動(dòng),其基極接到RD端,當(dāng)RD端為低電平時(shí),三極管導(dǎo)通,蜂鳴器響。否則關(guān)斷。 繼電器采用9013三極管驅(qū)動(dòng),其基極接到WR端,當(dāng)WRD端為低電平時(shí),三極
9、管關(guān)斷,繼電器不吸合,常閉觸點(diǎn)閉合,常開觸點(diǎn)打開,D1熄滅;反之則反。 第2章 計(jì)數(shù)器程序 2.1 分段程序及功能 *******************開頭及引腳對(duì)應(yīng)程序****************** #include < reg51.h > sbit BEEP=P3^7; sbit JDQ=P3^6; unsigned int Ledcount=0; unsigned int LedOut[8]; **********************LED數(shù)字碼表******************** unsigned char co
10、de MABIAO[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; ************************延時(shí)函數(shù)*********************** void delay(unsigned int i) { char j; for(i;i>0;i--) for(j=200;j>0;j--); } **********************串口發(fā)送函數(shù)********************* void sint() { SBUF = Le
11、dcount%10000/1000 + 0x30; while(!TI); TI=0; SBUF=Ledcount%1000/100+ 0x30; while(!TI); TI=0; SBUF=Ledcount%100/10+ 0x30; while(!TI); TI=0; SBUF=Ledcount%10+ 0x30; while(!TI); TI=0; SBUF=\n; while(!TI); TI=0; } **********************LED顯示程序******************** voi
12、d display() { int i; LedOut[0]=MABIAO[Ledcount%10000/1000]; LedOut[1]=MABIAO[Ledcount%1000/100]; LedOut[2]=MABIAO[Ledcount%100/10]; LedOut[3]=MABIAO[Ledcount%10]; for(i=0;i<4;i++) { P0=LedOut[i]; switch(i) { case 0:P2
13、=0xef; break; case 1:P2=0xdf; break; case 2:P2=0xbf; break; case 3:P2=0x7f; break; } delay(100); } } ***********************初始化函數(shù)********************** v
14、oid init() { EA=1; //允許中斷 EX0=1; //允許外部中斷0 IT0=1; //下降沿觸發(fā) TR1=1; //啟動(dòng)T1定時(shí)器 TMOD=0x20; //定時(shí)器T1為工作方式2,初值自動(dòng)重裝八位計(jì)數(shù)器 TL1=0xfd; //預(yù)備單元 TH1=0xfd; //計(jì)數(shù)初值設(shè)定,波特率9600 SCON=0x50; //串行口為方式1,10步異位收發(fā)(1+8+1) PCON=0x00; //特殊功能寄存器都為0,波特率不加倍 } ***
15、******************INT0中斷函數(shù)********************* void int0(void) interrupt 0 { Ledcount++; //中斷計(jì)數(shù) if((Ledcount%10==0)&&(Ledcount!=0)) { BEEP=0; delay(10000); BEEP=1; JDQ=~JDQ; } if(Ledcount>9999) //超出計(jì)數(shù)上限后清零 Ledcount=0; sint(); } ****
16、*********************主程序************************ void main(void) { init(); while(1) { display(); } } 2.2問題及解決方案 問題1:運(yùn)用指數(shù)函數(shù)計(jì)數(shù)以及選擇四根數(shù)碼管顯示,導(dǎo)致程序運(yùn)行速度過慢,燈光閃爍。 解決方案:改進(jìn)后去掉指數(shù)函數(shù),改用每一根數(shù)碼管分別使用計(jì)算出顯示數(shù)值的方法。 問題2:計(jì)數(shù)值達(dá)到時(shí)蜂鳴器持續(xù)響,直到按下第十一次計(jì)數(shù)按鍵方才停止。 解決方案:在蜂鳴器程序中增加BEEP清零和延時(shí)語(yǔ)句,可以讓蜂鳴器在
17、計(jì)數(shù)第十次時(shí)只響一聲,并可改變響的時(shí)間。 第3章 實(shí)驗(yàn)結(jié)果及討論 3.1實(shí)驗(yàn)結(jié)果 本此課程設(shè)計(jì),使用到Keil C51編程器、燒寫工具以及串口助手等軟件工具。先是利用Keil軟件編寫程序,編譯無(wú)錯(cuò)后再利用燒寫工具將其燒寫進(jìn)52單片機(jī)中,按下S_INT0按鈕,可得到LED動(dòng)態(tài)顯示數(shù)據(jù)的變化,本次設(shè)計(jì)中用到4個(gè)數(shù)碼管,也就是說,最高顯示零件數(shù)目可達(dá)9999個(gè)。另外,還可以利用串口助手,將零件數(shù)目實(shí)時(shí)傳送給PC機(jī),此結(jié)果可在串口助手上觀察到。結(jié)果是完全符合所需零件計(jì)數(shù)器的要求的。至此,可以說本次設(shè)計(jì)是成功的。 3.2結(jié)論 本次課程設(shè)計(jì)的主要特點(diǎn)是利用C51編程實(shí)現(xiàn)基于單片機(jī)的零件計(jì)
18、數(shù)器,而非使用匯編語(yǔ)言。在編程中,要學(xué)會(huì)寫出各種子程序,然后合理的調(diào)用它們,還要根據(jù)實(shí)際顯示結(jié)果不斷地去修改和完善,使其最終顯示出符合要求的結(jié)果,這不僅考察了我對(duì)于單片這門課的學(xué)習(xí)掌握情況,還考察了我對(duì)C語(yǔ)言的基礎(chǔ)知識(shí)是否扎實(shí),是否可以將所學(xué)的學(xué)科融會(huì)貫通。此外,還有其他的特點(diǎn),設(shè)計(jì)中用到燒寫工具以及串口助手等軟件工具,無(wú)需考慮硬件設(shè)計(jì),只需完成軟件設(shè)計(jì)部分。本次課程設(shè)計(jì)完成了基于單片機(jī)的零件計(jì)數(shù)器的設(shè)計(jì),讓我對(duì)于單片機(jī)的學(xué)習(xí)有了更深一層的領(lǐng)悟。 3.3心得體會(huì) 經(jīng)過這段時(shí)間的學(xué)習(xí),我對(duì)單片機(jī)原理與運(yùn)用也有了更深層次的了解,同時(shí)也對(duì)過去所學(xué)的知識(shí)進(jìn)行了溫習(xí),對(duì)我組設(shè)計(jì)的課題《零件計(jì)數(shù)器
19、》所用到的知識(shí)也進(jìn)行了專門的梳理和消化。這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。通過這次課程設(shè)計(jì),我也知道了自己的不足。書本上的知識(shí)是死的,只有通過實(shí)踐和具體的實(shí)例運(yùn)用,才能真正掌握知識(shí)、取得進(jìn)步。 這次課程設(shè)計(jì)的經(jīng)歷使我終身受益,我感受到做任何事情都是要真正用心去做的,也是真正的自己學(xué)習(xí)的過程和研究的過程,沒有學(xué)習(xí)就不可能有研究的能力,沒有自己的研究,就不會(huì)有所突破。 參考文獻(xiàn) [1] 張有德 趙志英 涂時(shí)亮編著,單片微型機(jī)原理、應(yīng)用與實(shí)驗(yàn).第五版. 上海.復(fù)旦大學(xué)出版社.2006 [2] 丁海軍、何坤金、王林等編著,程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言).北京.北京航空航天大學(xué)出版社.2009 附錄 附錄1:燒寫程序 附錄2:串口調(diào)試 附錄3:實(shí)物圖
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案