單片機(jī)課程設(shè)計(jì)報(bào)告 零件計(jì)數(shù)器 電信論文
《單片機(jī)課程設(shè)計(jì)報(bào)告 零件計(jì)數(shù)器 電信論文》由會員分享,可在線閱讀,更多相關(guān)《單片機(jī)課程設(shè)計(jì)報(bào)告 零件計(jì)數(shù)器 電信論文(17頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、 河海大學(xué)物聯(lián)網(wǎng)工程學(xué)院 課程設(shè)計(jì)報(bào)告 題 目 零件計(jì)數(shù)器 專業(yè)、學(xué)號 電信、 授課班號 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é)到的課本知識和理論內(nèi)容與生產(chǎn)實(shí)踐結(jié)合起來,提高對實(shí)際問題的動(dòng)手操作能力以及解決問題的能力,進(jìn)一步加深學(xué)生對于實(shí)際的電子元件電路功能的理解與運(yùn)用,對于設(shè)計(jì)實(shí)際的實(shí)用程序來解決一系列生產(chǎn)生活遇到的問題的能力有著顯著的家加強(qiáng)與提高。零件計(jì)數(shù)器的功能是通過感應(yīng)器對零件數(shù)量進(jìn)行中斷計(jì)數(shù),并由數(shù)碼管動(dòng)態(tài)顯示出來,并通過實(shí)用的程序?qū)⒘慵?shù)目通過串口傳送給PC機(jī),還能夠通過實(shí)時(shí)的檢測電路將之與蜂鳴器連接起來,起到整十報(bào)警以及零件打包的功能。 基于單片機(jī)構(gòu)成的零件計(jì)數(shù)器研究的主要內(nèi)容包括:AT89C51單片機(jī)用何種方式對外部計(jì)數(shù)脈沖進(jìn)行計(jì)數(shù)顯示控制、LED顯示驅(qū)動(dòng)模塊的選擇、如何通過串口
3、與PC機(jī)完成實(shí)時(shí)連接。在這個(gè)設(shè)計(jì)中主要需要解決的問題便是如何提高AT89C51單片機(jī)的抗干擾能力以及穩(wěn)定性。 關(guān)鍵字:單片機(jī) 零件計(jì)數(shù)器 LED顯示 串口連接 目錄 第1章 系統(tǒng)設(shè)計(jì) 1.1電路框圖··············································3 1.2軟件設(shè)計(jì)方框圖及流程圖································4 1.3電路功能··············································6
4、 第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心得體會·············································
5、12 參考文獻(xiàn)·················································12 附錄·····················································13 第1章 系統(tǒng)設(shè)計(jì) 1.1 電路框圖 4位共陰數(shù)碼管動(dòng)態(tài)顯示 8個(gè)限流電阻 P0 單片機(jī) AT89C51 P2 P3 復(fù)位 選位 INT0 蜂鳴器 繼電器 電路總圖與功能
6、如圖所示,每當(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)部程序檢測每當(dāng)計(jì)數(shù)十次時(shí),會形成一個(gè)繼電器閉合的零件打包動(dòng)作,并通過程序使得蜂鳴器發(fā)出警報(bào)。 1.2 軟件設(shè)計(jì)方框圖及流程圖 由于單片機(jī)實(shí)驗(yàn)箱的存在,因此硬件部分無需做過多準(zhǔn)備,只需根據(jù)硬件部分完成軟件設(shè)計(jì)即可,在此,我們使用基于單片機(jī)的C語言編程。C語言是一種高級程序設(shè)計(jì)語言,其語法簡單適用性強(qiáng),在單片機(jī)編程時(shí)很方便。本次設(shè)計(jì)中使用的C語言編程軟件為Keil。 軟件設(shè)計(jì)框圖如下:
7、 初始化函數(shù) 延時(shí)函數(shù) 顯示函數(shù) LED 顯 示 串口通信 延時(shí)函數(shù) 計(jì)滿提示部分 主 函 數(shù) 外 部 中 斷 流程圖如下: 開始 初始化 零件數(shù)為0 LED動(dòng)態(tài)顯示 否 是否按下 S_INT0? 是 零件數(shù)加1 LED動(dòng)態(tài)顯示 否 零件數(shù)是十 的倍數(shù)?
8、 是 蜂鳴器響一次,繼電器 閉合,執(zhí)行零件打包 執(zhí)行串口發(fā)送函數(shù) 是否按下復(fù)位鍵 是 否 編寫零件計(jì)數(shù)程序時(shí)應(yīng)當(dāng)注意需要事先的幾個(gè)功能,可以分段編寫,最后通過主程序連接。這段程序的重點(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程序存儲器的STC89C52RC,EA接
9、高電平;各并行口都加了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用于完成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)作用。 F部分電路是由555和電容組成的單穩(wěn)電路。當(dāng)S_INT0按鈕按下后產(chǎn)生一個(gè)低電平單穩(wěn)信號送單片
10、機(jī)的INT0,同時(shí)D_PLUS1亮一次,作為外部中斷請求信號。 I部分電路為蜂鳴器和繼電器電路。 蜂鳴器采用9012三極管驅(qū)動(dòng),其基極接到RD端,當(dāng)RD端為低電平時(shí),三極管導(dǎo)通,蜂鳴器響。否則關(guān)斷。 繼電器采用9013三極管驅(qū)動(dòng),其基極接到WR端,當(dāng)WRD端為低電平時(shí),三極管關(guān)斷,繼電器不吸合,常閉觸點(diǎn)閉合,常開觸點(diǎn)打開,D1熄滅;反之則反。 第2章 計(jì)數(shù)器程序 2.1 分段程序及功能 *******************開頭及引腳對應(yīng)程序****************** #include < reg51.h > sbit BEEP=P3^
11、7; sbit JDQ=P3^6; unsigned int Ledcount=0; unsigned int LedOut[8]; **********************LED數(shù)字碼表******************** unsigned char code MABIAO[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; ************************延時(shí)函數(shù)*********************** void delay(unsigned int i) {
12、 char j; for(i;i>0;i--) for(j=200;j>0;j--); } **********************串口發(fā)送函數(shù)********************* void sint() { SBUF = Ledcount%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;
13、 SBUF=Ledcount%10+ 0x30; while(!TI); TI=0; SBUF='\n'; while(!TI); TI=0; } **********************LED顯示程序******************** void display() { int i; LedOut[0]=MABIAO[Ledcount%10000/1000]; LedOut[1]=MABIAO[Ledcount%1000/100]; LedOut[2]=MABIAO[Ledcount%100/10]
14、; LedOut[3]=MABIAO[Ledcount%10]; for(i=0;i<4;i++) { P0=LedOut[i]; switch(i) { case 0:P2=0xef; break; case 1:P2=0xdf; break; case 2:P2=0xbf; break;
15、 case 3:P2=0x7f; break; } delay(100); } } ***********************初始化函數(shù)********************** void init() { EA=1; //允許中斷 EX0=1; //允許外部中斷0 IT0=1; //下降沿觸發(fā) TR1=1; //啟動(dòng)T1定時(shí)器 TMOD=0x20; //定時(shí)器T1為工作方式2,初值自動(dòng)重裝八位計(jì)數(shù)
16、器 TL1=0xfd; //預(yù)備單元 TH1=0xfd; //計(jì)數(shù)初值設(shè)定,波特率9600 SCON=0x50; //串行口為方式1,10步異位收發(fā)(1+8+1) PCON=0x00; //特殊功能寄存器都為0,波特率不加倍 } *********************INT0中斷函數(shù)********************* void int0(void) interrupt 0 { Ledcount++; //中斷計(jì)數(shù) if((Ledcount%10==0)&&(Ledcount!=0)) {
17、 BEEP=0; delay(10000); BEEP=1; JDQ=~JDQ; } if(Ledcount>9999) //超出計(jì)數(shù)上限后清零 Ledcount=0; sint(); } *************************主程序************************ void main(void) { init(); while(1) { display(); } } 2.2問題及解決方案 問題1:運(yùn)
18、用指數(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í)語句,可以讓蜂鳴器在計(jì)數(shù)第十次時(shí)只響一聲,并可改變響的時(shí)間。 第3章 實(shí)驗(yàn)結(jié)果及討論 3.1實(shí)驗(yàn)結(jié)果 本此課程設(shè)計(jì),使用到Keil C51編程器、燒寫工具以及串口助手等軟件工具。先是利用Keil軟件編寫程序,編譯無錯(cuò)后再利用燒寫工具將其燒寫進(jìn)52單片機(jī)中,按下S_INT0按鈕,可得到LED動(dòng)態(tài)顯示數(shù)據(jù)的變化,本次設(shè)計(jì)
19、中用到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ì)數(shù)器,而非使用匯編語言。在編程中,要學(xué)會寫出各種子程序,然后合理的調(diào)用它們,還要根據(jù)實(shí)際顯示結(jié)果不斷地去修改和完善,使其最終顯示出符合要求的結(jié)果,這不僅考察了我對于單片這門課的學(xué)習(xí)掌握情況,還考察了我對C語言的基礎(chǔ)知識是否扎實(shí),是否可以將所學(xué)的學(xué)科融會貫通。此外,還有其他的特點(diǎn),設(shè)計(jì)中用到燒寫工具以及串口助
20、手等軟件工具,無需考慮硬件設(shè)計(jì),只需完成軟件設(shè)計(jì)部分。本次課程設(shè)計(jì)完成了基于單片機(jī)的零件計(jì)數(shù)器的設(shè)計(jì),讓我對于單片機(jī)的學(xué)習(xí)有了更深一層的領(lǐng)悟。 3.3心得體會 經(jīng)過這段時(shí)間的學(xué)習(xí),我對單片機(jī)原理與運(yùn)用也有了更深層次的了解,同時(shí)也對過去所學(xué)的知識進(jìn)行了溫習(xí),對我組設(shè)計(jì)的課題《零件計(jì)數(shù)器》所用到的知識也進(jìn)行了專門的梳理和消化。這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。通過這次課程設(shè)計(jì),我也知道了自己的不足。書本上的知識是死的,只有通過實(shí)踐
21、和具體的實(shí)例運(yùn)用,才能真正掌握知識、取得進(jìn)步。 這次課程設(shè)計(jì)的經(jīng)歷使我終身受益,我感受到做任何事情都是要真正用心去做的,也是真正的自己學(xué)習(xí)的過程和研究的過程,沒有學(xué)習(xí)就不可能有研究的能力,沒有自己的研究,就不會有所突破。 參考文獻(xiàn) [1] 張有德 趙志英 涂時(shí)亮編著,單片微型機(jī)原理、應(yīng)用與實(shí)驗(yàn).第五版. 上海.復(fù)旦大學(xué)出版社.2006 [2] 丁海軍、何坤金、王林等編著,程序設(shè)計(jì)基礎(chǔ)(C語言).北京.北京航空航天大學(xué)出版社.2009 附錄 附錄1:燒寫程序 附錄2:串口調(diào)試 附錄3:實(shí)物圖
- 溫馨提示:
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. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物業(yè)管理制度:常見突發(fā)緊急事件應(yīng)急處置程序和方法
- 某物業(yè)公司冬季除雪工作應(yīng)急預(yù)案范文
- 物業(yè)管理制度:小區(qū)日常巡查工作規(guī)程
- 物業(yè)管理制度:設(shè)備設(shè)施故障應(yīng)急預(yù)案
- 某物業(yè)公司小區(qū)地下停車場管理制度
- 某物業(yè)公司巡查、檢查工作內(nèi)容、方法和要求
- 物業(yè)管理制度:安全防范十大應(yīng)急處理預(yù)案
- 物業(yè)公司巡查、檢查工作內(nèi)容、方法和要求
- 某物業(yè)公司保潔部門領(lǐng)班總結(jié)
- 某公司安全生產(chǎn)舉報(bào)獎(jiǎng)勵(lì)制度
- 物業(yè)管理:火情火災(zāi)應(yīng)急預(yù)案
- 某物業(yè)安保崗位職責(zé)
- 物業(yè)管理制度:節(jié)前工作重點(diǎn)總結(jié)
- 物業(yè)管理:某小區(qū)消防演習(xí)方案
- 某物業(yè)公司客服部工作職責(zé)