單片機(jī)課程設(shè)計(jì)——電子秒表_第1頁(yè)
單片機(jī)課程設(shè)計(jì)——電子秒表_第2頁(yè)
單片機(jī)課程設(shè)計(jì)——電子秒表_第3頁(yè)
單片機(jī)課程設(shè)計(jì)——電子秒表_第4頁(yè)
單片機(jī)課程設(shè)計(jì)——電子秒表_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、安徽科技學(xué)院電氣與電子工程學(xué)院?jiǎn)纹瑱C(jī)原理與應(yīng)用設(shè)計(jì)課程設(shè)計(jì)設(shè)計(jì)說明書題 目: 秒 表 姓名(學(xué)號(hào)) * * * * * * 專 業(yè): 電氣工程及其自動(dòng)化 班 級(jí): 133 指 導(dǎo) 教 師 : * 2016 年 5 月 9 日目 錄摘要.1關(guān)鍵字.1第1章 硬件的選擇與設(shè)計(jì).1第2章 軟件設(shè)計(jì).9第3章 調(diào)試結(jié)果.19參考文獻(xiàn).20秒 表摘要:本次課程設(shè)計(jì),我們組設(shè)計(jì)的是秒表。使用AT89C51單片機(jī)設(shè)計(jì)一個(gè)2位的LED數(shù)碼顯示作為“秒表”:顯示時(shí)間為0099秒,每秒自動(dòng)加1,另設(shè)計(jì)一個(gè)“開始計(jì)時(shí)/時(shí)間鎖定”鍵和一個(gè)“復(fù)位”鍵。通過對(duì)鍵盤的掃描對(duì)時(shí)鐘的走時(shí)/停止進(jìn)行控制,項(xiàng)目采用定時(shí)器T0作為計(jì)

2、時(shí)器,每10ms發(fā)生一次中斷,每100次中斷加1s。在此期間,如“開始計(jì)時(shí)/時(shí)間鎖定”按鍵按下,程序方將TR0置為1,從而開啟中斷,秒表開始計(jì)時(shí),再按一次“開始計(jì)時(shí)/時(shí)間鎖定”按鍵,則將TR0置0,秒表停止計(jì)時(shí);如“復(fù)位”按鍵按下,程序?qū)R0置為0,同時(shí)將存儲(chǔ)時(shí)間的變量清零,從而中斷停止,并實(shí)現(xiàn)復(fù)位。我們?cè)O(shè)計(jì)的秒表完成了準(zhǔn)確計(jì)時(shí),和當(dāng)前時(shí)間的顯示。通過Keil uvison4進(jìn)行程序軟件的編譯,通過proteus進(jìn)行仿真,最后調(diào)試通過,完成此次課程設(shè)計(jì)。關(guān)鍵字:秒表 51單片機(jī) MAX7219 定時(shí) 第一章 硬件選擇與設(shè)計(jì)1、 芯片簡(jiǎn)介(1) 8051單片機(jī)MCS-51是指美國(guó)Inter公司

3、生產(chǎn)的一系列單片機(jī)的總稱。這一系列單片機(jī)包括8031、8051、8751、8032、8052、8752等。其中8051是最早、最典型的產(chǎn)品,該系列其他單片機(jī)都是以8051為核心發(fā)展起來的,都具有8051的基本結(jié)構(gòu)和軟件特征。8051單片機(jī)內(nèi)部包含了作為微型計(jì)算機(jī)所必需的基本功能部件,各部件相互獨(dú)立地集成在一塊芯片上,其基本功能特性如下:a、8位CPU;b、32條雙向可獨(dú)立尋址的I/O線;c、4KB程序存儲(chǔ)器(ROM),外部可擴(kuò)充至64KB;d、12KB數(shù)據(jù)存儲(chǔ)器(RAM),外部可擴(kuò)充至64KB;e、兩個(gè)16位定時(shí)/計(jì)數(shù)器;f、五個(gè)中斷源;g、全雙工的串行通信口;h、具有布爾運(yùn)算能力。其引腳排列

4、如圖: 管腳說明: VCC:供電電壓。 GND:接地。 P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的低八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。 P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址

5、接收。 P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1

6、”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:管腳P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7備選功能RXD(串行輸入口)TXD(串行輸出口)/INT0(外部中斷0)/INT1(外部中斷1)T0(記時(shí)器0外部輸入)T1(記時(shí)器1外部輸入)/WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)/RD(外部數(shù)據(jù)存儲(chǔ)器讀選通 P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ALE/PROG:當(dāng)

7、訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。 /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。 /EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將

8、內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。(2) MAX7219芯片MAX7219是7段共陰極LED顯示驅(qū)動(dòng)器,采用三線串行方式與8051通信。MAX7219片內(nèi)集成了BCD碼到B碼的譯碼器、多路復(fù)用掃描電路、LED字段和字位驅(qū)動(dòng)電路及RAM存儲(chǔ)器。MAX7219可以驅(qū)動(dòng)8個(gè)7段共陰極LED顯示器,通過一個(gè)10K左右的外接電阻可以設(shè)置所有LED的段電流。MAX7219具有低電壓保持,只要外接電壓超過2V,便可以保

9、存數(shù)據(jù)。典型的DIP封裝的MAX7219如圖所示, 其各引腳的功能如下:a、 DID0DID7:8個(gè)字段驅(qū)動(dòng)引腳;b、 SEGA-G,dp:7段驅(qū)動(dòng)和小數(shù)點(diǎn)驅(qū)動(dòng)輸出;c、 SEG dp:小數(shù)點(diǎn)驅(qū)動(dòng)輸出;d、 CLK:時(shí)鐘輸入,最高時(shí)鐘頻率為10MHz;e、 DIN:串行數(shù)據(jù)輸入。在CLK時(shí)鐘的上升沿,串行數(shù)據(jù)被移入MAX7219內(nèi)部移位寄存器,移入時(shí)最高位在前;f、 DOUT:串行數(shù)據(jù)輸出。輸入到DIN的數(shù)據(jù)經(jīng)過16.5個(gè)時(shí)鐘周期后,在DOUT端有效。在CLK的下降沿?cái)?shù)據(jù)移出;g、 ISET:峰值段電流設(shè)置??梢酝ㄟ^一個(gè)10K的上拉電阻來設(shè)置峰值段電流;h、 LOAD:加載輸入數(shù)據(jù)。LOAD信

10、號(hào)必須在第16個(gè)上升沿同時(shí)或之后,但在下一個(gè)時(shí)鐘上升沿之前變高,否則將會(huì)丟失數(shù)據(jù);i、 V+:+5V外接電源;j、 GND:接地,兩個(gè)GND引腳必須接地。 2、 硬件電路設(shè)計(jì)(1) 硬件原理圖(2) 硬件電路設(shè)計(jì)單片機(jī)最小系統(tǒng)單片機(jī)最小系統(tǒng)做為整個(gè)系統(tǒng)的控制部分,其包含了晶振電路、復(fù)位電路、電源等。外接晶振通過兩個(gè)30pF的電容接地,同時(shí)采用了手動(dòng)復(fù)位和上電復(fù)位兩種復(fù)位方式。該電路可以實(shí)現(xiàn)復(fù)位和程序運(yùn)行的基本功能。 MAX7219驅(qū)動(dòng)電路MAX7219是七段共陰極LED顯示驅(qū)動(dòng)器,可以驅(qū)動(dòng)8個(gè)七段共陰極LED顯示器,這里用其來驅(qū)動(dòng)2位的LED數(shù)碼管,通過一個(gè)10K左右的外接電阻可以設(shè)置所有的L

11、ED段電流。ADP分別驅(qū)動(dòng)數(shù)碼管的七段,DIG0、DIG1分別用來驅(qū)動(dòng)LED數(shù)碼管的兩位,即個(gè)位和十位。 數(shù)碼管顯示兩位數(shù)碼管用來顯示099秒的數(shù)字。 獨(dú)立按鍵兩個(gè)獨(dú)立按鍵分別用來開始計(jì)時(shí)、時(shí)間鎖定和復(fù)位,實(shí)現(xiàn)秒表的計(jì)時(shí)。 (4) 總電路圖 見下頁(yè)第2章 軟件設(shè)計(jì)軟件設(shè)計(jì)包括MAX7219芯片的初始化、向MAX7219芯片寫指令函數(shù)、MAX7219驅(qū)動(dòng)數(shù)碼管顯示函數(shù)、定時(shí)器初始化、中斷等。一、MAX7219寄存器及軟件函數(shù)介紹(1) MAX7219相關(guān)寄存器及數(shù)據(jù)格式對(duì)于MAX7219芯片,串行數(shù)據(jù)以16位包的形式從DIN引腳串行輸入,在CLK的每一個(gè)上升沿一位一位地送入芯片內(nèi)部16位移位寄存

12、器,而不管LOAD引腳的狀態(tài)如何,LOAD引腳必須在第16個(gè)CLK上升沿出現(xiàn)的同時(shí)或之后,并在下一個(gè)CLK上升沿之前變?yōu)楦唠娖?,否則移入的數(shù)據(jù)將丟失。16位數(shù)據(jù)包的格式如下:D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0地址寄存器地址寄存器數(shù)據(jù)1、 MAX7219的內(nèi)部寄存器及其地址MAX7219芯片通過D11D8的4位地址位譯碼,可尋址內(nèi)部14個(gè)寄存器,分別是8個(gè)顯示位寄存器、5個(gè)控制寄存器和1個(gè)空操作寄存器。如表1所示:表1 MAX7219內(nèi)部寄存器及其地址寄存器地址D15D12D11D816進(jìn)制代碼空操作00000x0數(shù)碼管000010x1數(shù)碼管100100

13、x2數(shù)碼管200110x3數(shù)碼管301000x4數(shù)碼管401010x5數(shù)碼管501100x6數(shù)碼管601110x7數(shù)碼管710000x8譯碼方式寄存器10010x9顯示亮度寄存器10100xA掃描范圍寄存器10110xB停機(jī)寄存器11000xC顯示測(cè)試寄存器11110xF2、 五個(gè)控制寄存器(1) 譯碼方式寄存器MAX7219的譯碼方式寄存器中,每一位與一個(gè)數(shù)字位相對(duì)應(yīng),如果對(duì)應(yīng)位為邏輯高電平,表示改位使用B碼譯碼,而邏輯低電平則表示改位不譯碼,如表2所示:表2 譯碼方式寄存器含義D7D016進(jìn)制代碼07不譯碼0000000000H0位譯成B碼,71位不譯碼0000000101H.03位使用B

14、譯碼,47位不譯碼000011110FH.07位使用B譯碼11111111FFH(2) 亮度寄存器MAX7219的亮度寄存器用于調(diào)節(jié)LED的顯示亮度。實(shí)際電路中,在ISET和電源正極之間連接外部電阻R來控制顯示亮度。R即可以是固定電阻,也可以是可變電阻,其最小值為9.25K。亮度寄存器中的數(shù)值表示了亮度的大小,共有16級(jí)亮度。如表3所示:表3 亮度寄存器亮度D7D016進(jìn)制代碼1/320H3/321H5/322H.29/32EH31/32FH(3) 掃描范圍寄存器MAX7219的掃描范圍寄存器用于設(shè)置需要顯示的數(shù)字位,其取值范圍為18。數(shù)據(jù)含義如表4所示:表4 掃描范圍寄存器顯示數(shù)字位D7D0

15、16進(jìn)制代碼第0位顯示0000H第01位顯示0011H第02位顯示0102H.第06位顯示1106H第07位顯示1117H(4) 停機(jī)寄存器MAX7219的停機(jī)寄存器用于停止LED顯示。當(dāng)MAX7219處于停機(jī)工作方式時(shí),掃描振蕩器停止工作,LED所有的段都截止,此時(shí)LED不顯示任何時(shí)數(shù)據(jù)。數(shù)據(jù)格式如表5:表5 停機(jī)寄存器工作方式D7D016進(jìn)制代碼停機(jī)工作00H正常工作11H(5) 顯示測(cè)試寄存器MAX7219的顯示測(cè)試寄存器用于測(cè)試LED的好壞。其有兩種工作方式,即正常工作和顯示測(cè)試。正常工作模式即一般的掃描顯示模式。數(shù)據(jù)格式含義如表6:表6 顯示測(cè)試寄存器工作方式D7D016進(jìn)制代碼正常

16、工作00H顯示測(cè)試11H3、 數(shù)字寄存器MAX7219的數(shù)字寄存器用于設(shè)置LED數(shù)碼管的顯示數(shù)字??芍苯訉ぶ贰?shù)字寄存器受譯碼方式寄存器的控制,可以選擇B譯碼或不譯碼。如果不譯碼,則數(shù)字寄存器中數(shù)據(jù)的D0D6位分別對(duì)應(yīng)7段LED顯示器的AG段,D7位對(duì)應(yīng)LED的小數(shù)點(diǎn)DP。某數(shù)據(jù)為為1,則點(diǎn)亮與改位對(duì)應(yīng)的段,而如果數(shù)據(jù)為0,則改段熄滅。如果使用B碼譯碼,數(shù)字寄存器可將BCD碼譯成B碼(09、-、E、H、L、P),如表7所示:表7 數(shù)字07寄存器顯示字符寄存器數(shù)據(jù)點(diǎn)亮段D7D6 D3 D2 D1 D0DP A B C D E F G 0 0 0 0 0 1 1 1 1 1 1 01 0 0 0

17、1 0 1 1 0 0 0 02 0 0 1 0 1 1 0 1 1 0 13 0 0 1 1 1 1 1 1 0 0 1 4 0 1 0 0 0 1 1 0 0 1 15 0 1 0 1 1 0 1 1 0 1 16 0 1 1 0 1 0 1 1 1 1 17 0 1 1 1 1 1 1 0 0 0 08 1 0 0 0 1 1 1 1 1 1 19 1 0 0 1 1 1 1 1 0 1 1_ 1 0 1 0 0 0 0 0 0 0 1E 1 0 1 1 1 0 0 1 1 1 1H 1 1 0 0 0 1 1 0 1 1 1L 1 1 0 1 0 0 0 1 1 1 0P 1 1 1

18、0 1 1 0 0 1 1 1 暗 1 1 1 1 0 0 0 0 0 0 0其中,小數(shù)點(diǎn)位DP由D7控制,D7=0時(shí),熄滅小數(shù)點(diǎn),D7=1時(shí),點(diǎn)亮小數(shù)點(diǎn)。本程序?qū)⑿?shù)點(diǎn)熄滅。(2) 向MAX7219芯片寫指令函數(shù)本程序中定義了向MAX7219芯片寫指令函數(shù),在MAX7219芯片的初始化中要調(diào)用向MAX7219芯片寫指令函數(shù),該函數(shù)有兩個(gè)形參add和dat,分別代表MAX7219芯片的寄存器地址和數(shù)據(jù)內(nèi)容,即16位數(shù)據(jù)包的高8位和低8位。在控制寄存器中add為控制寄存器的地址,dat為控制寄存器中的數(shù)據(jù)內(nèi)容;在數(shù)字寄存器中add對(duì)應(yīng)的實(shí)參是數(shù)組address,dat對(duì)應(yīng)的實(shí)參是數(shù)組dat,ad

19、dress分別取數(shù)字寄存器07的地址,dat分別取數(shù)字07的16進(jìn)制編碼。(3) MAX7219初始化函數(shù)MAX7219初始化函數(shù)主要是對(duì)5種控制寄存器的初始化,即設(shè)置5種控制寄存器的狀態(tài)及數(shù)據(jù)格式。這里設(shè)置譯碼方式寄存器為使用B碼譯碼方式,所以譯碼方式寄存器數(shù)據(jù)為0xff;顯示亮度為11/32,所以亮度顯示寄存器數(shù)據(jù)為0xf5;掃描范圍為第01位數(shù)字顯示,所以掃描范圍寄存器數(shù)據(jù)為0x01;設(shè)置MAX7219為正常工作方式,所以停機(jī)寄存器數(shù)據(jù)為0x01;設(shè)置MAX7219為正常工作而不是顯示測(cè)試工作方式,所以顯示測(cè)試寄存器數(shù)據(jù)為0x00。(四)MAX7219驅(qū)動(dòng)數(shù)碼管顯示函數(shù)該函數(shù)將計(jì)數(shù)值的十

20、位和各位分開分別送人MAX7219數(shù)字寄存器的第0位和第1位。(五)定時(shí)器及中斷初始化本實(shí)驗(yàn)軟使用的是定時(shí)器T0作計(jì)時(shí)器,每10ms發(fā)生一次中斷,每100次中斷為1s,定時(shí)器設(shè)置為工作方式1,中斷時(shí)間,其中,所以初值,裝入初值TH0=d8H,TL0=efH。2、 程序流程圖3、 程序#include#define uchar unsigned char#define DECODE 0x09 /譯碼方式寄存器地址#define INTENSITY 0x0a /亮度寄存器地址#define SCANLIMIT 0x0b /掃描范圍寄存器地址#define SHUTDOWN 0x0c /停機(jī)寄存器地

21、址#define DISPLAYTEST 0x0f /顯示測(cè)試寄存器地址void delay(uchar);/延時(shí)函數(shù)定義uchar count,keycount;uchar x;sbit DIN=P30; /MAX7219芯片接口定義sbit LOAD=P31;sbit CLK=P32;sbit key0=P10; /按鍵接口定義sbit key1=P11;/*MAX7219芯片讀寫地址、內(nèi)容*/uchar address=0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08;uchar dat=0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09;void writemax7219(uchar add,uchar dat) /向MAX7219寫指令函數(shù) uchar ADS,i,j; LOAD=0; i=0; while(i16) if(i=1;j-) DIN=ADS&0x80; /取ADS的最高位送入DIN,其余位均為0 ADS=ADS1; /ADS左移1位,使ADS的次高位變?yōu)樽罡呶?CLK=1; /在每個(gè)CLK的上升沿,將這8位數(shù)據(jù)的最高位 /移入MAX7219的內(nèi)部寄存器中,移動(dòng)8

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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. 人人文庫(kù)網(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)論