多通道百分秒表設計_第1頁
多通道百分秒表設計_第2頁
多通道百分秒表設計_第3頁
多通道百分秒表設計_第4頁
多通道百分秒表設計_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、單片機原理及應用課程設計報告課題名稱多通道百分秒表設計學院專業班級學號姓名時間2016年月指導教師目錄一、內容提要51.設計任務52設計要求:53設計提示:5二、步驟及方案5三、硬件設計61、單片機的選擇與外圍電路62.單片機與顯示模塊電路73.鍵盤電路84.顯示LED電路95.外圍小燈電路106.整體電路protuus仿真圖11四、軟件設計121.系統主函數程序122.初始化函數程序123、顯示函數程序134.開關函數程序145.中斷函數程序15五、調試16六、課程設計心得體會17參考文獻18附錄:源程序代碼18基于單片機的多通道百分秒表設計摘要:近年來隨著科技的飛速發展,單片機的運用正在不

2、斷的走向深入,同時帶動傳統控制檢測日新月異的更新。本秒表設計采用8051單片機為中心器件,利用其定時/計數器定時、計數的原理,結合顯示電路、按鍵控制電路等外圍電路來完成。將軟、硬件有機的結合起來,使得系統能夠實現4位LED顯示,顯示時間為00.00到99.99秒,每秒自動加一,可以用開關控制開始、停止、復位,并且能擁有多通道(兩個或以上)分別計時功能。其軟件系統采用C語言編寫程序,包括:顯示程序、中斷初始化程序、中斷服務程序、顯示程序及開關控制程序。通過KEIL4與PROTEUS進行聯合調試,使得硬件與軟件有機的結合起來,達到了預期目的。關鍵詞:單片機,秒表,多通道 Abstract:In r

3、ecent years along with the rapid development of science and technology, the single-chip microcomputer application is constantly deepening, led the traditional control test at the same time change rapidly update. The stopwatch design using 8051 single chip as a core device, using the timer / counter

4、timing, counting principles, combined with display circuit, control circuit and other peripheral circuit to complete. The soft, hardware of organic combination, so that the system can achieve 4 LED display, display time is 0 to 99.99 seconds, plus a second automatic, can use the switch to control st

5、art, stop, reset, and can have multiple channels ( two or more ) are functions of time. The system software using C language programming, including: display program, interrupt initialization, interrupt service routines, display and switch control procedures. Through the KEIL4 and PROTEUS joint debug

6、ging, which makes hardware and software combined with organic, to achieve the expected goal. Key words: Single Chip Microcomputer; Stopwatch; Multi Channel 一、內容提要1.設計任務基于AT89C51設計一個5位LED數碼作為“多通道百分秒表”。2設計要求:(1)、顯示時間為00.0099.99秒,每百分之秒自動加1。(2)、設計一個有三個按鍵的鍵盤。K1:“開始”“停止”“復位”“開始”。K2:顯示通道數“加一”。K3:顯示通道數“減一”。

7、(3)、 設計每到一秒鐘有聲音或LED指示提醒功能,可通過按鈕打開及關閉該提醒功能。(4)、其他功能。D2、D3小燈按照01、02通道分別計時時間到10秒時熄滅。(定時:到某一時間有LED提醒功能)。3設計提示:(1)、用6位個7段LED數碼管作為顯示設備,最高位顯示通道號,低4位顯示時間。(2)、可采用定時器,定時時間10ms。(3)、參考Protuse仿真效果圖:二、步驟及方案根據系統的設計要求,選擇AT89C51單片機作為系統的核心來完成定時、計數的功能,用74HC245來完成數據的鎖存和對LED的刷新控制,用外圍開關電路實現對單片機的外圍輸入,用小燈來實現對于計時等功能的提示。該系統的

8、設計總體思路如下:開關K1把開始信號傳輸給AT89C51單片機,單片機開始計數,然后在P2口輸出信號,通過74HC245后傳輸給LED數碼管控制數碼管位數是否啟用,然后P0口傳輸相對應的信號控制啟用的數碼管位輸出的具體信號。同理,其余開關的信號分別控制了AT89C51的停止、復位和通到的加減。外接的小燈接到P1.5、P1.6、P1.7口,分別作用于計時提示。綜上,可知7SEG-MPSX6-CC的最高2位用來顯示通道,低四位用來顯示時間(00.00到99.99秒),按照功能要求,確定由四個部分組成:主控制器,開關控制、小燈顯示、LED顯示。總體設計電路結構圖如圖所示:鍵盤輸入單片機AT89C51

9、LED顯示小燈顯示通道號 秒數圖02.01總體設計電路結構圖三、硬件設計1、單片機的選擇與外圍電路AT89C51作為秒表計時系統的核心器件。該器件是INTEL公司生產的MCS51系列單片機的基礎產品,采用了可靠的CMOS工藝制造技術,具有高性能的8位單片機,屬于標準的MCS51的CMOS產品。不僅結合了HMOS的高速和高密度技術及HMOS的低功耗特征,而且繼承和擴展了MCS48單片機的體系結構和指令系統。單片機小系統的電路圖如圖所示。圖03.01 單片機的選擇與外圍電路2.單片機與顯示模塊電路由74HC245芯片和電阻,導線構成,控制鎖存單片機輸出信號。74HC245元件的封裝:(1)第1腳D

10、IR,為輸入輸出端口轉換用,DIR=“1”高電平時信號由“A”端輸入“B”端輸出,DIR=“0”低電平時信號由“B”端輸入“A”端輸出。 (2)第29腳“A”信號輸入輸出端,A1=B1、A8=B8,A1與B1是一組,如果DIR=“1”OE=“0”則A1輸入B1輸出,其它類同。如果DIR=“0”OE=“0”則B1輸入A1輸出,其它類同。(3)第1118腳“B”信號輸入輸出端,功能與“A”端一樣,不在描述。 (4)第19腳OE,使能端,若該腳為“1”A/B端的信號將不導通,只有為“0”時A/B端才被啟用,該腳也就是起到開關的作用。 (5)第10腳GND,電源地。 (6)第20腳VCC,電源正極。

11、圖03.02 74HC245結構圖3.鍵盤電路由電源、導線、電阻、開關(K1、K2、K3、K4、K5五個開關)構成,K1連接P1.0口控制開始;K2連接P1.1口控制暫停;K3連接P1.2口控制復位清零;K4連接P1.3口控制通道減1;K5連接P1.4口控制通道加1。如圖:圖03.03鍵盤電路4.顯示LED電路由7SEG-MPSX6-CC共陰LED8段位顯示器構成:結構圖為:abcde fg12345. dp678910e f cc g ha b V c d 圖03.04 顯示器結構圖表03.05顯示器真值表顯示字符共陰極接法八段狀態斷碼(共陰)spgfedcba0001111113FH100

12、00011006H2010110115BH3010011114FH40110011066H5011011016DH6011111017DH70000011107H8011111117FH9011011116FH.1000000080H綜上則可知:顯示0123456789.斷碼3FH06H5BH4FH66H6DH7DH07H7FH6FH80H5.外圍小燈電路采用了3個LED小D1、D2、D3,當按鈕按下后,3個LED小燈接入電路,接口為:D1端接到P1.5口、D2端接到P1.6口、D3端接到P1.7口,其中D1小燈按照當前通道隔一秒亮一次,D2、D3小燈按照01、02通道分別計時時間到10秒時熄

13、滅。如圖。圖03.06外圍小燈電路6.整體電路protuus仿真圖圖03.07整體電路protuus仿真圖四、軟件設計系統程序包括:主函數程序、顯示函數程序、中斷函數程序、開關函數程序、系統初始化函數程序,通道設置函數程序。主程序結構:1.系統主函數程序主程序程序中調用了兩個子函數程序,分別是中斷初始化函數程序及顯示函數程序。開始系統初始化函數顯示函數圖04.01系統主函數程序圖開始2.初始化函數程序設定定時器狀態開中斷對定時器賦初值結束圖04.02初始化函數程序圖初始化函數程序包括對定時器/計數器的工作方式設定、初值設定。3、顯示函數程序 開始 判斷通道標識a為1還是2通道2數據通道1數據數

14、碼顯示結束圖04.03顯示函數程序圖顯示函數程序通過識別兩個通道的刷新標志位flag_1和flag_2來實現雙通道顯示轉換。4.開關函數程序結束開始結束圖04.04 開關函數程序圖開關函數程序主要通過P1.0、P1.1、P1.2三個引腳來操作秒表的開始、停止、清零。5.中斷函數程序開始結束 圖04.05中斷函數程中斷函數程序通過P1.3和P1.4控制用戶選擇的通道數,然后根據開關函數來分別對兩個通道的刷新標志位flag_1和flag_2賦值,進而實現通道的互相切換。五、調試把程序從KEIL中生成HEX文件,導入單片機中,測試是否實現題目要求的各個功能。1.由于開始計算中斷初始時間不準確,故重新

15、設置初始化時間;2.經過調試,延時時間設為1000效果最佳;3.由于3通道數要求過于復雜,故采用雙通道設計;4.由于難以實現一個按鍵具備:開始、停止及清零功能,所以只能采用三個按鍵分別控制。經過耐心的調試,最終實現設計要求。PROTEUS仿真圖如圖:圖05.01 一通道圖圖05.02 二通道圖六、課程設計心得體會回顧起此次課程設計,感覺受益匪淺,從拿到題目到完成整個編程,從理論實踐,學到很多很多的課堂理論中沒學到過的東西,不僅對鍵盤的識別技術這章節的知識點有了深刻的認識,而且對這學期開設的單片機這門課程有了更全面的了解,尤其是在學習使用proteus軟件片編程和仿真時收獲良多。通過這次單片機課

16、程設計,還使我懂得了實踐的重要性。同時在程序調試的過程中提高己的發現問題、解決問題、實際動手和獨立思考的能力。使用軟件和編寫程序時一定要注意每一個細節,一個分號的遺漏也會造成錯誤。制作前一定要做好規劃設計,反復論證和計算,防止考慮不到的地方使得做好的東西需要翻工。如果制作或使用中發現問題,既極大地打擊積極性和自信心,還會極大地消耗時間,拖延項目的進度。制作硬件也一定要耐心細致,極小的失誤都會造成短路等問題而直接造成大錯。在設計中,如果沒有考慮到哪怕何一個細節,都有可能讓沒考慮到的情況造成失誤,使各個子程序的時序和運行之間可能會互相干涉和沖突。此外遇到問題有時候憑借一個人或一組人的智慧是不好解決

17、的。我們周圍有許多很強的同學,還有許多經驗豐富,實力雄厚的學長,通過請教和討論可以產生一種茅塞頓開的效果。事情總是越說越明白,而且好多非常有新意和實用價值的想法也是在大家的討論中得到和發展出來的。參考文獻1 劉娟,梁衛文等編著.單片機C語言與PROTEUS仿真技能實訓【M】.北京:中國電力出版社,2010.2 彭偉編著.單片機C語言程序設計試訓100例基于8051+Proteus仿真【M】.北京:電子工業出版社,2009.3 吳亦鋒、陳德為.單片機原理與接口技術.北京:電子工業出版社,2010.4 邊清遠、王志強.MCS-51單片機運用開發實用子程序.北京:人民郵電出版社,2005.5 姚國林

18、.單片機原理與應用技術.北京:清華大學出版社,2009.附錄:源程序代碼#include "reg51.h"#define THC0 0xd8#define TLC0 0xf0void StarandStop();unsigned char code Duan=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;/0-9段數碼管,共陰極unsigned char DataBuffer4=0,0,0,0,DataBuffer_14=0,0,0,0,DataBuffer_24=0,0,0,0;/四個數碼管顯示數值,數組變量定義un

19、signed int a=1;unsigned int hdrSec_1=0,miao_1=0,hdrSec_2=0,miao_2=0;bit flag_1=0,flag_2=0;/三個通道數碼管刷新標志位sbit P10=P10; sbit P11=P11;sbit P12=P12;sbit P13=P13;sbit P14=P14;sbit P15=P15;sbit P16=P16;sbit P17=P17;sbit P07=P07;/*程序初始化*/void timer1_init()TMOD=0x11;/初始化兩個定時器TR0=1; /啟動定時器0ET0=1; /允許定時器中斷EA=1

20、; /總中斷打開TH0=THC0;TL0=TLC0;/*顯示程序*/void display()unsigned char b; int x;while(1)if(miao_1=10)P16=0;if(miao_2=10)P17=0;if(a=1)if(miao_1%2=1)P15=0;else if(miao_1%2=0) P15=1;DataBuffer0=DataBuffer_10;DataBuffer1=DataBuffer_11;DataBuffer2=DataBuffer_12;DataBuffer3=DataBuffer_13;if(a=2)if(miao_2%2=1)P15=0

21、;else if(miao_2%2=0)P15=1;DataBuffer0=DataBuffer_20;DataBuffer1=DataBuffer_21;DataBuffer2=DataBuffer_22;DataBuffer3=DataBuffer_23;for(b=0;b<6;b+)P2=0xFF;switch(b)case 0:P2 = 0xFE;P0 = 0x3F;break;case 1:P2 = 0xFD;P0 = Duana;break;case 2:P2 = 0xFB;P0 = DuanDataBuffer0;break;case 3:P2 = 0xF7;P0 = Du

22、anDataBuffer1;P07=0x80;break;case 4:P2 = 0xEF;P0 = DuanDataBuffer2;break;case 5:P2 = 0xDF;P0 = DuanDataBuffer3;break;for(x=1000;x>1;x-); /*中斷程序*/void timer0() interrupt 1TMOD=0x11;/初始化兩個定時器TH0=THC0;TL0=TLC0;/*通道設置*/if(P13=0)a=1;if(P14=0)a=2;StarandStop(); if(flag_1=1&&flag_2=1)hdrSec_1+;h

23、drSec_2+;if(hdrSec_2>=99)hdrSec_2=0;miao_2+;if(miao_2>=99) miao_2=0; DataBuffer_20=miao_2%100/10; /前兩位顯示秒表DataBuffer_21=miao_2%10;DataBuffer_22=hdrSec_2%100/10; /后兩位顯示百分秒表DataBuffer_23=hdrSec_2%10;if(hdrSec_1>=99)hdrSec_1=0;miao_1+;if(miao_1>=99)miao_1=0; DataBuffer_10=miao_1%100/10; /前兩

24、位顯示秒表DataBuffer_11=miao_1%10;DataBuffer_12=hdrSec_1%100/10; /后兩位顯示百分秒表DataBuffer_13=hdrSec_1%10; if(flag_1=1&&flag_2=0)hdrSec_1+;if(hdrSec_1>=99)hdrSec_1=0;miao_1+;if(miao_1>=99) miao_1=0; DataBuffer_10=miao_1%100/10; /前兩位顯示秒表DataBuffer_11=miao_1%10;DataBuffer_12=hdrSec_1%100/10; /后兩位顯示百分秒表DataBuffe

溫馨提示

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

評論

0/150

提交評論