版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)課程設(shè)計(jì)報(bào)告 題 目 零件計(jì)數(shù)器 專 業(yè) 通信工程 學(xué) 號 姓 名 指導(dǎo)教師 劉玉宏 學(xué) 校 河海大學(xué)常州校區(qū) 摘要:零件計(jì)數(shù)器生產(chǎn)實(shí)踐中具有很實(shí)際的用途,我們所設(shè)計(jì)的零件計(jì)數(shù)器的功能是把接在INT0上的單穩(wěn)信號當(dāng)作零件信號,每來一個零件,單片機(jī)計(jì)數(shù)一次,當(dāng)計(jì)滿10次時(shí),蜂鳴器發(fā)出一聲警告音,并使繼電器閉合一次,產(chǎn)生零件打包動作,要求LED上顯示當(dāng)前一共生產(chǎn)了多少零件,并能通過串口將零件數(shù)目發(fā)送給PC機(jī)。選擇這個項(xiàng)目可以幫助我們更加了解中斷、定時(shí)器及串口是如何工作的,提高對實(shí)際問題的動手操作能力以及解決問題的能力。本課程采用C51編寫程序,通過Keil C編寫為機(jī)器代碼,燒寫入
2、單片機(jī)中,在實(shí)驗(yàn)箱上進(jìn)行操作,完成單片機(jī)這種實(shí)用工具的整體的學(xué)習(xí)。 關(guān)鍵字:單片機(jī) 零件計(jì)數(shù)器 LED顯示 串口通信目錄一、系統(tǒng)設(shè)計(jì)1.1主要組件及電路框圖···································41.2軟件
3、設(shè)計(jì)方框圖及流程圖·······························51.3電路功能················&
4、#183;·····························7二、實(shí)驗(yàn)過程及結(jié)果2.1 程序設(shè)計(jì)·················&
5、#183;···························92.2調(diào)試過程·····················
6、;························132.3問題及解決························&
7、#183;··················132.4調(diào)試結(jié)果 ·····························
8、83;··············133、 結(jié)論3.1課程設(shè)計(jì)特點(diǎn)及貢獻(xiàn)································
9、183;143.2改善建議···········································143.3心得體會···
10、183;·······································14參考文獻(xiàn)·········
11、183;·······································15附錄·········
12、3;···········································16一、系統(tǒng)設(shè)計(jì)1.1 主要組件及電路框圖本課程設(shè)計(jì)使用的實(shí)驗(yàn)箱主要由單片機(jī)最小
13、系統(tǒng),LED數(shù)碼管顯示部分,外部中斷控制部分,獨(dú)立式與行列式鍵盤按鍵輸入部分,串行口通信部分,蜂鳴器與繼電器等部分組成。4位共陰數(shù)碼管動態(tài)顯示8個限流電阻 P0 單片機(jī)AT89C52 P2 P3復(fù)位選位INT0蜂鳴器繼電器電路總圖與功能如圖所示,每當(dāng)來一次外部中斷時(shí),內(nèi)部計(jì)數(shù)一次,并將數(shù)值通過4位共陰數(shù)碼管動態(tài)顯示出來。而單片機(jī)的P2口可以選擇四根不同的數(shù)碼管來動態(tài)顯示,通過視覺暫留達(dá)到同時(shí)顯示的效果。同時(shí)內(nèi)部程序檢測每當(dāng)計(jì)數(shù)十次時(shí),會形成一個繼電器閉合的零件打包動作,并通過程序使得蜂鳴器發(fā)出警報(bào)。1.2 軟件設(shè)計(jì)框圖及流程圖零件計(jì)數(shù)器系統(tǒng)由多個函數(shù)構(gòu)成,其中包括主函數(shù),初始化函數(shù),延時(shí)函數(shù),
14、串口發(fā)送函數(shù),蜂鳴器函數(shù),繼電器函數(shù)等。串口和外部中斷初始化函數(shù)主 函 數(shù)蜂鳴器函數(shù)繼電器函數(shù)串口通信函數(shù)數(shù)碼管動態(tài)顯示顯示子函數(shù)延時(shí)函數(shù) 單片機(jī)零件計(jì)數(shù)器軟件系統(tǒng)各個函數(shù)框圖開始流程圖:初始化零件數(shù)為0LED動態(tài)顯示否是否按下S_INT0?是零件數(shù)加1LED動態(tài)顯示否零件數(shù)是十的倍數(shù)?是蜂鳴器響一次,繼電器閉合,執(zhí)行零件打包執(zhí)行串口發(fā)送函數(shù)是否按下復(fù)位鍵是否1.3 主要電路功能B部分是單片機(jī)的最小系統(tǒng)部分,單片機(jī)為內(nèi)含8K FLASH程序存儲器的STC89C52RC,EA接高電平;各并行口都加了10K的上拉電阻;晶振為11.0592M。設(shè)置了上電復(fù)位和手動復(fù)位電路。S1為手動復(fù)位按鈕。C部分
15、電路由4位一體的數(shù)碼管LED1、單個數(shù)碼管LED2和8個獨(dú)立發(fā)光二極管L1-L7組成。這3個部分都是共陰結(jié)構(gòu),并聯(lián)在一起,連接在P0口上。LED1用于完成LED動態(tài)顯示實(shí)驗(yàn),各個位選線為P24P27,段碼由P0口輸出;LED2的COM端接地,完成LED靜態(tài)顯示實(shí)驗(yàn);L1L7,可以方便地讀出P0輸出的二進(jìn)制數(shù)據(jù),亦可做流水燈實(shí)驗(yàn)。7407在此起驅(qū)動作用。I部分電路為蜂鳴器和繼電器電路。蜂鳴器采用9012三極管驅(qū)動,其基極接到RD端,當(dāng)RD端為低電平時(shí),三極管導(dǎo)通,蜂鳴器響。否則關(guān)斷。繼電器采用9013三極管驅(qū)動,其基極接到WR端,當(dāng)WRD端為低電平時(shí),三極管關(guān)斷,繼電器不吸合,常閉觸點(diǎn)閉合,常開
16、觸點(diǎn)打開,D1熄滅;反之則反。2、 實(shí)驗(yàn)過程與結(jié)果2.1 程序設(shè)計(jì)#include<reg52.h>#define uint unsigned int#define uchar unsigned char/*LED 的字模,共陰數(shù)碼管0-9*/ uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40; uint count1 = 0;/定義計(jì)數(shù)變量uint count2 = 0;uint Leout4;sbit Beep = P37; /定義蜂鳴器對應(yīng)單片機(jī)引腳sbit RELAY = P36;
17、 /定義繼電器對應(yīng)單片機(jī)引腳/*延時(shí)函數(shù)*/void delay(uint z) uint i、j; for(i=z; i > 0; i-) for(j = 110; j > 0; j-);/*數(shù)碼管動態(tài)顯示函數(shù)*/void display() uchar i; LedOut3 = tablecount2%10000/1000; LedOut2 =tablecount2%1000/100; LedOut1 = tablecount2%100/10; LedOut0 = tablecount2%10;for( i=0; i<4; i+) P0 = LedOuti; switch
18、(i) case 0:P2 = 0x7f;break; case 1:P2 = 0xbf;break; case 2:P2 = 0xdf;break; case 3:P2 = 0xef;break; delay(5); /*蜂鳴器函數(shù)*/void beep()Beep = 0;delay(100);Beep = 1;/*繼電器函數(shù)*/void relay()RELAY = RELAY;/*串口發(fā)送函數(shù)*/void send()uchar LedOut14; LedOut13 = count2%10000/1000 + 0x30; LedOut12 = count2%1000/100 + 0x3
19、0; LedOut11 = count2%100/10 + 0x30; LedOut10 = count2%10 + 0x30;SBUF = LedOut13; while(!TI); TI = 0; SBUF = LedOut12; while(!TI); TI = 0; SBUF = LedOut11; while(!TI); TI = 0; SBUF = LedOut10; while(!TI); TI = 0;SBUF = 'n' while(!TI); TI = 0;/*外部中斷0函數(shù)*/void counter() interrupt 0 EX0=0; count1
20、+; /中斷計(jì)數(shù) count2+; send(); EX0=1;/*串口初始化函數(shù)*/void initUart(void) TMOD|=0x20; SCON=0x50; PCON&=0x7f; TH1=0xfd; TL1=0xfd; TR1=1;/*主函數(shù)*/void main()initUart();IT0=1; /下降沿觸發(fā) EA=1; /開外部中斷 EX0=1;while(1)display();if(count1=10)count1 = 0;beep();relay(); 2.2調(diào)試過程由于單片機(jī)實(shí)驗(yàn)箱的存在,因此硬件部分無需做過多準(zhǔn)備,主要是進(jìn)行軟件程序方面的調(diào)試。程序的調(diào)
21、試我們是分一個一個模塊進(jìn)行的,具體的順序是先進(jìn)行數(shù)碼管動態(tài)顯示模塊的調(diào)試,然后是蜂鳴器和繼電器的調(diào)試,最后是串口通信的調(diào)試。這樣調(diào)試的好處是,當(dāng)某一個功能沒有實(shí)現(xiàn)時(shí),我們可以知道是哪一段程序出了問題,可以迅速地對其修改,直到每個模塊都能正確而準(zhǔn)確地完成各自的功能為止。等到所有的模塊調(diào)試完畢,就能實(shí)現(xiàn)零件計(jì)數(shù)器的功能。這樣與整體調(diào)試相比,等到出現(xiàn)問題,再一個個地去找是哪一段程序發(fā)生了錯誤,大大地提高了工作效率,節(jié)省了時(shí)間。2.3問題與解決問題一:蜂鳴器的聲音太小,幾乎無法聽到。解決方案:改變蜂鳴器的延時(shí)時(shí)間,直到合適為止。問題二:數(shù)碼管動態(tài)顯示的調(diào)試時(shí),顯示的數(shù)字閃的比較厲害。經(jīng)過多次調(diào)試,最終
22、取得了比較好的顯示效果。解決方案:是因?yàn)閿?shù)碼管顯示延遲的時(shí)間太短,改變延時(shí)的時(shí)間,直到調(diào)試成功。問題三:進(jìn)行的串口調(diào)試時(shí),PC機(jī)但發(fā)現(xiàn)收到的數(shù)據(jù)是亂碼,不是發(fā)送的數(shù)據(jù)。解決方案:把發(fā)送的數(shù)據(jù)由十六進(jìn)制顯示改為字符顯示,在程序中也有所調(diào)整后,發(fā)現(xiàn)PC機(jī)收到的數(shù)據(jù)即是當(dāng)前的計(jì)數(shù)數(shù)據(jù)。2.4調(diào)試結(jié)果經(jīng)過反復(fù)調(diào)試,最終解決了遇到的問題,較好地實(shí)現(xiàn)了零件計(jì)數(shù)器的功能:1、每來一個零件,單片機(jī)計(jì)數(shù)一次,LED上顯示當(dāng)前一共生產(chǎn)了多少零件;2、當(dāng)計(jì)滿10次時(shí),蜂鳴器發(fā)出一聲警告音,并使繼電器閉合一次,產(chǎn)生零件打包動作;3、可以通過串口在PC上顯示零件個數(shù)。三、結(jié)論3.1 本課程設(shè)計(jì)的主要特點(diǎn)及貢獻(xiàn) 本次課程
23、設(shè)計(jì)的主要特點(diǎn)是利用C51編程實(shí)現(xiàn)基于單片機(jī)的零件計(jì)數(shù)器,而非使用匯編語言。在編程中,要學(xué)會寫出各種子程序,然后合理的調(diào)用它們,還要根據(jù)實(shí)際顯示結(jié)果不斷地去修改和完善,使其最終顯示出符合要求的結(jié)果。設(shè)計(jì)中用到燒寫工具以及串口助手等軟件工具,無需考慮硬件設(shè)計(jì),只需完成軟件設(shè)計(jì)部分。本次課程設(shè)計(jì)完成了基于單片機(jī)的零件計(jì)數(shù)器的設(shè)計(jì),不僅考察了我對于單片這門課的學(xué)習(xí)掌握情況,還考察了我對C語言的基礎(chǔ)知識是否扎實(shí),讓我們學(xué)會將各學(xué)科的知識融會貫通。3.2 改善建議本課程設(shè)計(jì)中還有一些需要改善的方面:1、 當(dāng)零件計(jì)滿10個時(shí),繼電器閉合一次,產(chǎn)生零件打包動作,卻不能夠顯示打包的次數(shù),可以設(shè)計(jì)一段可以顯示打包次數(shù)的程序。2、 可以通過一些記憶芯片,實(shí)現(xiàn)當(dāng)前計(jì)數(shù)結(jié)果的保存,一共查詢及對數(shù)據(jù)的相關(guān)處理。3.3 心得體會通過這學(xué)期對單片機(jī)這門課程的學(xué)習(xí),我對單片機(jī)的原理和運(yùn)用有了一定的了解。但是當(dāng)自己動手去設(shè)計(jì)零件計(jì)數(shù)器時(shí),還是遇到了很多的問題。程序出現(xiàn)了許多錯誤,使得調(diào)試時(shí)無法成功。我們選擇的零件計(jì)數(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ǎng)素補(bǔ)充劑的市場前景與監(jiān)管-洞察分析
- 網(wǎng)絡(luò)時(shí)代的文化傳播路徑-洞察分析
- 圖像處理與排版協(xié)同優(yōu)化-洞察分析
- 異常流量監(jiān)測與識別-洞察分析
- 《臨江仙》(夢后樓臺高鎖)課件
- 人際關(guān)系與溝通風(fēng)格-組織行為學(xué)課件
- 辦公環(huán)境中的創(chuàng)新教育實(shí)踐與思考
- 辦公環(huán)境下的學(xué)生運(yùn)動團(tuán)隊(duì)建設(shè)與組織
- 企業(yè)中層管理崗位的工作規(guī)劃與管理執(zhí)行
- 企業(yè)員工子女教育的政策支持
- 檢驗(yàn)檢測機(jī)構(gòu)資質(zhì)認(rèn)定現(xiàn)場評審日程表及簽到表
- 完整版高低壓開關(guān)柜投標(biāo)文件技術(shù)標(biāo)
- 蘭州市行政區(qū)劃代碼表
- 鐵路貨場平面圖和縱斷面CAD(共3頁)
- 管鮑之交-歷史劇劇本(共4頁)
- [交流][jtag]跟我學(xué)jtag協(xié)議破解——第一彈初識jtagtap狀態(tài)機(jī)
- 尼康FM2說明書25頁
- You-are-My-Sunshine中英文歌詞
- 甲醇制氫裝置冷凝器(E0103)設(shè)計(jì)
- 學(xué)校德育活動安排表
- 2021年保證書(女方出軌)
評論
0/150
提交評論