wsf單片機(jī)課程設(shè)計(jì)論文_第1頁(yè)
wsf單片機(jī)課程設(shè)計(jì)論文_第2頁(yè)
wsf單片機(jī)課程設(shè)計(jì)論文_第3頁(yè)
wsf單片機(jī)課程設(shè)計(jì)論文_第4頁(yè)
wsf單片機(jī)課程設(shè)計(jì)論文_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 / 25 文檔可自由編輯打印 山東財(cái)經(jīng)大學(xué)單片機(jī)課程設(shè)計(jì)單片機(jī)課程設(shè)計(jì)題目:題目:基于單片機(jī)的秒表系統(tǒng)設(shè)計(jì)基于單片機(jī)的秒表系統(tǒng)設(shè)計(jì)學(xué)學(xué) 院院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 專(zhuān)專(zhuān) 業(yè)業(yè) 電子信息科學(xué)與技術(shù) 班班 級(jí)級(jí) 電子0902 學(xué)學(xué) 號(hào)號(hào) 姓姓 名名 學(xué)學(xué) 號(hào)號(hào) 姓姓 名名 指導(dǎo)教師指導(dǎo)教師 山東財(cái)經(jīng)大學(xué)教務(wù)處制二 一二 年 六 月文檔可自由編輯打印基于單片機(jī)的秒表系統(tǒng)設(shè)計(jì)摘摘 要要 本文講述了一個(gè)基于單片機(jī)的秒表系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),系統(tǒng)有啟動(dòng)、暫停、清零按鈕,每一秒鐘都有提醒功能,秒表的最長(zhǎng)計(jì)時(shí)長(zhǎng)度為 9:59.9,超過(guò)此長(zhǎng)度,報(bào)警。 本文首先分析對(duì)秒表系統(tǒng),研究設(shè)計(jì)方案,根據(jù)自己所學(xué)對(duì)秒表系統(tǒng)的

2、硬件及軟件進(jìn)行開(kāi)發(fā)。最后總結(jié)經(jīng)驗(yàn)及實(shí)驗(yàn)心得。關(guān)鍵詞:?jiǎn)纹瑱C(jī);秒表系統(tǒng);LCD 顯示Abstract This article describes the design and implementation of a microcontroller-based stopwatch, the system has to start, pause, clear button every second to remind function, the the stopwatch longest timing length of 9:59.9, more than this length, alarm.

3、This paper first analyzes the stopwatch system, study design, according to the stopwatch system hardware and software development. Finally, sum up experience and experimental experience.Keywords: microcontroller;stopwatch;LCD display文檔可自由編輯打印目 錄摘 要.IABSTRACT.1引 言.I一、設(shè)計(jì)要求.2二、設(shè)計(jì)方案分析.2(1)方案設(shè)計(jì).2(2)知識(shí)背景介

4、紹.3三、硬件設(shè)計(jì).3四、軟件設(shè)計(jì).3五、測(cè)試結(jié)果及分析.9六、測(cè)試出現(xiàn)的錯(cuò)誤及解決方案.2(1)測(cè)試出現(xiàn)的錯(cuò)誤及解決方案.2(2)實(shí)驗(yàn)心得.3七、參考文獻(xiàn).3附錄.9文檔可自由編輯打印引言數(shù)字電子秒表具有顯示直觀、讀取方便、精度高等優(yōu)點(diǎn),在計(jì)時(shí)中廣泛使用。本設(shè)計(jì)用單片機(jī)組成數(shù)字電子秒表,力求結(jié)構(gòu)簡(jiǎn)單、精度高為目標(biāo)。本系統(tǒng)采用 C51 系列單片機(jī)為中心器件,利用其定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,結(jié)合硬件電路如電源電路,晶振電路,復(fù)位電路,顯示電路,以及一些按鍵電路等來(lái)設(shè)計(jì)計(jì)時(shí)器,將軟、硬件有機(jī)地結(jié)合起來(lái)。其中軟件系統(tǒng)采用 C 語(yǔ)言編寫(xiě)程序,開(kāi)發(fā)板實(shí)際操作,易于觀察,在實(shí)驗(yàn)中就可以觀察到實(shí)際的工

5、作狀態(tài)。本設(shè)計(jì)利用 STC89C52 單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和計(jì)數(shù)的原理,使其能精確計(jì)時(shí)。利用中斷系統(tǒng)使其能實(shí)現(xiàn)開(kāi)始暫停的功能。根據(jù)要求知道秒表設(shè)計(jì)主要實(shí)現(xiàn)的功能是計(jì)時(shí)和顯示。因此設(shè)置了三個(gè)按鍵和 LCD 顯示時(shí)間,三個(gè)按鍵分別是開(kāi)始、暫停和復(fù)位按鍵。利用這兩個(gè)建來(lái)實(shí)現(xiàn)秒表的全部功能,而 LCD 則能顯示最多 9.59.9 秒的計(jì)時(shí)。 文檔可自由編輯打印一、設(shè)計(jì)要求 1.系統(tǒng)的功能要求(1)該實(shí)驗(yàn)通過(guò)單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和計(jì)數(shù)原理,設(shè)計(jì)簡(jiǎn)單的計(jì)時(shí)器系統(tǒng),擁有正確的計(jì)時(shí)、暫停、清零功能,并同時(shí)可以用數(shù)碼管顯示,在現(xiàn)實(shí)生活中應(yīng)用廣泛,具有現(xiàn)實(shí)意義。 (2)設(shè)計(jì)內(nèi)容:1、設(shè)計(jì)精度為 0.1

6、S 的秒表系統(tǒng) 2、設(shè)置啟動(dòng)、暫停、清零按鈕 3、設(shè)計(jì)每一秒鐘都有提醒功能 4、秒表的最長(zhǎng)計(jì)時(shí)長(zhǎng)度為 9:59.9,超過(guò)此長(zhǎng)度,報(bào)警。圖示:00:00:25 / 25 文檔可自由編輯打印二、設(shè)計(jì)方案分析1.1.方案設(shè)計(jì)方案設(shè)計(jì)數(shù)字電子秒表具有顯示直觀、讀取方便、精度高等優(yōu)點(diǎn),在計(jì)時(shí)中廣泛使用。本設(shè)計(jì)用單片機(jī)組成數(shù)字電子秒表,力求結(jié)構(gòu)簡(jiǎn)單、精度高為目標(biāo)。本系統(tǒng)采用 C51 系列單片機(jī)為中心器件,利用其定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,結(jié)合硬件電路如電源電路,晶振電路,復(fù)位電路,顯示電路,以及一些按鍵電路等來(lái)設(shè)計(jì)計(jì)時(shí)器,將軟、硬件有機(jī)地結(jié)合起來(lái)。其中軟件系統(tǒng)采用 C 語(yǔ)言編寫(xiě)程序,開(kāi)發(fā)板實(shí)際操作,易

7、于觀察,在實(shí)驗(yàn)中就可以觀察到實(shí)際的工作狀態(tài)。本設(shè)計(jì)利用 STC89C52 單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和計(jì)數(shù)的原理,使其能精確計(jì)時(shí)。利用中斷系統(tǒng)使其能實(shí)現(xiàn)開(kāi)始暫停的功能。根據(jù)要求知道秒表設(shè)計(jì)主要實(shí)現(xiàn)的功能是計(jì)時(shí)和顯示。因此設(shè)置了三個(gè)按鍵和 LCD 顯示時(shí)間,三個(gè)按鍵分別是開(kāi)始、暫停和復(fù)位按鍵。利用這兩個(gè)建來(lái)實(shí)現(xiàn)秒表的全部功能,而 LCD 則能顯示最多 9.59.9 秒的計(jì)時(shí)。電路原理圖設(shè)計(jì)最基本的要求是正確性,其次是布局合理,最后在正確性和布局合理的前提下力求美觀。主要硬件電路圖:AT89C52單片機(jī)控制器單片機(jī)控制器復(fù)位電路復(fù)位電路開(kāi)關(guān)電路開(kāi)關(guān)電路LCD 顯示顯示圖 1.1 數(shù)字秒表硬件電路主

8、要原理圖本設(shè)計(jì)中,數(shù)碼管顯示的數(shù)據(jù)存放在內(nèi)存單元 31H33H 中。其中 31H 存放分鐘變量,32H 存放秒鐘變量,33H 存放 10ms 計(jì)數(shù)值,即存放毫秒位數(shù)據(jù),每一地址單元內(nèi)均為十進(jìn)制 BCD 碼。由于采用軟件動(dòng)態(tài)掃描實(shí)現(xiàn)數(shù)據(jù)顯示功能,顯示用十進(jìn)制 BCD 碼數(shù)據(jù)的對(duì)應(yīng)段碼存放在 ROM 表中。顯示時(shí),先取出 31H33H 某一地址中的數(shù)據(jù),然后查得對(duì)應(yīng)的顯示位,并從 P1 口輸出,就能顯示該地址單元的數(shù)據(jù)值。計(jì)時(shí)通過(guò)中斷完成,定時(shí)溢出中斷周期為 1ms,當(dāng)一處中斷后向 CPU 發(fā)出溢出中斷請(qǐng)求,每1INT發(fā)出一次中斷請(qǐng)求就對(duì)毫秒計(jì)數(shù)單元進(jìn)行加一,達(dá)到 10 次就對(duì)十毫秒位進(jìn)行加一,依

9、次類(lèi)推,直到9.59.9 秒重新復(fù)位。 再看按鍵的處理。這三個(gè)鍵可以采用中斷的方法,也可以采用掃描的方法來(lái)識(shí)別。復(fù)位鍵主要功能在于數(shù)值復(fù)位,對(duì)于時(shí)間的要求不是很?chē)?yán)格。而開(kāi)始和暫停鍵則是用于對(duì)時(shí)間的鎖定,需要比較準(zhǔn)確的控制。因此可以對(duì)復(fù)位按鍵采取掃描的方式。而對(duì)開(kāi)始和暫停鍵采用外部中斷的方式。設(shè)計(jì)中包括硬件電路的設(shè)計(jì)和系統(tǒng)程序的設(shè)計(jì)。其硬件電路主要有主控制器,顯示電路和回零、啟動(dòng)、查看、停表電路等。主控制器采用單片機(jī) STC89C52,顯示電路采用 LCD 顯示計(jì)時(shí)時(shí)間,三個(gè)按鍵均采用觸點(diǎn)式按鍵。 / 25 文檔可自由編輯打印2.2.背景知識(shí)介紹背景知識(shí)介紹2.1 單片機(jī)相關(guān)知識(shí)本課題在選取單片

10、機(jī)時(shí),充分借鑒了許多成形產(chǎn)品使用單片機(jī)的經(jīng)驗(yàn),并根據(jù)自己的實(shí)際情況, 選擇了 STC89S51。STC89C52 單片機(jī)采用 40 引腳的雙列直插封裝方式。圖 1.2 為引腳排列圖, 40 條引腳說(shuō)明如下:主電源引腳 Vss 和 Vcc Vss 接地 Vcc 正常操作時(shí)為+5 伏電源外接晶振引腳 XTAL1 和 XTAL2 XTAL1 內(nèi)部振蕩電路反相放大器的輸入端,是外接晶體的一個(gè)引腳。當(dāng)采用外部振蕩器時(shí),此引腳接地。 XTAL2 內(nèi)部振蕩電路反相放大器的輸出端。是外接晶體的另一端。當(dāng)采用外部振蕩器時(shí),此引腳接外部振蕩源。圖圖 1.21.2 STC89C52STC89C52 單片機(jī)引腳圖單片

11、機(jī)引腳圖控制或與其它電源復(fù)用引腳 RST/VPD,ALE/,和/VppPROGPSENEA RST/VPD 當(dāng)振蕩器運(yùn)行時(shí),在此引腳上出現(xiàn)兩個(gè)機(jī)器周期的高電平(由低到高跳變) ,將使單片機(jī)復(fù)位在 Vcc 掉電期間,此引腳可接上備用電源,由 VPD 向內(nèi)部提供備用電源,以保持內(nèi)部 RAM中的數(shù)據(jù)。 ALE/正常操作時(shí)為 ALE 功能(允許地址鎖存)提供把地址的低字節(jié)鎖存到外部鎖存器,PROGALE 引腳以不變的頻率(振蕩器頻率的 1/6)周期性地發(fā)出正脈沖信號(hào)。因此,它可用作對(duì)外輸出的時(shí)鐘,或用于定時(shí)目的。但要注意,每當(dāng)訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè) ALE 脈沖,ALE 端可以驅(qū)動(dòng)(吸收或輸

12、出電流)八個(gè) LSTTL 電路。對(duì)于 EPROM 型單片機(jī),在 EPROM 編程期間,此引腳接收編程脈沖(功能)PROG / 25 文檔可自由編輯打印 外部程序存儲(chǔ)器讀選通信號(hào)輸出端,在從外部程序存儲(chǔ)取指令(或數(shù)據(jù))期間,PSEN在每個(gè)機(jī)器周期內(nèi)兩次有效。同樣可以驅(qū)動(dòng)八 LSTTL 輸入。PSENPSEN /Vpp、/Vpp 為內(nèi)部程序存儲(chǔ)器和外部程序存儲(chǔ)器選擇端。當(dāng)/Vpp 為高電平時(shí),EAEAEA訪(fǎng)問(wèn)內(nèi)部程序存儲(chǔ)器,當(dāng)/Vpp 為低電平時(shí),則訪(fǎng)問(wèn)外部程序存儲(chǔ)器。對(duì)于 EPROM 型單片機(jī),在EAEPROM 編程期間,此引腳上加 21 伏 EPROM 編程電源(Vpp) 。輸入/輸出引腳 P

13、0.0 - P0.7,P1.0 - P1.7,P2.0 - P2.7,P3.0 - P3.7。 P0 口(P0.0 - P0.7)是一個(gè) 8 位漏極開(kāi)路型雙向 I/O 口,在訪(fǎng)問(wèn)外部存儲(chǔ)器時(shí),它是分時(shí)傳送的低字節(jié)地址和數(shù)據(jù)總線(xiàn),P0 口能以吸收電流的方式驅(qū)動(dòng)八個(gè) LSTTL 負(fù)載。 P1 口(P1.0 - P1.7)是一個(gè)帶有內(nèi)部提升電阻的 8 位準(zhǔn)雙向 I/O 口。能驅(qū)動(dòng)(吸收或輸出電流)四個(gè) LSTTL 負(fù)載。 P2 口(P2.0 - P2.7)是一個(gè)帶有內(nèi)部提升電阻的 8 位準(zhǔn)雙向 I/O 口,在訪(fǎng)問(wèn)外部存儲(chǔ)器時(shí),它輸出高 8 位地址。P2 口可以驅(qū)動(dòng)(吸收或輸出電流)四個(gè) LSTTL

14、負(fù)載。 P3 口(P3.0 - P3.7)是一個(gè)帶有內(nèi)部提升電阻的 8 位準(zhǔn)雙向 I/O 口。能驅(qū)動(dòng)(吸收或輸出電流)四個(gè) LSTTL 負(fù)載。AT89C52 具有以下標(biāo)準(zhǔn)功能:8k 字節(jié) Flash,256 字節(jié) RAM,32 位 I/O 口線(xiàn),看門(mén)狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè) 16 位定時(shí)器/計(jì)數(shù)器,一個(gè) 6 向量 2 級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89C52 可降至 0Hz 靜態(tài)邏輯操作,支持 2 種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許 RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM 內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作

15、停止,直到下一個(gè)中斷或硬件復(fù)位為止。CPU 是單片機(jī)的核心部件。它由運(yùn)算器和控制器等部件組成。(1) 運(yùn)算器運(yùn)算器的功能是進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算??梢詫?duì)半字節(jié)(4 位) 、單字節(jié)等數(shù)據(jù)進(jìn)行操作。例如能完成加、減、乘、除、加 1、減 1、BCD 碼十進(jìn)制調(diào)整、比較等算術(shù)運(yùn)算和與、或、異或、求補(bǔ)、循環(huán)等邏輯操作,操作結(jié)果的狀態(tài)信息送至狀態(tài)寄存器。89C52 運(yùn)算器還包含有一個(gè)布爾處理器,用來(lái)處理位操作。它是以進(jìn)位標(biāo)志位 C 為累加器的,可執(zhí)行置位、復(fù)位、取反、等于 1 轉(zhuǎn)移、等于 0 轉(zhuǎn)移、等于 1 轉(zhuǎn)移且清 0 以及進(jìn)位標(biāo)志位與其他可尋址的位之間進(jìn)行數(shù)據(jù)傳送等位操作,也能使進(jìn)位標(biāo)志位與其他可移位

16、尋址的位之間進(jìn)行邏輯與、或操作。(2) 程序計(jì)數(shù)器 PC程序計(jì)數(shù)器 PC 用來(lái)存放即將要執(zhí)行的指令地址,共 16 位,可對(duì) 64K 程序存儲(chǔ)器直接尋址。執(zhí)行指令時(shí),PC 內(nèi)容的低 8 位經(jīng) P0 口輸出,高 8 位經(jīng) P2 口輸出。(3) 令寄存器指令寄存器中存放指令代碼。CPU 執(zhí)行指令時(shí),由程序存儲(chǔ)器中讀取的指令代碼送入指令寄存器,經(jīng)譯碼后由定時(shí)與控制電路發(fā)出相應(yīng)的控制信號(hào),完成指令功能。本設(shè)計(jì)采用 ATMEL 的 AT89C52 微處理器,主要基于以下幾個(gè)因素: AT89C52 為 51 內(nèi)核,仿真調(diào)試的軟硬件資源豐富。 性?xún)r(jià)比高,貨源充足。 功耗低,功能強(qiáng),靈活性高。 DIP40 封裝

17、,體積小,便于產(chǎn)品小型化。 為 EEPROM 程序存儲(chǔ)介質(zhì),1000 次以上擦寫(xiě)周期,便于編程調(diào)試。 工作電壓范圍寬:2.7V6V,便于交直流供電。 / 25 文檔可自由編輯打印2.2 TC1602LCD 的構(gòu)造是在兩片平行的玻璃當(dāng)中放置液態(tài)的晶體,兩片玻璃中間有許多垂直和水平的細(xì)小電線(xiàn),透過(guò)通電與否來(lái)控制桿狀水晶分子改變方向,將光線(xiàn)折射出來(lái)產(chǎn)生畫(huà)面。比 CRT 要好的多,但是價(jià)錢(qián)較其貴。1)LCD 的特點(diǎn): 低壓微功耗 平板型結(jié)構(gòu) 被動(dòng)顯示型 (無(wú)眩光,不刺激人眼,不會(huì)引起眼睛疲勞 ) 顯示信息量大 (因?yàn)橄袼乜梢宰龅煤苄?) 易于彩色化 (在色譜上可以非常準(zhǔn)確的復(fù)現(xiàn) ) 無(wú)電磁輻射 (對(duì)人

18、體安全,利于信息保密 ) 長(zhǎng)壽命(這種器件幾乎沒(méi)有什么劣化問(wèn)題,因此壽命極長(zhǎng),但是液晶背光壽命有限,不過(guò)背光部分可以更換 )注:注:16021602 的管腳功能的管腳功能 / 25 文檔可自由編輯打印三、硬件設(shè)計(jì)1.控制芯片的介紹AT89S52 是一種低功耗、高性能 CMOS8 位微控制器,具有 8K 在系統(tǒng)可編程 Flash 存儲(chǔ)器。使用 Atmel 公司高密度非 易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完 全兼容。片上 Flash 允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的8 位 CPU 和在系統(tǒng) 可編程 Flash,使得 AT89S52 為眾多嵌

19、入式控制應(yīng)用系統(tǒng)提 供高靈活、超有效的解決方案。 AT89S52 具有以下標(biāo)準(zhǔn)功能: 8k 字節(jié) Flash,256 字節(jié) RAM, 32 位 I/O 口線(xiàn),看門(mén)狗定時(shí)器, 2 個(gè)數(shù)據(jù)指針,三個(gè) 16 位 定時(shí)器/計(jì)數(shù)器,一個(gè) 6 向量 2 級(jí)中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時(shí)鐘電路。另外, AT89S52 可降至 0Hz 靜態(tài)邏 輯操作,支持 2 種軟件可選擇節(jié)電模式。空閑模式下, CPU 停止工作,允許 RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工 作。掉電保護(hù)方式下, RAM 內(nèi)容被保存,振蕩器被凍結(jié), 單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止 .2.定時(shí)器1.定時(shí)器的結(jié)構(gòu) 定時(shí)

20、/計(jì)數(shù)器的實(shí)質(zhì)是加 1 計(jì)數(shù)器(16 位) ,由高 8 位和低 8 位兩個(gè)寄存器組成。TMOD 是定時(shí)器的工作方式寄存器,確定工作方式和功能;TCON 是控制寄存器,控制 T0、T1 的啟動(dòng)和停止及設(shè)置溢出標(biāo)志。2.定時(shí)器的工作原理加 1 計(jì)數(shù)器輸入的計(jì)數(shù)脈沖有兩個(gè)來(lái)源,一個(gè)是由系統(tǒng)的時(shí)鐘振蕩器輸出脈沖經(jīng) 12 分頻后送來(lái);一個(gè)是 T0 或 T1 引腳輸入的外部脈沖源。3.定時(shí)器的控制89S52 單片機(jī)定時(shí)器的工作由兩個(gè)特殊功能寄存器控制。TMOD 用于設(shè)置其工作方式;TCON 用于控制其啟動(dòng)和中斷申請(qǐng)。3.獨(dú)立按鍵控制模塊 在按鍵電路中,我們可以在 I/O 口上直接接按鍵,或者通過(guò) I/O

21、口設(shè)計(jì)一個(gè)鍵盤(pán),然后通過(guò)鍵盤(pán)掃描程序判斷是否有鍵按下等。鍵盤(pán)掃描電路節(jié)省 I/O 口,但編程有些復(fù)雜,在這里,由于我們所用的按鍵較少,且系統(tǒng)是一個(gè)小系統(tǒng),有足夠的 I/O 口可以使用,為了使程序簡(jiǎn)化,我們采用按鍵電路,用部分 P3 口做開(kāi)關(guān),P3.1 為開(kāi)始,P3.,2 為暫停,P3.3 為清零,用外部中斷 INT1 開(kāi)始,另外用軟件法消除抖動(dòng)。 / 25 文檔可自由編輯打印四、軟件設(shè)計(jì)1.軟件設(shè)計(jì)概述在軟件設(shè)計(jì)中,一般采用模塊化的程序設(shè)計(jì)方法,它具有明顯的優(yōu)點(diǎn)。把一個(gè)多功能的復(fù)雜的程序劃分為若干個(gè)簡(jiǎn)單的、功能單一的程序模塊,有利于程序的設(shè)計(jì)和調(diào)試,有利于程序的優(yōu)化和分工,提高了程序的閱讀性和

22、可靠性,使程序的結(jié)構(gòu)層次一目了然。應(yīng)用系統(tǒng)的程序由包含多個(gè)模塊的主程序和各種子程序組成。各程序模塊都要完成一個(gè)明確的任務(wù),實(shí)現(xiàn)某個(gè)具體的功能,在具體需要時(shí)調(diào)用相應(yīng)的模塊即可。功能描述:用 LCD1602 液晶顯示秒表,顯示時(shí)間為 0.00.09.59.9 秒,每秒自動(dòng)加 1;一個(gè)開(kāi)始鍵,一個(gè)暫停鍵,一個(gè)清零鍵。2.主程序流程圖 這里采用順序結(jié)構(gòu),通過(guò)對(duì)按鍵的掃描,判斷要實(shí)現(xiàn)什么功能。如下所示: 賦初始值開(kāi)始LCD1602 顯示復(fù)位鍵 P3.1 是否按下查看鍵 P3.2 是否按下調(diào)用最終緩存區(qū)數(shù)據(jù)進(jìn)行顯示否 是是否否是查看鍵 P3.3 是否按下LCD 清零零1.主程序#include / 25

23、文檔可自由編輯打印#include lcd.h /調(diào)用 LCD 模塊,顯示數(shù)據(jù)#define uchar unsigned char #define uint unsigned intsbit led1=P30; /定義中斷端口sbit led2=P31;sbit buzz=P12;sbit start=P20;sbit push=P21;sbit reset=P22;uchar aa=0,shi=9,fen=59,miao=30,xx=0; /定義參數(shù)uchar flag_old=0,flag;void init() /初始化外部中斷和定時(shí)器 TMOD=0 x01; TH0=0 x4c; T

24、L0=0 x00; EA=1; ET0=1;TR0=0;void tixing() /定時(shí)模塊,設(shè)置 0.1 秒報(bào)警uint i,j;for(i=0;i100;i+)for(j=0;j80;j+);buzz=buzz; for(i=0;i100;i+)for(j=0;j150;j+);buzz=buzz; void main() / 25 文檔可自由編輯打印lcd1602();lcd1602_init(); /計(jì)時(shí)顯示“start”init();display_onechar(0,11,s);display_onechar(0,12,t);display_onechar(0,13,a);dis

25、play_onechar(0,14,r);display_onechar(0,15,t);TR0=1;while(1)display_onechar(0,0,shi+0 x30);display_onechar(0,1,:);display_onechar(0,2,fen/10+0 x30);display_onechar(0,3,fen%10+0 x30);display_onechar(0,4,:);display_onechar(0,5,miao/10+0 x30);display_onechar(0,6,miao%10+0 x30);display_onechar(0,7,.);dis

26、play_onechar(0,8,xx+0 x30);if(start=0 & shi!=10) /開(kāi)始計(jì)時(shí)模塊delay(15000);while(start=0);delay(5000);TR0=1;display_onechar(0,11,s);display_onechar(0,12,t);display_onechar(0,13,a);display_onechar(0,14,r);display_onechar(0,15,t);if(stop=0) /暫停模塊,同步顯示“push”delay(15000);while(push=0);delay(5000);TR0=0; /

27、 25 文檔可自由編輯打印display_onechar(0,11, );display_onechar(0,12,p);display_onechar(0,13,u);display_onechar(0,14,s);display_onechar(0,15,h);if(reset=0) /復(fù)位模塊delay(15000);while(reset=0);delay(5000);TR0=0;shi=0;fen=0;miao=0;xx=0;if(xx=0 & shi!=10) /每 1 秒提示tixing();if(shi=10) /超出量程 9:59:9 報(bào)警,顯示“over”tixin

28、g();display_onechar(0,11, );display_onechar(0,12,o);display_onechar(0,13,v);display_onechar(0,14,e);display_onechar(0,15,r);void timer0() interrupt 1 TH0=0 x4c; TL0=0 x00; aa+; if(aa=2)aa=0;xx+;if(xx=1) / 25 文檔可自由編輯打印led1=0;led2=0;if(xx=2)led1=1;led2=1;if(xx=10)xx=0;miao+;if(miao=60)miao=0;fen+;if(f

29、en=60)fen=0;shi+;if(shi=10)TR0=0;2.LCD 模塊化程序#include lcd.hvoid lcd1602()en=0;rs=1;rw=1;lcd_data=0 xff;void read_busy()lcd_data=0 xff; / 25 文檔可自由編輯打印rs=0;rw=1;en=1;while(lcd_data & 0 x80);en=0;void write_lcd(unsigned char value,bit i)read_busy();lcd_data=value;rs=i;rw=0;en=1;en=0;void lcd1602_ini

30、t()delay(15000);write_lcd(0 x38,0);delay(5000);write_lcd(0 x38,0);delay(5000);write_lcd(0 x38,0);delay(5000);write_lcd(0 x08,0);write_lcd(0 x01,0);write_lcd(0 x06,0);write_lcd(0 x0c,0);void delay(unsigned int i) /延時(shí)子程序while(-i);void display_onechar(unsigned char y,unsigned char x,unsigned char value

31、)y&=0 x01;x&=0 x0f;if(y)x+=0 x40;x+=0 x80; / 25 文檔可自由編輯打印write_lcd(x,0);write_lcd(value,1); 五、仿真結(jié)果及分析基于單片機(jī)的秒表系統(tǒng)設(shè)計(jì)完成之后,最終通過(guò)一個(gè)獨(dú)立按鍵控制暫停與開(kāi)始,另一個(gè)獨(dú)立按鍵控制清零,同時(shí)實(shí)現(xiàn)秒表每一秒都要提示,同時(shí)將獨(dú)立按鍵的控制信息在液晶屏上顯示出來(lái),還要同時(shí)實(shí)現(xiàn)蜂鳴器的報(bào)警功能。 圖 4-1 整體連線(xiàn) 圖 4-2 結(jié)果顯示 / 25 文檔可自由編輯打印 6 6調(diào)試中出現(xiàn)的錯(cuò)誤及解決方法調(diào)試中出現(xiàn)的錯(cuò)誤及解決方法1.實(shí)驗(yàn)中遇到的問(wèn)題及解決方法實(shí)驗(yàn)中遇到的問(wèn)題及解決

32、方法問(wèn)題:LCD 顯示模糊原因:VEE 接高電平,LCD 的對(duì)比度太低,從而無(wú)法正常顯示數(shù)據(jù)。解決方法:將 VEE 接地,提高了 LCD 的對(duì)比度,數(shù)據(jù)顯示清晰。問(wèn)題:蜂鳴器聲音小原因:試驗(yàn)箱子的問(wèn)題,換個(gè)好的試驗(yàn)箱子聲音變大。2.實(shí)驗(yàn)心得實(shí)驗(yàn)心得王術(shù)芳王術(shù)芳接到題目時(shí),發(fā)現(xiàn)是關(guān)于電子秒表的設(shè)計(jì),先在網(wǎng)上查閱了一些有關(guān)電子秒表設(shè)計(jì)的材料,熟悉了設(shè)計(jì)思想與工作原理,并且具體的分析了單片機(jī)、數(shù)碼管顯示器的工作過(guò)程,從理論上分析了該工作過(guò)程。將程序考入單片機(jī)后開(kāi)始測(cè)試,剛開(kāi)始時(shí) LCD 顯示器無(wú)數(shù)據(jù)顯示,經(jīng)過(guò)對(duì)電路板各模塊的重新測(cè)試,發(fā)現(xiàn)并無(wú)問(wèn)題,經(jīng)過(guò)和同學(xué)的探討,發(fā)現(xiàn) LCD 的 VEE 管腳接高

33、電平時(shí),因?qū)Ρ榷鹊?,?dǎo)致 LCD無(wú)數(shù)據(jù)顯示;而當(dāng) VEE 接低電平時(shí),因?qū)Ρ榷雀撸琇CD 正常顯示。通過(guò)此次課程設(shè)計(jì),熟悉了電子秒表的設(shè)計(jì)思想,在實(shí)踐中測(cè)試電路、分析數(shù)據(jù)、排除故障,最終實(shí)現(xiàn)了設(shè)計(jì)要求。雖然這次課程設(shè)計(jì)相對(duì)簡(jiǎn)單,但并未一次性成功,所以同樣需要嚴(yán)謹(jǐn)?shù)膽B(tài)度。在整個(gè)過(guò)程中不但增強(qiáng)了自己的學(xué)習(xí)能力,還提高了自己的團(tuán)隊(duì)合作能力,這些能力在以后的工作中是很重要的!楊卜威楊卜威這次課程設(shè)計(jì)我們組的題目是設(shè)計(jì)一個(gè)電子秒表,有啟動(dòng),暫停、復(fù)位等鍵。據(jù)說(shuō)是相對(duì)簡(jiǎn)單的題目。通過(guò)這次設(shè)計(jì),我學(xué)到了很多知識(shí),將學(xué)習(xí)的理論知識(shí)通過(guò)實(shí)驗(yàn)融會(huì)貫通,讓我對(duì)它的理解更加深刻。由于這次課程設(shè)計(jì)不僅設(shè)計(jì)編程方面的知識(shí)

34、,還涉及了其它學(xué)科的知識(shí),例如 PROTEUS 等的基本知識(shí)??傊?,通過(guò)這次課程設(shè)計(jì),不僅加深了我對(duì)單片機(jī)理論方面的理解,將理論更好的運(yùn)用的實(shí)踐方面,而且鍛煉了我們各方面的能力,培養(yǎng)了堅(jiān)強(qiáng)的毅力和做事的耐心和細(xì)心,同時(shí)也認(rèn)識(shí)到在團(tuán)隊(duì)工作中需要有合作精神,我想這會(huì)為今后自己踏上工作崗位、更好地融入新的團(tuán)隊(duì)打下良好的基礎(chǔ)。 / 25 文檔可自由編輯打印七參考文獻(xiàn)七參考文獻(xiàn)1、 51 單片機(jī)學(xué)習(xí)網(wǎng) 2、 單片機(jī)學(xué)習(xí)網(wǎng) 3、 單片機(jī) C 語(yǔ)言應(yīng)用程序設(shè)計(jì),第四版,馬忠梅主編,北京航空航天大學(xué)出版社4、 單片機(jī)開(kāi)發(fā)與典型工程項(xiàng)目實(shí)例詳解,邊海龍、孫永奎編著,電子工業(yè)出版社 / 25 文檔可自由編輯打印附

35、錄 程序代碼1.主程序#include #include lcd.h /調(diào)用 LCD 模塊,顯示數(shù)據(jù)#define uchar unsigned char #define uint unsigned intsbit led1=P30; /定義中斷端口sbit led2=P31;sbit buzz=P12;sbit start=P20;sbit push=P21;sbit reset=P22;uchar aa=0,shi=9,fen=59,miao=30,xx=0; /定義參數(shù)uchar flag_old=0,flag;void init() /初始化外部中斷和定時(shí)器 TMOD=0 x01; T

36、H0=0 x4c; TL0=0 x00; EA=1; ET0=1;TR0=0;void tixing() /定時(shí)模塊,設(shè)置 0.1 秒報(bào)警uint i,j;for(i=0;i100;i+)for(j=0;j80;j+);buzz=buzz; for(i=0;i100;i+)for(j=0;j150;j+); / 25 文檔可自由編輯打印buzz=buzz; void main()lcd1602();lcd1602_init(); /計(jì)時(shí)顯示“start”init();display_onechar(0,11,s);display_onechar(0,12,t);display_onechar(

37、0,13,a);display_onechar(0,14,r);display_onechar(0,15,t);TR0=1;while(1)display_onechar(0,0,shi+0 x30);display_onechar(0,1,:);display_onechar(0,2,fen/10+0 x30);display_onechar(0,3,fen%10+0 x30);display_onechar(0,4,:);display_onechar(0,5,miao/10+0 x30);display_onechar(0,6,miao%10+0 x30);display_onechar

38、(0,7,.);display_onechar(0,8,xx+0 x30);if(start=0 & shi!=10) /開(kāi)始計(jì)時(shí)模塊delay(15000);while(start=0);delay(5000);TR0=1;display_onechar(0,11,s);display_onechar(0,12,t);display_onechar(0,13,a);display_onechar(0,14,r); / 25 文檔可自由編輯打印display_onechar(0,15,t);if(stop=0) /暫停模塊,同步顯示“push”delay(15000);while(push=0);delay(5000);TR0=0;display_onechar

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論