2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩43頁(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、<p>  基于單片機(jī)的時(shí)鐘顯示器設(shè)計(jì)</p><p><b>  摘 要</b></p><p>  本文論述了如何利用單片機(jī)來(lái)設(shè)計(jì)一個(gè)時(shí)鐘的方法。</p><p>  本設(shè)計(jì)基于單片機(jī)技術(shù)原理,以單片機(jī)芯片AT89C52作為核心控制器,通過(guò)硬件電路的制作以及軟件程序的編制,設(shè)計(jì)制作出一個(gè)多功能數(shù)字時(shí)鐘系統(tǒng)。單片機(jī)擴(kuò)展的LCD顯示器

2、用來(lái)顯示秒、分、時(shí)計(jì)數(shù)單元中的值。整個(gè)設(shè)計(jì)包括兩大部分: 硬件部分和軟件部分,以單片機(jī)為核心, 配以一定的外圍電路和軟件。硬件是整個(gè)系統(tǒng)的基礎(chǔ), 軟件部分則要合理、充分地支持和使用系統(tǒng)的硬件, 從而完成系統(tǒng)所要完成的任務(wù)。</p><p>  本設(shè)計(jì)采用L ED 數(shù)碼管的數(shù)字顯示以其亮度高、顯示直觀等優(yōu)點(diǎn)被廣泛應(yīng)用于智能儀器及家用電器等領(lǐng)域。該時(shí)鐘系統(tǒng)主要由時(shí)鐘模塊、鬧鐘模塊、環(huán)境溫度檢測(cè)模塊、液晶顯示模塊、鍵盤(pán)

3、控制模塊以及信號(hào)提示模塊組成。能夠準(zhǔn)確顯示時(shí)間(顯示格式為時(shí)時(shí):分分:秒秒,24小時(shí)制),可隨時(shí)進(jìn)行時(shí)間調(diào)整,具有鬧鐘時(shí)間設(shè)置、鬧鐘開(kāi)/關(guān)、止鬧功能,能夠?qū)r(shí)鐘所在的環(huán)境溫度進(jìn)行測(cè)量并顯示。設(shè)計(jì)以硬件軟件化為指導(dǎo)思想,充分發(fā)揮單片機(jī)功能,大部分功能通過(guò)軟件編程來(lái)實(shí)現(xiàn),電路簡(jiǎn)單明了,系統(tǒng)穩(wěn)定性高。單片機(jī)在這種情況下誕生了基于單片機(jī)電子時(shí)鐘。</p><p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī)、LCD顯示器、液晶顯示模塊、基于單片機(jī)

4、電子時(shí)鐘。</p><p>  Design According To Single Slice The Clock Display Of The Machine</p><p><b>  ABSTRACT</b></p><p>  This text discusses how to make use of a single slice

5、machine to design the method of a clock.</p><p>  This design according to single slice machine technique principle, use single slice the machine chip AT89 C52 as core controller, pass the draw up of creatio

6、n and software procedure of hardware electric circuit, design to create a multi-function and numerical clock system. the single slice machine expand of LCD display use to show second, cent, the chronometer value within f

7、ew units.The whole design include two greatly part of: Hardware part and software part, with single slice machine for core,</p><p>  This design adoption L ED figures tube of the numeral show high with its b

8、right degree, show to keep a view etc. the advantage be extensively been apply in realms, such as intelligence instrument and home .The clock's system is mainly shown that mold piece, the keyboard control mold piece

9、and signal hint that the mold piece constitute by clock mold piece, alarm clock mold piece, the examination mold piece, LCD of the environment temperature.Can accurate manifestation time(manifestation format is</p>

10、<p>  KEY WORDS: single-chip,lcd display, the LCD shows a mold piece,a ccording to single slice machine electronics clock.</p><p><b>  目 錄</b></p><p><b>  前 言1</b>

11、;</p><p>  第1章 硬件系統(tǒng)設(shè)計(jì)2</p><p><b>  1.1 單片機(jī)2</b></p><p>  1.2 硬件設(shè)計(jì)3</p><p>  1.3 硬件模塊3</p><p>  1.3.1主控單元3</p><p>  1.3.2顯示部分

12、5</p><p>  1.3.3顯示器接口及顯示方式7</p><p>  1.3.4鍵盤(pán)控制模塊8</p><p>  1.3.5聲音提示模塊8</p><p>  1.3.6直流穩(wěn)壓電源部分9</p><p>  1.3.7濾波電路9</p><p>  1.4 硬件電路測(cè)試9

13、</p><p>  1.4.1硬件電路ERC測(cè)試9</p><p>  1.4.2硬件電路網(wǎng)格化10</p><p>  1.4.3生成PCB板11</p><p>  第2章 軟件設(shè)計(jì)13</p><p>  2.1 設(shè)計(jì)思路13</p><p>  2.2 模塊設(shè)計(jì)13<

14、/p><p>  2.3 軟件模塊14</p><p>  2.3.1計(jì)時(shí)模塊14</p><p>  2.3.2調(diào)時(shí)功能14</p><p>  2.3.3主程序模塊14</p><p>  2.3.4鍵盤(pán)控制模塊14</p><p>  2.3.5在編程過(guò)程中要用到的其它程序模塊14

15、</p><p>  第3章 程序編譯和系統(tǒng)調(diào)試及仿真15</p><p>  3.1 程序編譯15</p><p>  3.1.1主要程序設(shè)計(jì)分析15</p><p>  3.1.2程序設(shè)計(jì)16</p><p>  3.2 軟件調(diào)試23</p><p>  3.2.1偉福簡(jiǎn)介23&

16、lt;/p><p>  3.2.2軟件調(diào)試24</p><p>  3.3 硬件調(diào)試25</p><p><b>  結(jié) 論28</b></p><p><b>  謝 辭29</b></p><p><b>  參考文獻(xiàn)30</b></p&

17、gt;<p><b>  外文資料翻譯31</b></p><p><b>  前 言</b></p><p>  數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì)時(shí),分,秒數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭,車(chē)站, 碼頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過(guò)老

18、式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開(kāi)關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。</p><p>  近年來(lái)隨著以計(jì)算機(jī)為軸心的各種各樣信息處理裝置的誕生,為適應(yīng)這種新形勢(shì),信息家電,網(wǎng)絡(luò)

19、終端,廣播-通信等用途的LCD市場(chǎng)也將迅速擴(kuò)大,而且如今LCD發(fā)展方向不僅在于大屏幕,而且在中小屏幕方面,例如汽車(chē)導(dǎo)航系統(tǒng),攝像機(jī),數(shù)字式照相機(jī),便攜式電視,PDA(個(gè)人數(shù)字助理),娛樂(lè)/游戲機(jī),攝影機(jī)等有著進(jìn)一步的發(fā)展。</p><p>  液晶顯示器(LCD)具有功耗低、體積小、重量輕、超薄等許多其他顯示器無(wú)法比擬的優(yōu)點(diǎn),近年來(lái)被廣泛用于單片機(jī)控制的智能儀器、儀表和低功耗電子產(chǎn)品中。LCD可分為段式LCD、字

20、符式LCD和點(diǎn)陣式LCD。其中,段式LCD和字符式LCD只能用于字符和數(shù)字的簡(jiǎn)單顯示,不能滿足圖形曲線和漢字顯示的要求;而點(diǎn)陣式LCD不僅可以顯示字符、數(shù)字,還可以顯示各種圖形、曲線以及漢字、動(dòng)畫(huà),并且可以實(shí)現(xiàn)屏幕滾動(dòng)、反轉(zhuǎn)、閃爍等功能,用途十分廣泛。</p><p>  由此可見(jiàn)LCD的應(yīng)用是如此廣泛,所以用MPU控制液晶顯示器是很普遍的應(yīng)用。</p><p>  第1章 硬件系統(tǒng)設(shè)計(jì)&

21、lt;/p><p><b>  1.1 單片機(jī)</b></p><p>  單片機(jī)是一種集成電路芯片,采用超大規(guī)模技術(shù)把具有數(shù)據(jù)處理能力(如算術(shù)運(yùn)算,邏輯運(yùn)算、數(shù)據(jù)傳送、中斷處理)的微處理器(CPU),隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),只讀程序存儲(chǔ)器(ROM),輸入輸出電路(I/O口),可能還包括定時(shí)計(jì)數(shù)器,串行通信口(SCI),顯示驅(qū)動(dòng)電路(LCD或LED驅(qū)動(dòng)電路),脈寬調(diào)

22、制電路(PWM),模擬多路轉(zhuǎn)換器及A/D轉(zhuǎn)換器等電路集成到一塊單塊芯片上,構(gòu)成一個(gè)最小然而完善的計(jì)算機(jī)系統(tǒng)。這些電路能在軟件的控制下準(zhǔn)確、迅速、高效地完成程序設(shè)計(jì)者事先規(guī)定的任務(wù)[1]。</p><p>  單片機(jī)芯片的集成度很高,它將微型計(jì)算機(jī)的主要部件都集成在一塊芯片上,具有以下特點(diǎn):</p><p> ?。?)體積小、重量輕、價(jià)格便宜、耗電少;</p><p>

23、;  (2) 根據(jù)工控環(huán)境要求設(shè)計(jì),且許多功能部件集成在芯片內(nèi)部,其信號(hào)通道受外界影響小,故可靠性高,抗干擾性能優(yōu)于采用一般的CPU;</p><p> ?。?) 控制功能強(qiáng),運(yùn)行速度快。其結(jié)構(gòu)組成與指令系統(tǒng)都著重滿足工控要求。有豐富的條件分支轉(zhuǎn)移指令和很強(qiáng)的位處理功能及I/O口邏輯操作功能;</p><p>  (4)片內(nèi)存儲(chǔ)器的容量不可能很大;引腳也嫌少,I/O引腳常不夠用,且兼第二功

24、能以至第三功能。但存儲(chǔ)器和I/O接口都易于擴(kuò)展;</p><p>  自單片機(jī)出現(xiàn)至今,單片機(jī)技術(shù)已走過(guò)了30多年的發(fā)展路程??v觀30年來(lái)單片機(jī)發(fā)展里程可以看出,單片機(jī)技術(shù)的發(fā)展以微處理器(MPU)技術(shù)及超大規(guī)模集成電路技術(shù)的發(fā)展為先導(dǎo),以廣泛的應(yīng)用領(lǐng)域拉動(dòng),表現(xiàn)出較微處理器更具個(gè)性的發(fā)展趨勢(shì)。單片機(jī)應(yīng)用最多的領(lǐng)域主要有以下:</p><p>  因它具有“小、輕、廉、省”的特點(diǎn),所以特別

25、適用于“電腦型產(chǎn)品”,在家用電器、玩具、游戲機(jī)、聲像設(shè)備、電子秤、收銀機(jī)、辦公設(shè)備、廚房設(shè)備、家庭安防設(shè)備等許多產(chǎn)品上得到應(yīng)用。適用于儀器、儀表,不僅能完成測(cè)量,還具有處理、監(jiān)控等功能,易于實(shí)現(xiàn)數(shù)字化和智能化。</p><p><b>  1.2 硬件設(shè)計(jì)</b></p><p><b>  硬件設(shè)計(jì)框圖</b></p><p

26、>  圖1-1硬件設(shè)計(jì)框圖</p><p>  由框圖的設(shè)計(jì)結(jié)構(gòu)可以分塊設(shè)計(jì)電路。</p><p><b>  1.3 硬件模塊</b></p><p><b>  1.3.1主控單元</b></p><p>  AT89C52是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS 8位單片機(jī),片內(nèi)

27、含8k bytes的可反復(fù)擦寫(xiě)的只讀程序存儲(chǔ)器(PEROM)和256bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元,功能強(qiáng)大AT89C52單片機(jī)適合于許多較為復(fù)雜控制應(yīng)用場(chǎng)合。</p><p>  下表是89c52的主要性能參數(shù)</p><p

28、>  表1-1 89c52的主要性能參數(shù)</p><p>  AT89C52提供以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash閃速存儲(chǔ)器,256字節(jié)內(nèi)部RAM,32個(gè)I/O口線,3個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)6向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路[2]。同時(shí),AT89C52可降至0HZ的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及

29、中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。</p><p>  下表是89c52的極限參數(shù)</p><p>  表1-2 AT89C52的極限參數(shù)</p><p><b>  1.3.2顯示部分</b></p><p>  單片機(jī)應(yīng)用系統(tǒng)中使用的顯示器主要有發(fā)

30、光二極管顯示器,簡(jiǎn)稱(chēng)LED(Light Emitting Diode);液晶顯示器LCD(Liquid Crystal Display);近幾年也有配置CRT顯示器的。液晶顯示器簡(jiǎn)稱(chēng)是利用液晶經(jīng)過(guò)處理后能夠改變光線傳輸方向的特性,達(dá)到顯示字符或者圖形的目的。其特點(diǎn)是體積小、重量輕、功耗極低、顯示內(nèi)容豐富等特點(diǎn),在單片機(jī)應(yīng)用系統(tǒng)中有著日益廣泛的應(yīng)用。</p><p>  1602芯片:主要用于顯示時(shí)間和定時(shí)時(shí)間

31、。1602芯片由點(diǎn)陣字符液晶顯示器件和專(zhuān)用的行、列驅(qū)動(dòng)器、控制及必要的鏈接件、結(jié)構(gòu)件組裝而成,可以顯示數(shù)字和西文字符,但不能顯示圖形,已經(jīng)可以滿足本次設(shè)計(jì)的需要。</p><p>  1602型LCD顯示模塊具有體積小,功耗低,顯示內(nèi)容豐富等特點(diǎn)[3]。1602型LCD可以顯示2行16個(gè)字符,有8位數(shù)據(jù)總線D0~D7和RS,R/W,EN三個(gè)控制端口,工作電壓為5V,并且具有字符對(duì)比度調(diào)節(jié)和背光功能。</p&

32、gt;<p>  1. 外型尺寸:80X36X13(LXWXH)</p><p><b>  2.接口信號(hào)說(shuō)明</b></p><p>  表1-3 1602型LCD的接口信號(hào)說(shuō)明</p><p><b>  3.主要技術(shù)參數(shù)</b></p><p>  表1-4 1602型LCD的主

33、要技術(shù)參數(shù)</p><p><b>  4.基本操作程序</b></p><p>  讀狀態(tài):輸入:RS=L,RW=H,E=H輸出:D0~D7=狀態(tài)字</p><p>  讀數(shù)據(jù):輸入:RS=H,RW=H,E=H輸出:無(wú)</p><p>  寫(xiě)指令:輸入:RS=L,RW=L,D0~D7=指令碼,E=高脈沖

34、輸出:D0~D7=數(shù)據(jù)</p><p>  寫(xiě)數(shù)據(jù):輸入:RS=H,RW=L,D0~D7=數(shù)據(jù),E=高脈沖 輸出:無(wú)</p><p>  5.RAM地址映射圖</p><p>  控制器內(nèi)部帶有80字節(jié)的RAM緩沖區(qū),對(duì)應(yīng)關(guān)系1-5表所示</p><p><b>  表1-5對(duì)應(yīng)關(guān)系</b></p>&l

35、t;p><b>  6.狀態(tài)字說(shuō)明</b></p><p><b>  表1-6狀態(tài)字說(shuō)明</b></p><p>  注意 每次對(duì)控制器進(jìn)行讀寫(xiě)操作之前,都必須進(jìn)行讀寫(xiě)檢測(cè),確保STA7為0。</p><p><b>  7.?dāng)?shù)據(jù)指針設(shè)置</b></p><p>  控

36、制器內(nèi)部設(shè)有一個(gè)數(shù)據(jù)地址指針,用戶(hù)可以通過(guò)它們?cè)L問(wèn)內(nèi)部的全部80字的RAM。</p><p><b>  8.其它設(shè)置</b></p><p><b>  表1-7 其他設(shè)置</b></p><p>  表1-8 指令碼及功能</p><p>  1.3.3顯示器接口及顯示方式</p>

37、<p>  筆段式LCD顯示器:類(lèi)似于LED數(shù)碼管顯示器。每個(gè)顯示器的段電極包括a, b, c, d, e, f, g七個(gè)筆劃(段)和一個(gè)背電極BP(或COM)??梢燥@示數(shù)字和簡(jiǎn)單的字符。</p><p>  點(diǎn)陣式LCD顯示器:段電極與背電極呈正交帶狀分布,液晶位于正交的帶狀電極間。點(diǎn)陣式LCD的控制一般采用行掃描方式[4]。</p><p>  1.3.4鍵盤(pán)控制模塊<

38、;/p><p>  按鍵按照結(jié)構(gòu)原理可分為兩類(lèi),一類(lèi)是觸點(diǎn)式開(kāi)關(guān)按鍵,如機(jī)械式開(kāi)關(guān)、導(dǎo)電橡膠式開(kāi)關(guān)等;另一類(lèi)是無(wú)觸點(diǎn)式開(kāi)關(guān)按鍵,如電氣式按鍵,磁感應(yīng)按鍵等。前者造價(jià)低,后者壽命長(zhǎng)。目前,微機(jī)系統(tǒng)中最常見(jiàn)的是觸點(diǎn)式開(kāi)關(guān)按鍵。 </p><p>  按鍵按照接口原理可分為編碼鍵盤(pán)與非編碼鍵盤(pán)兩類(lèi),這兩類(lèi)鍵盤(pán)的主要區(qū)別是識(shí)別鍵符及給出相應(yīng)鍵碼的方法。編碼鍵盤(pán)主要是用硬件來(lái)實(shí)現(xiàn)對(duì)鍵的識(shí)別,非編碼鍵盤(pán)主

39、要是由軟件來(lái)實(shí)現(xiàn)鍵盤(pán)的定義與識(shí)別。</p><p>  全編碼鍵盤(pán)能夠由硬件邏輯自動(dòng)提供與鍵對(duì)應(yīng)的編碼,此外,一般還具有去抖動(dòng)和多鍵、竄鍵保護(hù)電路。這種鍵盤(pán)使用方便,但需要較多的硬件,價(jià)格較貴,一般的單片機(jī)應(yīng)用系統(tǒng)較少采用。非編碼鍵盤(pán)只簡(jiǎn)單地提供行和列的矩陣,其它工作均由軟件完成。由于其經(jīng)濟(jì)實(shí)用,較多地應(yīng)用于單片機(jī)系統(tǒng)中。在本套設(shè)計(jì)中由于只需要幾個(gè)功能鍵,此時(shí),可采用獨(dú)立式按鍵結(jié)構(gòu)[5]。</p>

40、<p><b>  按鍵的軟件結(jié)構(gòu):</b></p><p>  按鍵中有一個(gè)復(fù)位鍵及定時(shí)鍵、調(diào)時(shí)鍵加一鍵和減一鍵,一個(gè)按鍵接在復(fù)位電路上,另外四個(gè)按鍵接在P0——P4口,低電平表示有按鈕按下;按鈕沒(méi)有接防抖電路,需要設(shè)計(jì)軟件防抖。</p><p>  1、定時(shí)。按下定時(shí)鍵后可以開(kāi)始定時(shí),過(guò)程如下:定時(shí)---〉小時(shí)加/減---〉按定時(shí)---分鐘加/減---按

41、定時(shí)。</p><p>  2、調(diào)時(shí)。按下調(diào)時(shí)鍵后可以調(diào)時(shí),過(guò)程如下:調(diào)時(shí)---年加/減---調(diào)時(shí)--月加/減---調(diào)時(shí)---日加/減---調(diào)時(shí)---時(shí)加/減---調(diào)時(shí)---分加/減---調(diào)時(shí)---秒加/減 ---調(diào)時(shí)。</p><p>  1.3.5聲音提示模塊</p><p>  蜂鳴器:89C52的P2.0口接了一個(gè)蜂鳴器,定時(shí)時(shí)間到, P1.0輸出一定頻率脈

42、沖時(shí),蜂鳴器將發(fā)出響聲;一分鐘后停止。</p><p>  1.3.6直流穩(wěn)壓電源部分</p><p>  直流穩(wěn)壓電源是給電子設(shè)備提供穩(wěn)定直流電壓的電子電路。這次電路需要的是+5V直流電源。</p><p><b>  1.3.7濾波電路</b></p><p>  它的任務(wù)是將全濾波形的輸出通過(guò)RC濾波網(wǎng)絡(luò)以后變成更

43、平坦的直流電壓,減小脈動(dòng),提高整流的效果[6]。這是整流管中通過(guò)的電流的瞬間值要比平均值大得多,特別在接通電源瞬間有相當(dāng)大的沖擊電流(即充電電流)通過(guò)整流管,這一點(diǎn)要引起注意。</p><p><b>  (1) 電源變壓器</b></p><p>  它的任務(wù)是把電源電壓220V變壓到合適的大小。如果U2的值太大,會(huì)造成集成端穩(wěn)壓器7805的功耗大,溫升高,且浪費(fèi)電

44、能。反之,如果U2的值小到一定程度,三端穩(wěn)壓器不能正常工作,失去穩(wěn)壓作用.因此U2的值應(yīng)大小合適,這個(gè)值應(yīng)該使三端穩(wěn)壓器在交流電網(wǎng)電壓最低和輸出電流最大時(shí)能正常工作。而且在正常穩(wěn)壓的前提下,它的壓降盡可能小,以減小功耗。</p><p><b>  (2) 整流電路</b></p><p>  它的任務(wù)是將正弦波變換成直流電壓。這里一般采用橋式整流電路來(lái)實(shí)現(xiàn),既可用四

45、個(gè)二極管來(lái)組成,也可用整流橋堆來(lái)完成,只是參數(shù)一定要選擇合理。</p><p><b>  (3) 穩(wěn)壓電路</b></p><p>  要求輸出恒定的直流電壓,且要達(dá)到設(shè)計(jì)中所提出的要求。</p><p>  1.4 硬件電路測(cè)試</p><p>  1.4.1硬件電路ERC測(cè)試</p><p>

46、;  如圖1-2所示,選擇ERC做電路測(cè)試。如果通過(guò)測(cè)試,則出現(xiàn)1-3所示界面。</p><p>  圖1-2 ERC測(cè)試</p><p><b>  圖1-3 通過(guò)測(cè)試</b></p><p>  1.4.2硬件電路網(wǎng)格化</p><p>  硬件電路網(wǎng)絡(luò)化如圖1-4所示,選擇CREATE NETLIST,即可產(chǎn)生圖1

47、-5所示界面。</p><p>  圖1-4硬件電路網(wǎng)格化圖</p><p>  圖1-5硬件電路網(wǎng)格化圖</p><p>  1.4.3生成PCB板</p><p>  PCB板的生成過(guò)程比較復(fù)雜。</p><p>  首先要新建一個(gè)WIZARD文件,按提示選擇,之中要選擇雙層板并通過(guò)空連接。之后即可產(chǎn)生一個(gè)PCB文

48、件,在對(duì)話框中選擇LOADNET,再對(duì)網(wǎng)格化后的文件進(jìn)行編譯。如果無(wú)錯(cuò)即可出現(xiàn)如圖1-6所示的對(duì)話框。</p><p>  圖1-6選擇精確顯示</p><p>  在圖1-6的對(duì)話框中選擇精確顯示。即可彈出PCB板概圖的界面。把各個(gè)元件按照合理的布局拉開(kāi),在點(diǎn)擊AUTOROUTE--ALL-ROUTEALL,既可生成PCB板。</p><p><b> 

49、 第2章 軟件設(shè)計(jì)</b></p><p><b>  2.1 設(shè)計(jì)思路</b></p><p>  本系統(tǒng)是以單片機(jī)的基本語(yǔ)言匯編語(yǔ)言來(lái)進(jìn)行軟件設(shè)計(jì),指令的執(zhí)行速度快,節(jié)省存儲(chǔ)空間。為了便于擴(kuò)展和更改,軟件的設(shè)計(jì)采用模塊化結(jié)構(gòu),使程序設(shè)計(jì)的邏輯關(guān)系更加簡(jiǎn)潔明了。對(duì)于一個(gè)微控制系統(tǒng)來(lái)說(shuō),硬件是基礎(chǔ),軟件是靈魂。軟件在很大程度上決定了系統(tǒng)的先進(jìn)性、可靠性、實(shí)

50、用性以及實(shí)時(shí)性。本次設(shè)計(jì)所涉及到的軟件設(shè)計(jì)主要是系統(tǒng)編程和其他應(yīng)用軟件和調(diào)試軟件的使用,其中重中之重是用匯編語(yǔ)言來(lái)進(jìn)行程序編制,編制的程序要求可靠性高、實(shí)時(shí)性強(qiáng)、簡(jiǎn)練易于維護(hù)等等。</p><p>  程序設(shè)計(jì)的具體步驟如下:</p><p> ?。?)提出各種可供選擇的方案;</p><p>  (2)對(duì)各個(gè)方案進(jìn)行論證,選取合理的方案,畫(huà)出系統(tǒng)流程圖;</

51、p><p>  (3)在綜合分析對(duì)比各種合理方案的基礎(chǔ)之上選擇一個(gè)最佳方案;</p><p>  (4)功能分解。通常分為結(jié)構(gòu)設(shè)計(jì)和過(guò)程設(shè)計(jì)兩個(gè)階段。結(jié)構(gòu)設(shè)計(jì)</p><p>  確定程序由哪些模塊組成,以及這些模塊之間的關(guān)系;過(guò)程設(shè)計(jì)確定每個(gè)模塊的設(shè)計(jì)程序結(jié)構(gòu),將各個(gè)模塊組織成良好的層次系統(tǒng);</p><p> ?。?)審查與仿真調(diào)試:對(duì)總體設(shè)

52、計(jì)的程序進(jìn)行嚴(yán)格的審查,在審查之后使用仿真設(shè)備(本設(shè)計(jì)采用的是南京偉福H51/S仿真器)進(jìn)行程序仿真和調(diào)試。</p><p><b>  2.2 模塊設(shè)計(jì)</b></p><p>  本次設(shè)計(jì)實(shí)現(xiàn)的功能主要有計(jì)時(shí)、計(jì)日期、計(jì)星期、實(shí)現(xiàn)鬧鐘、時(shí)間日期星期和鬧鐘的調(diào)整以及鍵盤(pán)掃描、顯示掃描。為了方便實(shí)現(xiàn)、調(diào)試以及貫徹模塊化設(shè)計(jì)的思想,將整個(gè)程序分成了若干個(gè)模塊,每個(gè)模塊又

53、由若干個(gè)子程序組成,下面分別就各模塊詳細(xì)描述。</p><p><b>  2.3 軟件模塊</b></p><p><b>  2.3.1計(jì)時(shí)模塊</b></p><p>  該模塊完成秒、分、時(shí)、日、星期、月、年的計(jì)算更新、有效性檢查。通過(guò)定時(shí)器0工作于16位重裝載方式準(zhǔn)確地定時(shí)50毫秒,再由軟件計(jì)數(shù)20次以完成定時(shí)1

54、秒。秒、分、時(shí)、日、星期、月的加1、調(diào)整程序分別編成子程序,若有進(jìn)位,則本位從新計(jì)數(shù),并調(diào)用下一級(jí)子程序。</p><p><b>  2.3.2調(diào)時(shí)功能</b></p><p>  當(dāng)由于時(shí)鐘誤差或意外斷電后可以用調(diào)時(shí)功能較時(shí)。</p><p>  2.3.3主程序模塊</p><p>  主程序模塊主要由計(jì)時(shí)、調(diào)時(shí)、

55、按鍵選擇等模塊組成,下面將做詳細(xì)描述,再次從略。</p><p>  2.3.4鍵盤(pán)控制模塊</p><p>  由于在硬件設(shè)計(jì)中只用到四個(gè)鍵,所以,這是一個(gè)相對(duì)簡(jiǎn)單的流程,但在實(shí)際編程中會(huì)因?yàn)橛布^(guò)于簡(jiǎn)單,而使程序很復(fù)雜。</p><p>  2.3.5在編程過(guò)程中要用到的其它程序模塊</p><p>  1)LCD初始化 2)判斷閏年

56、3)時(shí)間的加減 這些程序在本設(shè)計(jì)都比較重要,也很復(fù)雜,但都有經(jīng)典程序可以參考,不做贅述。</p><p>  第3章 程序編譯和系統(tǒng)調(diào)試及仿真</p><p><b>  3.1 程序編譯</b></p><p>  3.1.1主要程序設(shè)計(jì)分析</p><p>  (1)主程序 設(shè)計(jì)中采用定時(shí)器T0中斷完成,其余狀態(tài)循

57、環(huán)調(diào)用顯示子程序,當(dāng)P3.7端口或者P1.7端口開(kāi)關(guān)按下時(shí),轉(zhuǎn)入調(diào)整時(shí)間或者調(diào)整日期功能程序。</p><p><b> ?。?)顯示子程序</b></p><p>  數(shù)碼管顯示的數(shù)據(jù)存放在內(nèi)存單元70H-75H中,其中70H~71H存放秒數(shù)據(jù),72H~73H存放分?jǐn)?shù)據(jù),74H~75H存放時(shí)數(shù)據(jù),每一地址單元內(nèi)均為十進(jìn)制BCD碼。由于采用軟件動(dòng)態(tài)掃描實(shí)現(xiàn)數(shù)據(jù)顯示功能

58、,顯示用十進(jìn)制BCD碼數(shù)據(jù)的對(duì)應(yīng)段碼存放在ROM表中。顯示時(shí),先取出70H~75H某一地址中的數(shù)據(jù),然后查的對(duì)應(yīng)的顯示段碼從P1口輸出。P3口將對(duì)應(yīng)的數(shù)碼管選中,就是顯示該地址單元的數(shù)據(jù)值。</p><p> ?。?)定時(shí)器T0中斷服務(wù)程序</p><p>  定時(shí)器T0用于時(shí)間計(jì)時(shí)。定時(shí)溢出中斷周期設(shè)為50ms,中斷累計(jì)20次(即1s)時(shí)對(duì)秒計(jì)數(shù)單元進(jìn)行加1操作。時(shí)間計(jì)數(shù)單元地址分別在7

59、0H~71H(s)、76H~77H(min)、78H~79H(h),7AH單元存放“熄滅符”數(shù)據(jù)(#0AH)。在計(jì)數(shù)單元中采用十進(jìn)制BCD碼計(jì)數(shù),滿60進(jìn)位。T0中斷服務(wù)程序流程圖3所示。</p><p> ?。?)T1中斷服務(wù)程序</p><p>  T1中斷服務(wù)程序應(yīng)用于指示調(diào)整單元數(shù)字的亮閃。在時(shí)間調(diào)整狀態(tài)下,每過(guò)0.3秒,將對(duì)應(yīng)單元的顯示數(shù)據(jù)換成熄滅符數(shù)據(jù)(#0AH)。這樣,在調(diào)整

60、時(shí)間時(shí),對(duì)應(yīng)調(diào)整單元的顯示數(shù)據(jù)就會(huì)間隔閃亮。</p><p><b> ?。?)調(diào)時(shí)功能程序</b></p><p>  調(diào)時(shí)功能程序的設(shè)計(jì)方法是:按下按鍵,若按下時(shí)間小于1秒,進(jìn)入省電狀態(tài)(數(shù)碼管不亮,時(shí)鐘不停),否則進(jìn)入調(diào)分狀態(tài),等待操作,此時(shí)計(jì)時(shí)器停止走動(dòng)。當(dāng)再次按下按鈕時(shí),若按下的時(shí)間小于0.5秒,則時(shí)間加1分鐘;若按下時(shí)間大于0.5秒,則進(jìn)入小時(shí)調(diào)整狀態(tài)。在

61、小時(shí)調(diào)整狀態(tài)下,當(dāng)按鍵按下的時(shí)間大于0.5秒時(shí)退出調(diào)整狀態(tài),時(shí)鐘繼續(xù)走動(dòng)。</p><p><b>  3.1.2程序設(shè)計(jì)</b></p><p>  定時(shí)器T0、T1溢出周期為50MS,T0為秒計(jì)數(shù)用,T1為調(diào)整時(shí)閃爍用,P3.7為調(diào)整按鈕,P1口為字符輸出口,采用共陽(yáng)顯示管。</p><p><b>  中斷入口程序</b&

62、gt;</p><p>  ORG 0000H 程序執(zhí)行開(kāi)始地址</p><p>  LJMP START 跳到標(biāo)號(hào)START執(zhí)行</p><p>  ORG 0003H 外中斷0中斷程序入口</p><p>  RETI

63、 外中斷0中斷返回</p><p>  ORG 000BH 定時(shí)器T0中斷程序入口</p><p>  LJMP INTT0 跳至INTTO執(zhí)行</p><p>  ORG 0013H 外中斷1中斷程序入口<

64、/p><p>  RETI 外中斷1中斷返回</p><p>  ORG 001BH 定時(shí)器T1中斷程序入口</p><p>  ORG 0023H 串行中斷程序入口地址</p><p>  RETI

65、 串行中斷程序返回</p><p><b>  主 程 序</b></p><p>  START: MOV R0,#70H 清70H-7AH共11個(gè)內(nèi)存單元</p><p>  MOV R7,#0BH </p><p>  CLEARDISP: MOV @

66、R0,#00H </p><p>  INC R0 </p><p>  DJNZ R7,CLEARDISP </p><p>  MOV 20H,#00H 清20H(標(biāo)志用)</p><p>  MOV 7AH,#0AH 放入"熄滅符"數(shù)據(jù)</p><

67、p>  MOV TMOD,#11H 設(shè)T0、T1為16位定時(shí)器</p><p>  MOV TL0,#00H 50MS定時(shí)初值(T0計(jì)時(shí)用)</p><p>  MOV TH0,#4CH 50MS定時(shí)初值</p><p>  MOV TL1,#00H 50MS定時(shí)初值</p><p>  MOV T

68、H1,#4CH 50MS定時(shí)初值</p><p>  SETB EA 總中斷開(kāi)放</p><p>  SETB ET0 允許T0中斷</p><p>  SETB TR0 開(kāi)啟T0定時(shí)器</p><p>  MOV R4,#14H 1秒定時(shí)用初值&l

69、t;/p><p>  START1: LCALL DISPLAY 調(diào)用顯示子程序</p><p>  JNB P3.7,SETMM1 P3.7口為0時(shí)轉(zhuǎn)時(shí)間調(diào)整程序</p><p>  SJMP START1 P3.7口為1時(shí)跳回START1</p><p>  SETMM1:LJMP SETMM 轉(zhuǎn)到時(shí)間調(diào)整程序S

70、ETMM1秒計(jì)時(shí)程序</p><p><b>  T0中斷服務(wù)程序</b></p><p>  INTT0: PUSH ACC 累加器入棧保護(hù)</p><p>  PUSH PSW 狀態(tài)字入棧保護(hù)</p><p>  CLR ET0 關(guān)T0中斷允許

71、</p><p>  CLR TR0 關(guān)閉定時(shí)器T0</p><p>  MOV A,#0B7H 中斷響應(yīng)時(shí)間同步修正</p><p>  ADD A,TL0 低8位初值修正</p><p>  MOV TL0,A 重裝初值(低8位修

72、正值)</p><p>  MOV A,#4CH 高8位初值修正</p><p>  ADDC A,TH0 </p><p>  MOV TH0,A 重裝初值(高8位修正值)</p><p>  SETB TR0 開(kāi)啟定時(shí)器T0</p>

73、<p>  DJNZ R4, OUTT0 20次中斷未到中斷退出</p><p>  ADDSS: MOV R4,#14H 20次中斷到(1秒)重賦初值</p><p>  MOV R0,#71H 指向秒計(jì)時(shí)單元(71H-72H)</p><p>  ACALL ADD1 調(diào)

74、用加1程序(加1秒操作)</p><p>  MOV A,R3 秒數(shù)據(jù)放入A</p><p>  CLR C 清進(jìn)位標(biāo)志</p><p>  CJNE A,#60H,ADDMM </p><p>  ADDMM: JC OUTT0 小于60秒時(shí)中斷

75、退出</p><p>  ACALL CLR0 大于或等于60秒時(shí)對(duì)秒計(jì)時(shí)單元清0</p><p>  MOV R0,#77H 指向分計(jì)時(shí)單元(76H-77H)</p><p>  ACALL ADD1 分計(jì)時(shí)單元加1分鐘</p><p>  MOV A,R3 分?jǐn)?shù)據(jù)放入A</p>

76、<p>  CLR C 清進(jìn)位標(biāo)志</p><p>  CJNE A,#60H,ADDHH </p><p>  ADDHH: JC OUTT0 小于60分時(shí)中斷退出</p><p>  ACALL CLR0 大于或等于60分時(shí)分計(jì)時(shí)單元清0</p><p>  MOV R0,

77、#79H 指向小時(shí)計(jì)時(shí)單元(78H-79H)</p><p>  ACALL ADD1 小時(shí)計(jì)時(shí)單元加1小時(shí)</p><p>  MOV A,R3 時(shí)數(shù)據(jù)放入A</p><p>  CLR C 清進(jìn)位標(biāo)志</p><p>  CJNE A,#24H,HOUR

78、</p><p>  HOUR: JC OUTT0 小于24小時(shí)中斷退出</p><p>  ACALL CLR0 大于或等于24小時(shí)小時(shí)計(jì)時(shí)單元清0</p><p>  OUTT0: MOV 72H,76H 中斷退出時(shí)將分、時(shí)計(jì)時(shí)單元數(shù)據(jù)移</p><p>  MOV 73H,77H 入對(duì)應(yīng)顯示

79、單元</p><p>  MOV 74H,78H </p><p>  MOV 75H,79H </p><p>  POP PSW 恢復(fù)狀態(tài)字(出棧)</p><p>  POP ACC 恢復(fù)累加器</p><p>  

80、SETB ET0 開(kāi)放T0中斷</p><p>  RETI 中斷返回</p><p><b>  閃動(dòng)調(diào)時(shí)程序</b></p><p>  T1中斷服務(wù)程序,用作時(shí)間調(diào)整時(shí)調(diào)整單元閃爍指示</p><p>  INTT1: PUSH ACC

81、 中斷現(xiàn)場(chǎng)保護(hù)</p><p>  PUSH PSW </p><p>  MOV TL1, #00H 裝定時(shí)器T1定時(shí)初值</p><p>  MOV TH1, #4CH </p><p>  DJNZ R2,INTT1OUT 0.3秒未到退出中斷<

82、;/p><p>  MOV R2,#06H 重裝0.3秒定時(shí)用初值</p><p>  CPL 02H 0.3秒定時(shí)到對(duì)閃爍標(biāo)志取反</p><p>  JB 02H,FLASH1 02H位為1時(shí)顯示單元"熄滅"</p><p>  MOV 72H,76

83、H 02H位為0時(shí)正常顯示</p><p>  MOV 73H,77H </p><p>  MOV 74H,78H </p><p>  MOV 75H,79H </p><p>  INTT1OUT: POP PSW 恢復(fù)現(xiàn)場(chǎng)</p>

84、<p>  POP ACC </p><p>  RETI 中斷退出</p><p>  FLASH1: JB 01H,FLASH2 01H位為1時(shí),轉(zhuǎn)小時(shí)熄滅控制</p><p>  MOV 72H,7AH 01H位為0時(shí),"熄滅符"數(shù)據(jù)放入分</p>

85、;<p>  MOV 73H,7AH 顯示單元,將不顯示分?jǐn)?shù)據(jù)</p><p>  MOV 74H,78H </p><p>  MOV 75H,79H </p><p>  AJMP INTT1OUT 轉(zhuǎn)中斷退出</p><p>  FLASH2: MOV 72H,76H

86、01H位為1時(shí),"熄滅符"數(shù)據(jù)放入小時(shí)</p><p>  MOV 73H,77H 顯示單元,小時(shí)數(shù)據(jù)將不顯示</p><p>  MOV 74H,7AH </p><p>  MOV 75H,7AH </p><p>  AJMP INTT1OUT 轉(zhuǎn)中斷退出</p>

87、;<p><b>  加1子 程 序</b></p><p>  ADD1: MOV A,@R0 取當(dāng)前計(jì)時(shí)單元數(shù)據(jù)到A</p><p>  SWAP A A中數(shù)據(jù)高四位與低四位交換</p><p>  ORL A,@R0 前一地址中數(shù)據(jù)放入A中低四位</p>&l

88、t;p>  ADD A,#01H A加1操作</p><p>  DA A 十進(jìn)制調(diào)整</p><p>  MOV R3,A 移入R3寄存器</p><p>  ANL A,#0FH 高四位變0</p><p>  MOV @R0,A

89、 放回前一地址單元</p><p>  MOV A,R3 取回R3中暫存數(shù)據(jù)</p><p>  INC R0 指向當(dāng)前地址單元</p><p>  SWAP A A中數(shù)據(jù)高四位與低四位交換</p><p>  ANL A,#0FH 高四位

90、變0</p><p>  MOV @R0,A 數(shù)據(jù)放入當(dāng)削地址單元中</p><p>  RET 子程序返回</p><p><b>  清零程序</b></p><p><b>  對(duì)計(jì)時(shí)單元復(fù)零用</b></p><p>

91、  CLR0: CLR A 清累加器</p><p>  MOV @R0,A 清當(dāng)前地址單元</p><p>  DEC R0 指向前一地址</p><p>  MOV @R0,A 前一地址單元清0</p><p>  RET

92、 子程序返回</p><p><b>  時(shí)鐘調(diào)整程序</b></p><p>  當(dāng)調(diào)時(shí)按鍵按下時(shí)進(jìn)入此程序</p><p>  SETMM: cLR ET0 關(guān)定時(shí)器T0中斷</p><p>  CLR TR0 關(guān)閉定時(shí)器T0</p><p&g

93、t;  LCALL DL1S 調(diào)用1秒延時(shí)程序</p><p>  JB P3.7,CLOSEDIS 鍵按下時(shí)間小于1秒,關(guān)閉顯示</p><p>  MOV R2,#06H 進(jìn)入調(diào)時(shí)狀態(tài),賦閃爍定時(shí)初值</p><p>  SETB ET1 允許T1中斷</p><p>  

94、SETB TR1 開(kāi)啟定時(shí)器T1</p><p>  SET2: JNB P3.7,SET1 P3.7口為0(鍵未釋放),等待</p><p>  SETB 00H 鍵釋放,分調(diào)整閃爍標(biāo)志置1</p><p>  SET4: JB P3.7,SET3 等待鍵按下</p><p>  

95、LCALL DL05S 有鍵按下,延時(shí)0.5秒</p><p>  JNB P3.7,SETHH 按下時(shí)間大于0.5秒轉(zhuǎn)調(diào)小時(shí)狀態(tài)</p><p>  MOV R0,#77H 按下時(shí)間小于0.5秒加1分鐘操作</p><p>  LCALL ADD1 調(diào)用加1子程序</p><p>  M

96、OV A,R3 取調(diào)整單元數(shù)據(jù)</p><p>  CLR C 清進(jìn)位標(biāo)志</p><p>  CJNE A,#60H,HHH 調(diào)整單元數(shù)據(jù)與60比較</p><p>  HHH: JC SET4 調(diào)整單元數(shù)據(jù)小于60轉(zhuǎn)SET4循環(huán)</p><p>  LCALL CLR0

97、 調(diào)整單元數(shù)據(jù)大于或等于60時(shí)清0</p><p>  CLR C 清進(jìn)位標(biāo)志</p><p>  AJMP SET4 跳轉(zhuǎn)到SET4循環(huán)</p><p>  CLOSEDIS: SETB ET0 省電狀態(tài)。開(kāi)T0中斷</p><p>  SETB TR0

98、開(kāi)啟T0定時(shí)器(開(kāi)時(shí)鐘)</p><p>  CLOSE: JB P3.7,CLOSE 無(wú)按鍵按下,等待。</p><p>  LCALL DISPLAY 有鍵按下,調(diào)顯示子程序延時(shí)削抖</p><p>  JB P3.7,CLOSE 是干擾返回CLOSE等待</p><p>  WAITH: JNB P3.7,WAIT

99、H 等待鍵釋放</p><p>  LJMP START1 返回主程序(LED數(shù)據(jù)顯示亮)</p><p>  SETHH: CLR 00H 分閃爍標(biāo)志清除(進(jìn)入調(diào)小時(shí)狀態(tài))</p><p>  SETHH1: JNB P3.7,SET5 等待鍵釋放</p><p>  SETB 01H

100、 小時(shí)調(diào)整標(biāo)志置1</p><p>  SET6: JB P3.7,SET7 等待按鍵按下</p><p>  LCALL DL05S 有鍵按下延時(shí)0.5秒</p><p>  JNB P3.7,SETOUT 按下時(shí)間大于0.5秒退出時(shí)間調(diào)整</p><p>  MOV R0,#79H 按下時(shí)間小

101、于0.5秒加1小時(shí)操作</p><p>  LCALL ADD1 調(diào)加1子程序</p><p>  MOV A,R3 </p><p>  CLR C </p><p>  CJNE A,#24H,HOUU 計(jì)時(shí)單元數(shù)據(jù)與24比較</p><p>  H

102、OUU: JC SET6 小于24轉(zhuǎn)SET6循環(huán)</p><p>  LCALL CLR0 大于或等于24時(shí)清0操作</p><p>  AJMP SET6 跳轉(zhuǎn)到SET6循環(huán)釋放</p><p>  LCALL DISPLAY 延時(shí)削抖</p><p>  JNB P3.7

103、,SETOUT 是抖動(dòng),返回SETOUT再等待</p><p>  CLR 01H 清調(diào)小時(shí)標(biāo)志</p><p>  CLR 00H 清調(diào)分標(biāo)志</p><p>  CLR 02H 清閃爍標(biāo)志</p><p>  CLR TR1 關(guān)閉定時(shí)器T1<

104、/p><p>  CLR ET1 關(guān)定時(shí)器T1中斷</p><p>  SETB TR0 開(kāi)啟定時(shí)器T0</p><p>  SETB ET0 開(kāi)定時(shí)器T0中斷(計(jì)時(shí)開(kāi)始)</p><p>  LJMP START1 跳回主程序</p><p> 

105、 SET1: LCALL DISPLAY 鍵釋放等待時(shí)調(diào)用顯示程序</p><p>  AJMP SET2 防止鍵按下時(shí)無(wú)時(shí)鐘顯示</p><p>  SET3: LCALL DISPLAY 等待調(diào)分按鍵時(shí)時(shí)鐘顯示用</p><p>  AJMP SET4</p><p>  SET5: LCALL DISPL

106、AY 鍵釋放等待時(shí)調(diào)用顯示程序(調(diào)小時(shí))</p><p>  AJMP SETHH1 防止鍵按下時(shí)無(wú)時(shí)鐘顯示</p><p>  SET7: LCALL DISPLAY 等待調(diào)小時(shí)按鍵時(shí)時(shí)鐘顯示用</p><p>  AJMP SET6</p><p>  SETOUT1: LCALL DISPLAY

107、 退出時(shí)鐘調(diào)整時(shí)鍵釋放等待</p><p>  AJMP SETOUT 防止鍵按下時(shí)無(wú)時(shí)鐘顯示</p><p><b>  顯示程序</b></p><p>  顯示數(shù)據(jù)在70H-75H單元內(nèi),用六位LED共陽(yáng)數(shù)碼管顯示,P1口輸出段碼數(shù)據(jù),P3口作;掃描控制,每個(gè)LED數(shù)碼管亮1MS時(shí)間再逐位循環(huán)。</p>

108、<p>  DISPLAY: MOV R1,#70H 指向顯示數(shù)據(jù)首址</p><p>  MOV R5,#0FEH 掃描控制字初值</p><p>  PLAY: MOV A,R5 掃描字放入A</p><p>  MOV P3,A 從P3口輸出</p><

109、;p>  MOV A,@R1 取顯示數(shù)據(jù)到A</p><p>  MOV DPTR,#TAB 取段碼表地址</p><p>  MOVC A,@A+DPTR 查顯示數(shù)據(jù)對(duì)應(yīng)段碼</p><p>  MOV P1,A 段碼放入P1口</p><p

110、>  LCALL DL1MS 顯示1MS</p><p>  INC R1 指向下一地址</p><p>  MOV A,R5 掃描控制字放入A</p><p>  JNB ACC.5,ENDOUT ACC.5=0時(shí)一次顯示結(jié)束</p>

111、;<p>  RL A A中數(shù)據(jù)循環(huán)左移</p><p>  MOV R5,A 放回R5內(nèi)</p><p>  AJMP PLAY 跳回PLAY循環(huán)</p><p>  ENDOUT: SETB P3.5 一次顯示結(jié)束,P3口復(fù)

112、位</p><p>  MOV P1,#0FFH P1口復(fù)位</p><p>  RET 子程序返回</p><p>  TAB DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH</p><p><b>  

113、3.2 軟件調(diào)試</b></p><p>  調(diào)試的主要過(guò)程包括硬件調(diào)試和軟件調(diào)試,其中軟件調(diào)試,也即程序編譯與仿真過(guò)程處于本次設(shè)計(jì)調(diào)試過(guò)程的核心環(huán)節(jié)。由于本設(shè)計(jì)已經(jīng)制作出液晶顯示電子鐘,所以硬件調(diào)試也很重要。兩種調(diào)試過(guò)程并非孤立或者分開(kāi)的,而是緊密相關(guān)。在此我們用到的開(kāi)發(fā)工具是南京偉福公司生產(chǎn)的WAVE6000/S型仿真器。</p><p><b>  3.2.1偉

114、福簡(jiǎn)介</b></p><p>  偉福仿真器有主機(jī)+POD組成,通過(guò)更換POD,可以對(duì)各種CPU進(jìn)行仿真。它的仿真CPU 外置,直接位于用戶(hù)板的上方,提高了仿真頻率以及降低信號(hào)噪聲。它有強(qiáng)大的邏輯分析儀綜合調(diào)試功能:邏輯分析儀由交互式軟件菜單窗口對(duì)系統(tǒng)硬件的邏輯或進(jìn)序進(jìn)行同步實(shí)時(shí)采樣,并實(shí)時(shí)在線調(diào)試分析,采集深度32K(E6000/L),最高時(shí)基采樣頻率達(dá)20M,40路波形的可精確實(shí)時(shí)反映用戶(hù)程序運(yùn)

115、行時(shí)的歷史時(shí)間。在軟件仿真中,它提供了Wave6000及Keil uVision 雙平臺(tái),有雙工作模式:兼容軟件模擬仿真和硬件仿真。具備真正集成調(diào)試環(huán)境: 集成了編輯器、編譯器、調(diào)試器,源程序編輯、編譯、下載、調(diào)試全部可以在一個(gè)環(huán)境下完成。它支持多語(yǔ)言多模塊混合調(diào)試:支持ASM(匯編)、PLM、C語(yǔ)言多模塊混合源程序調(diào)試。</p><p><b>  3.2.2軟件調(diào)試</b></p&

116、gt;<p>  首先對(duì)WAVE6000/S仿真頭等項(xiàng)目進(jìn)行設(shè)置。</p><p>  仿真器仿真頭等項(xiàng)目設(shè)置如圖3-1 [編譯器路徑]:指明本系統(tǒng)匯編器,編譯器所在位置,本次設(shè)計(jì)使用的51 系列編譯器在D:\Program Files\COMP51\文件夾下。</p><p><b>  圖3-1仿真頭設(shè)置</b></p><p&g

117、t;  [ASM 命令行]:使用偉福匯編器,和偉福預(yù)定義的符號(hào)。</p><p>  [編譯器選擇]:選擇偉福匯編器。</p><p>  [缺省顯示格式]:指定觀察變量顯示的方式,一般為混合十/十六進(jìn)制。</p><p>  除此之外軟件模擬器仿真其他設(shè)置一般情況下都是以51系列編譯器和匯編語(yǔ)言相應(yīng)要求作出的缺省設(shè)置,可以默認(rèn)缺省設(shè)置。</p>&l

118、t;p>  軟件模擬器方式設(shè)置成功后就可以正式編譯程序。首先在WAVE上對(duì)源程序的結(jié)構(gòu)錯(cuò)誤和語(yǔ)法錯(cuò)誤進(jìn)行偵測(cè)與修改。E6000/S對(duì)程序語(yǔ)法錯(cuò)誤的偵察功能很強(qiáng),界面也很友好。但很多時(shí)候也需程序調(diào)試人員細(xì)致尋查才能徹底找出錯(cuò)誤原因。我在源程序的編譯過(guò)程中就曾遇到一些很隱蔽的結(jié)構(gòu)和語(yǔ)法錯(cuò)誤,WAVE有報(bào)錯(cuò),但很籠統(tǒng),不能具體到深層。</p><p>  如果程序編譯通過(guò)則在WAVE界面中的Message窗口會(huì)示

溫馨提示

  • 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ù)僅提供信息存儲(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)論