2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計任務(wù)書</b></p><p>  課程名稱: 單片機(jī)原理與應(yīng)用課程設(shè)計 </p><p>  起訖時間: 2011年6月22日----6月28日 </p><p>  院 系: 電子信息工程系 </p><p><b>

2、  目錄</b></p><p>  第一章 電子時鐘1</p><p>  1.1 電子時鐘簡介1</p><p>  1.2 電子時鐘的基本特點(diǎn)1</p><p>  1.3 電子時鐘的原理1</p><p>  第二章 單片機(jī)識的相關(guān)知識2</p><p>  2.1

3、單片機(jī)簡介2</p><p>  2.2單片機(jī)的發(fā)展史2</p><p>  2.3 單片機(jī)的特點(diǎn)3</p><p>  2.4 89C51單片機(jī)介紹3</p><p>  第三章 控制系統(tǒng)的硬件設(shè)計6</p><p>  3.1 單片機(jī)型號的選擇6</p><p>  3.

4、2 數(shù)碼管顯示工作原理6</p><p>  3.3 鍵盤電路設(shè)計7</p><p>  3.4系統(tǒng)工作原理7</p><p>  3.5整個電路原理圖9</p><p>  第四章 控制系統(tǒng)的軟件設(shè)計10</p><p>  4.1 程序設(shè)計10</p><p>  4.2程

5、序流程圖13</p><p>  4.3偉福硬件仿真器簡介14</p><p>  4.4仿真圖及結(jié)果分析15</p><p>  第五章 附錄程序17</p><p>  第六章 結(jié)束語19</p><p><b>  參考文獻(xiàn)20</b></p><p>&

6、lt;b>  第一章 電子時鐘</b></p><p>  1.1 電子時鐘簡介 </p><p>  本作品采用Atmel公司的AT89C51單片機(jī),以匯編語言為程序設(shè)計的基礎(chǔ),設(shè)計一個用四位數(shù)碼管顯示時、分的時鐘?,F(xiàn)代的電子時鐘是基于單片機(jī)的一種計時工具,采用延時程序產(chǎn)生一定的時間中斷,用于一秒的定義,通過計數(shù)方式進(jìn)行滿六十秒分鐘進(jìn)一,滿六十分小時進(jìn)一,滿二十四小時小

7、時清零。從而達(dá)到計時的功能,是人民日常生活補(bǔ)課缺少的工具。</p><p>  1.2 電子時鐘的基本特點(diǎn) </p><p>  現(xiàn)在高精度的計時工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘、石英鐘、石英表都采用了石英技術(shù),因此走時精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)試,數(shù)字式電子鐘用集成電路計時時,譯碼代

8、替機(jī)械式傳動,用LED顯示器代替指針顯示進(jìn)而顯示時間,減小了計時誤差,這種表具有時、分、秒顯示時間的功能,還可以進(jìn)行時和分的校對,片選的靈活性好。</p><p>  1.3 電子時鐘的原理 </p><p>  該電子時鐘由89C51,BUTTON,六段數(shù)碼管等構(gòu)成,采用晶振電路作為驅(qū)動電路,由延時程序和循環(huán)程序產(chǎn)生的一秒定時,達(dá)到時分秒的計時,六十秒

9、為一分鐘,六十分鐘為一小時,滿二十四小時為一天。而電路中唯一的一個控制鍵卻擁有多種不同的功能,按下又松開,可以實現(xiàn)屏蔽數(shù)碼管顯示的功能,達(dá)到省電的目的;直接按下不松開,則可以通過按鍵實現(xiàn)分鐘的累加,每按一次分鐘加一;而連續(xù)兩次按下按鍵不放松,則可實現(xiàn)小時的調(diào)節(jié),同樣每按一次小時加一。</p><p>  第二章 單片機(jī)識的相關(guān)知識</p><p>  2.1單片機(jī)簡介 </p

10、><p>  單片機(jī)是指一個集成在一塊芯片上的完整計算機(jī)系統(tǒng)。盡管他的大 部分功能集成在一塊小芯片上,但是它具有一個完整計算機(jī)所需要的大部分部件:CPU、內(nèi)存、內(nèi)部和外部總線系統(tǒng),目前大部分還會具有外 存。同時集成諸如通訊接口、定時器,實時時鐘等外圍設(shè)備。而現(xiàn)在最強(qiáng)大的 單片機(jī)系統(tǒng)甚至可以將聲音、圖像、網(wǎng)絡(luò)、復(fù)雜的輸入輸出系統(tǒng)集成在一塊芯片上。</p><p>  2.2單片機(jī)的發(fā)展史<

11、/p><p>  單片機(jī)誕生于20世紀(jì)70年代末,經(jīng)歷了SCM、MCU、SoC三大階段。 </p><p><b>  起初模型</b></p><p>  1.SCM即單片微型計算機(jī)(Single Chip Microcomputer)階段,主要是尋求最佳的單片形態(tài)嵌入式系統(tǒng)的最佳體系結(jié)構(gòu)?!皠?chuàng)新模式”獲得成功,奠定了SCM與通用計算機(jī)完全不同的

12、發(fā)展道路。在開創(chuàng)嵌入式系統(tǒng)獨(dú)立發(fā)展道路上,Intel公司功不可沒。 </p><p>  Micro Controller Unit</p><p>  2.MCU即微控制器(Micro Controller Unit)階段,主要的技術(shù)發(fā)展方向是:不斷擴(kuò)展?jié)M足嵌入式應(yīng)用時,對象系統(tǒng)要求的各種外圍電路與接口電路,突顯其對象的智能化控制能力。它所涉及的領(lǐng)域都與對象系統(tǒng)相關(guān),因此,發(fā)展MCU的重

13、任不可避免地落在電氣、電子技術(shù)廠家。從這一角度來看,Intel逐漸淡出MCU的發(fā)展也有其客觀因素。在發(fā)展MCU方面,最著名的廠家當(dāng)數(shù)Philips公司。 </p><p>  Philips公司以其在嵌入式應(yīng)用方面的巨大優(yōu)勢,將MCS-51從單片微型計算機(jī)迅速發(fā)展到微控制器。因此,當(dāng)我們回顧嵌入式系統(tǒng)發(fā)展道路時,不要忘記Intel和Philips的歷史功績。 </p><p><b&

14、gt;  嵌入式系統(tǒng)</b></p><p>  單片機(jī)是嵌入式系統(tǒng)的獨(dú)立發(fā)展之路,向MCU階段發(fā)展的重要因素,就是尋求應(yīng)用系統(tǒng)在芯片上的最大化解決;因此,專用單片機(jī)的發(fā)展自然形成了SoC化趨勢。隨著微電子技術(shù)、IC設(shè)計、EDA工具的發(fā)展,基于SoC的單片機(jī)應(yīng)用系統(tǒng)設(shè)計會有較大的發(fā)展。因此,對單片機(jī)的理解可以從單片微型計算機(jī)、單片微控制器延伸到單片應(yīng)用系統(tǒng)。</p><p> 

15、 2.3 單片機(jī)的特點(diǎn) </p><p>  1 . 單片機(jī)的存儲器ROM和RAM時嚴(yán)格區(qū)分的。ROM稱為程序存儲器,只存放程序,固定常數(shù),及數(shù)據(jù)表格。RAM則為數(shù)據(jù)存儲器,用作工作區(qū)及存放用戶數(shù)據(jù)。 </p><p>  2 . 采用面向控制的指令系統(tǒng)。為滿足控制需要,單片機(jī)有更強(qiáng)的邏輯控制能

16、力,特別是單片機(jī)具有很強(qiáng)的位處理能力。 </p><p>  3 . 單片機(jī)的I/O口通常時多功能的。由于單片機(jī)芯片上引腳數(shù)目有限,為了解決實際引腳數(shù)和需要的信號線的矛盾,采用了引腳功能復(fù)用的方法,引腳處于何種功能,可由指令來設(shè)置或由機(jī)器狀態(tài)來區(qū)分。 </p><p&g

17、t;  4 . 單片機(jī)的外部擴(kuò)展能力很強(qiáng)。在內(nèi)部的各種功能部件不能滿足應(yīng)用的需求時,均可在外部進(jìn)行擴(kuò)展,與許多通用的微機(jī)接口芯片兼容,給應(yīng)用系統(tǒng)設(shè)計帶來了很大的方便。</p><p>  2.4 89C51單片機(jī)介紹 </p><p><b>  VCC:電源。</b><

18、/p><p><b>  GND:接地。</b></p><p>  P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程 序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗時,P0輸出原碼,此時P0外部必須被拉高。</p

19、><p>  P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸</p><p>  出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作 輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 </p><p>  P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,

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

21、信號。</p><p>  P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。</p><p>  P3口也可作為AT89C51的一些特殊功能口,如下表所示:</p><p><b>  口

22、管腳 備選功能</b></p><p>  P3.0 RXD(串行輸入口)</p><p>  P3.1 TXD(串行輸出口)</p><p>  P3.2 /INT0(外部中斷0)</p><p>  P3.3 /INT1(外部中斷1)</p><p>  P3.4 T0(記時器0外部輸入)</p&

23、gt;<p>  P3.5 T1(記時器1外部輸入)</p><p>  P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)</p><p>  P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)</p><p>  P3口同時為閃爍編程和編程校驗接收一些控制信號。</p><p>  RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機(jī)器周

24、期的高電平時間。</p><p>  ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE 端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器 時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, AL

25、E只有在執(zhí)行MOVX,MOVC指令是</p><p>  ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p><p>  PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。</p><p>  EA/VPP:當(dāng)/E

26、A保持低電平時,則在此期間外部程序存儲(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時, /EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 </p><p><b>  o</b></p><p>  圖2.1 89C51單片機(jī)</p>

27、<p>  第三章 控制系統(tǒng)的硬件設(shè)計</p><p>  3.1 單片機(jī)型號的選擇 </p><p>  通過對多種單片機(jī)性能的分析,最終認(rèn)為89C51是最理想的電子時鐘開發(fā)芯片。89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能

28、CMOS8位微處理器,器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的89C51是一種高效微控制器,而且它與MCS-51兼容,且具有4K字節(jié)可編程閃爍存儲器和1000寫/擦循環(huán),數(shù)據(jù)保留時間為10年等特點(diǎn),是最好的選擇。</p><p>  3.2 數(shù)碼管顯示工作原理</p><

29、p>  數(shù)碼管是一種把多個LED顯示段集成在一起的顯示設(shè)備。有兩種類型,一種是共陽型,一種是共陰型。共陽型就是把多個LED顯示段的陽極接在一起,又稱為公共端。共陰型就是把多個LED顯示段的陰極接在一起,即為公共商。陽極即為二極管的正極,又稱為正極,陰極即為二極管的負(fù)極,又稱為負(fù)極。通常的數(shù)碼管又分為8段,即8個LED顯示段,這是為工程應(yīng)用方便如設(shè)計的,分別為A、B、C、D、E、F、G、DP,其中DP 是小數(shù)點(diǎn)位段。而多位數(shù)碼管,除

30、某一位的公共端會連接在一起,不同位的數(shù)碼管的相同端也會連接在一起。即,所有的A段都會連在一起,其它的段也是如此,這是實際最常用的用法。數(shù)碼管顯示方法可分為靜態(tài)顯示和動態(tài)顯示兩種。靜態(tài)顯示就是數(shù)碼管的8段輸入及其公共端電平一直有效。動態(tài)顯示的原理是,各個數(shù)碼管的相同段連接在一起,共同占用8 位段引管線;每位數(shù)碼管的陽極連在一起組成公共端。利用人眼的視覺暫留性,依次給出各個數(shù)碼管公共端加有效信號,在此同時給出該數(shù)碼管加有效的數(shù)據(jù)信號,當(dāng)全段

31、掃描速度大于視覺暫留速度時,顯示就會清晰顯示出來。 </p><p>  圖 3.1 共陰數(shù)碼管</p><p>  3.3 鍵盤電路設(shè)計 </p><p>  該設(shè)計只用了一個鍵盤,但實現(xiàn)

32、的功能卻是比較完善,減少了硬件資源的損耗,該鍵盤可以實現(xiàn)小時和分鐘的調(diào)節(jié)以及控制是否進(jìn)入省電模式。當(dāng)按鍵按下又松開,可以實現(xiàn)屏蔽數(shù)碼管顯示的功能,達(dá)到省電的目的;直接按下不松開,則可以通過按鍵實現(xiàn)分鐘的累加,每按一次分鐘加一;而連續(xù)兩次按下按鍵不放松,則可實現(xiàn)小時的調(diào)節(jié),同樣每按一次小時加一。達(dá)到時間調(diào)節(jié)的目的。</p><p>  圖3.2 多功能控制鍵</p><p>  經(jīng)多方論證

33、硬件我們小組采用AT89C51單片機(jī)和7SED六位共陰極數(shù)碼管等來實現(xiàn)單片機(jī)電子時鐘的功能,詳細(xì)元器件列表如表3.1所示:</p><p>  表3.1 詳細(xì)元器件列表</p><p><b>  3.4系統(tǒng)工作原理</b></p><p>  單片機(jī)發(fā)送的信號通過程序控制最終在數(shù)碼管上顯示出來。</p><p>  單

34、片機(jī)通過輸出各種電脈沖信號來驅(qū)動控制各部分正常工作。</p><p>  為使時鐘走時與標(biāo)準(zhǔn)時間一致,校時電路是必不可少的,鍵盤用來校正數(shù)碼管上顯示的時間。</p><p>  設(shè)計的電路主要由三模塊構(gòu)成:單片機(jī)控制電路,顯示電路、及校正電路。</p><p>  此設(shè)計原理框圖如圖3-3所示,此電路包括以下三個部分:單片機(jī),鍵盤及顯示電路</p>&

35、lt;p>  圖3.3 設(shè)計原理框圖</p><p>  本設(shè)計采用匯編語言程序設(shè)計,使單片機(jī)控制數(shù)碼管顯示時、分、秒,當(dāng)秒計數(shù)計滿60時就向分進(jìn)位,分計數(shù)器計滿60后向時計數(shù)器進(jìn)位,小時計數(shù)器按“23翻0”規(guī)律計數(shù)。時、分、秒的計數(shù)結(jié)果經(jīng)過數(shù)據(jù)處理可直接送顯示器顯示。當(dāng)計時發(fā)生誤差的時候可以用校時電路進(jìn)行校正。設(shè)計采用的是時、分、秒顯示,單片機(jī)對數(shù)據(jù)進(jìn)行處理同時在數(shù)碼管上顯示</p>&l

36、t;p>  3.5整個電路原理圖 </p><p>  圖3.4 系統(tǒng)電路原理圖</p><p>  第四章 控制系統(tǒng)的軟件設(shè)計 </p><p><b>  4.1 程序設(shè)計</b>

37、;</p><p>  本系統(tǒng)的軟件系統(tǒng)主要可分為主程序、定時計數(shù)中斷程序、時間調(diào)整程序、延時程序四大模塊。在程序設(shè)計過程中,加強(qiáng)了部分軟件抗干擾措施,下面對部分模塊作介紹。</p><p>  我們用定時器1采用方式1定時,M=65536,如果要求定時時間為50ms,采用12MHz晶振,則機(jī)器周期為1us,由(65536—Z)*1=50*1000得</p><p>

38、;  Z=65536-50000=15536=3CB0H</p><p>  將3C、B0H分別預(yù)置給TH1、TL1,即TH1=3CH,TH=0B0H</p><p>  根據(jù)需要開始定時器/計數(shù)器工作------將TR0或TR1置“1”。GATE=0時,直接由軟件置位啟動,即SETB TR0或SETB TR1;GATE=1時,除軟件置位外,還必須在外中斷引腳(P3.3)處輸入高電平值才能

39、啟動。</p><p><b>  定時計數(shù)中斷程序:</b></p><p>  MOV TMOD,#11H ;設(shè)T0、T1為16位定時器</p><p>  MOV TL0,#0B0H ;50MS定時初值(T0計時用)</p><p>  MOV TH0,#3CH ;50MS定時初值

40、</p><p>  MOV TL1,#0B0H ;50MS定時初值(T1閃爍定時用)</p><p>  MOV TH1,#3CH ;50MS定時初值</p><p>  SETB EA ;總中斷開放</p><p>  SETB ET0 ;允許T0中斷</p&g

41、t;<p>  SETB TR0 ;開啟T0定時器</p><p><b>  AJMP $</b></p><p><b>  時間調(diào)整程序:</b></p><p>  SETMM: cLR ET0 ;關(guān)定時器T0中斷</p><

42、p>  CLR TR0 ;關(guān)閉定時器T0</p><p>  LCALL DL1S ;調(diào)用1秒延時程序</p><p>  JB P3..3,CLOSEDIS ;鍵按下時間小于1秒,關(guān)閉顯示(省電)

43、 MOV R2,#06H ;進(jìn)入調(diào)時狀態(tài),賦閃爍定時初值 SETB ET1 ;允許T1中斷</p><p>  SETB

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

45、 ;等待鍵按下</p><p>  LCALL DL05S ;有鍵按下,延時0.5秒</p><p>  JNB P3.3,SETHH ;按下時間大于0.5秒轉(zhuǎn)調(diào)小時狀態(tài)</p><p>  MOV R0,#77H ;按下時間小于0.5秒加1分鐘操作<

46、;/p><p>  LCALL ADD1 ;調(diào)用加1子程序</p><p>  MOV A,R3 ;取調(diào)整單元數(shù)據(jù)</p><p>  CLR C ;清進(jìn)位標(biāo)志</p><p>  CJNE A,#60H,HHH

47、 ;調(diào)整單元數(shù)據(jù)與60比較</p><p>  HHH: JC SET4 ;調(diào)整單元數(shù)據(jù)小于60轉(zhuǎn)SET4循環(huán)</p><p>  LCALL CLR0 ;調(diào)整單元數(shù)據(jù)大于或等于60時清0</p><p>  CLR C ;清進(jìn)

48、位標(biāo)志</p><p>  AJMP SET4 ;跳轉(zhuǎn)到SET4循環(huán)</p><p>  CLOSEDIS:SETB ET0 ;省電(LED不顯示)狀態(tài)。開T0中斷</p><p>  SETB TR0 ;開啟T0定時器(開時鐘)</p>&l

49、t;p>  CLOSE: JB P3.3,CLOSE ;無按鍵按下,等待。</p><p>  LCALL DISPLAY ;有鍵按下,調(diào)顯示子程序延時削抖</p><p>  JB P3.3,CLOSE ;是干擾返回CLOSE等待</p><p>  WAITH:

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

51、SET5 ;等待鍵釋放</p><p>  SETB 01H ;小時調(diào)整標(biāo)志置1</p><p>  SET6: JB P3.3,SET7 ;等待按鍵按下</p><p>  LCALL DL05S ;有鍵按下延時0.5秒</p>

52、;<p>  JNB P3.3,SETOUT ;按下時間大于0.5秒退出時間調(diào)整</p><p>  MOV R0,#79H ;按下時間小于0.5秒加1小時操作</p><p>  LCALL ADD1 ;調(diào)加1子程序</p><p>  

53、MOV A,R3 ;</p><p>  CLR C ;</p><p>  CJNE A,#24H,HOUU ;計時單元數(shù)據(jù)與24比較</p><p>  HOUU: JC SET6 小于24轉(zhuǎn)SET6循環(huán)</p>&l

54、t;p>  LCALL CLR0 ;大于或等于24時清0操作</p><p>  AJMP SET6 ; 跳轉(zhuǎn)到SET6循環(huán)</p><p>  SETOUT: JNB P3.3,SETOUT1 ;調(diào)時退出程序。等待鍵釋放</p><p>  LCA

55、LL DISPLAY ;延時削抖</p><p>  JNB P3.3,SETOUT ;是抖動,返回SETOUT再等待</p><p>  CLR 01H ;清調(diào)小時標(biāo)志</p><p>  CLR 00H

56、 ;清調(diào)分標(biāo)志</p><p>  CLR 02H ;清閃爍標(biāo)志</p><p>  CLR TR1 ;關(guān)閉定時器T1</p><p>  CLR ET1 ;關(guān)定時器T1中斷</p>

57、<p>  SETB TR0 ;開啟定時器T0</p><p>  SETB ET0 ;開定時器T0中斷(計時開始)</p><p>  LJMP START1 ;跳回主程序</p><p>  SET1: L

58、CALL DISPLAY ;鍵釋放等待時調(diào)用顯示程序(調(diào)分)</p><p>  AJMP SET2 ;防止鍵按下時無時鐘顯示</p><p>  SET3: LCALL DISPLAY ;等待調(diào)分按鍵時時鐘顯示用</p><p>  AJMP SET4</p>

59、<p>  SET5: LCALL DISPLAY ;鍵釋放等待時調(diào)用顯示程序(調(diào)小時)</p><p>  AJMP SETHH1 ;防止鍵按下時無時鐘顯示</p><p>  SET7: LCALL DISPLAY ;等待調(diào)小時按鍵時時鐘顯示用</p><p>  

60、AJMP SET6</p><p>  SETOUT1: LCALL DISPLAY ;退出時鐘調(diào)整時鍵釋放等待</p><p>  AJMP SETOUT ;防止鍵按下時無時鐘顯示</p><p><b>  延時程序:</b></p><p>  1MS延

61、時程序,LED顯示程序用</p><p>  DL1MS: MOV R6,#14H</p><p>  DL1: MOV R7,#19H</p><p>  DL2: DJNZ R7,DL2</p><p>  DJNZ R6,DL1</p><p><b>  RET</b>&l

62、t;/p><p>  20MS延時程序,采用調(diào)用顯示子程序以改善LED的顯示閃爍現(xiàn)象</p><p>  DS20MS: ACALL DISPLAY</p><p>  ACALL DISPLAY</p><p>  ACALL DISPLAY</p><p><b>  RET</b><

63、;/p><p>  4.2程序流程圖 </p><p><b>  主程序</b></p><p>  主程序主要是循環(huán)調(diào)用顯示子程序及鍵盤掃描功能設(shè)置子程序,其流程圖如圖4.1所示。</p><p>  圖4.1 主程序框圖</p><p><b

64、>  定時中斷子程序</b></p><p>  時間計時使用定時器t0完成,中斷定時周期設(shè)為50ms。中斷進(jìn)入后,判斷時鐘計時累計中斷到20次(即1s)時,對秒計數(shù)單元進(jìn)行加1操作。計時單元的最大值為23時59分59秒。在計數(shù)單元中采用十進(jìn)制BCD碼計數(shù),滿60進(jìn)位。T0中斷服務(wù)程序流程圖如圖4.2所示。</p><p>  圖4.2 中斷服務(wù)程序流程圖</p&g

65、t;<p>  T1中斷服務(wù)程序用于指示調(diào)整單元數(shù)字的亮閃。在時間調(diào)整狀態(tài)下,每過0.3秒,將對應(yīng)單元的顯示數(shù)據(jù)換成“熄滅符”數(shù)據(jù)(#0AH)。這樣在調(diào)整時間時,對應(yīng)調(diào)整單元的顯示數(shù)據(jù)會間隔閃亮。T1中斷服務(wù)程序流程圖如圖4.3所示。</p><p>  圖4.3 中斷服務(wù)程序</p><p>  4.3偉福硬件仿真器簡介</p><p>  主機(jī)+P

66、OD(仿真頭)組合,通過更換POD,可以對各種CPU進(jìn)行仿真。</p><p>  對待不同的應(yīng)用場合,用戶往往會選擇不同的CPU,從而需要更換仿真器,偉福仿真軟件WINDOWS版本支持本公司多種仿真器。支持多類CPU仿真。仿真器則采用主機(jī)+POD組合,通過更換不同的POD,可對各種不同類型的單片機(jī)進(jìn)行仿真。為用戶提供了一種靈活的多CPU仿真系統(tǒng)。</p><p><b>  1

67、.雙平臺</b></p><p>  DOS版本,WINDOWS版本。其中WINDOWS版本功能強(qiáng)大。中文界面,英文界面可任選,用戶源程序的大小不再有任何限制,支持ASM,C,PLM語言混合編程,具有項目管理功能,為用戶的資源共享,課題重組提供強(qiáng)有力的手段。支持點(diǎn)屏顯示,用鼠標(biāo)左鍵</p><p>  點(diǎn)一下源程序中的某一變量,即可顯示該變量的數(shù)值。有豐富的窗口顯示方式,多方位

68、,動態(tài)地顯示仿真的各種過程,使用極為便利。本操作系統(tǒng)一經(jīng)推出,立即被廣大用戶所喜愛。</p><p><b>  2.雙工作模式</b></p><p>  1 軟件模擬仿真(不要仿真器也能模擬仿真)。</p><p><b>  2 硬件仿真。</b></p><p>  雙CPU結(jié)構(gòu),100%

69、不占用戶資源。</p><p>  全空間硬件斷點(diǎn),不受任何條件限制,支持地址、數(shù)據(jù)、外部信號、事件斷點(diǎn)、支持</p><p>  實時斷點(diǎn)計數(shù)、軟件運(yùn)行時間統(tǒng)計。</p><p><b>  3.雙集成環(huán)境</b></p><p>  編輯、編譯、下載、調(diào)試全部集中在一個環(huán)境下。</p><p>

70、;  飛利蒲公司的552.LPC764.DALLAS320,華邦438等51增強(qiáng)型CPU。為了跟上形勢,現(xiàn)在很多工程師需要面對和掌握不同和項目管理器、編輯器、編譯器。他們由不多種仿真器,多類CPU仿真全部集成在一個環(huán)境下??煞抡?1系列,196系列,PIC系列,同的廠家開發(fā),相互不兼容,使用不同的界面。學(xué)習(xí)使用都很吃力。偉福 WINDOWS調(diào)試軟件為您提供了一個全集成環(huán)境,統(tǒng)一的界面,包含一個項目管理器,一個功能強(qiáng)大的編輯器,匯編Mak

71、e、Build和調(diào)試工具并提供一個與第三方編譯器的接口。</p><p>  4.4仿真圖及結(jié)果分析</p><p>  單片機(jī)右上角紅色發(fā)光二極管秒燈,每閃爍一次表示時間走動一秒鐘;按鍵正下方黑色按鍵是設(shè)置燈,當(dāng)時間正常走動時此時燈亮,當(dāng)?shù)谝淮伟聪略O(shè)置鍵時,同時秒時熄滅,且分鐘的兩位數(shù)碼管出現(xiàn)閃爍,時間停止走動,進(jìn)入校時狀態(tài),表示此時可以進(jìn)行分鐘的調(diào)整,當(dāng)按一次加一鍵(調(diào)整鍵)可實現(xiàn)分鐘

72、的加一功能,分鐘以60分為極限,超出60分則返回數(shù)值0,從0再重新算起;如果再次按下設(shè)置鍵時,這時秒燈和設(shè)置燈仍舊保持熄滅和點(diǎn)亮狀態(tài),表示分鐘的數(shù)碼管停止閃爍,反過來表示小時的兩位數(shù)碼管則開始閃爍,此時可進(jìn)行小時的調(diào)整,按加1鍵可實現(xiàn)小時的加1功能,小時調(diào)整以24為上限,同樣超出24小時則從新回0;當(dāng)?shù)谌伟聪略O(shè)置鍵時,數(shù)碼管停止閃爍,設(shè)置燈熄滅,秒燈重新閃爍,時間以設(shè)定值計時。 </p><p>  圖4.4

73、偉福軟件模擬圖</p><p><b>  第五章 附錄程序</b></p><p><b>  ORG 0000H</b></p><p>  LJMP START</p><p><b>  ORG 0003H</b></p><p><b

74、>  RETI</b></p><p><b>  ORG 000BH</b></p><p>  LJMP INTT0</p><p><b>  ORG 0013H</b></p><p><b>  RETI</b></p><p

75、><b>  ORG 001BH</b></p><p>  LJMP INTT1</p><p><b>  ORG 0023H</b></p><p><b>  RETI</b></p><p><b>  ORG 002BH</b><

76、;/p><p><b>  RETI</b></p><p>  START:MOV R0, #70H</p><p>  MOV R7, #0BH</p><p>  MOV 20H, #00H</p><p>  CLEARDISP: MOV @R0, #00H</p>&l

77、t;p><b>  INC R0</b></p><p>  DJNZ R7,CLEARDISP</p><p>  MOV 7AH,#0AH</p><p>  MOV TMOD,#11H</p><p>  MOV TL0, #0B0H</p><p>  MOV TH0, #3CH&l

78、t;/p><p>  MOV TL1, #0B0H</p><p>  MOV TH1, #3CH</p><p><b>  SETB EA</b></p><p><b>  SETB ET0</b></p><p><b>  SETB TR0</b>

79、</p><p>  MOV R4,#14H</p><p>  START1:LCALL DISPLAY</p><p>  JNB P3.3,SETMM1</p><p>  SJMP START1</p><p>  SETMM1:LJMP SETMM</p><p>  INTT0:P

80、USH ACC</p><p><b>  PUSH PSW </b></p><p><b>  CLR ET0</b></p><p><b>  CLR TR0</b></p><p>  MOV A,#0B7H</p><p><b>

81、  ADD A,TL0</b></p><p><b>  MOV TL0,A</b></p><p>  MOV A,#3CH</p><p><b>  ADD A,TH0</b></p><p><b>  MOV TH0,A</b></p>&

82、lt;p><b>  SETB TR0</b></p><p>  DJNZ R4,OUTT0</p><p>  ADDSS:MOV R4,#14H</p><p>  MOV R0,#71H</p><p>  ACALL ADD1</p><p><b>  MOV A,R

83、3</b></p><p><b>  CLR C</b></p><p>  CJNE A,#60H,ADDMM</p><p>  ADDMM:JC OUTT0</p><p>  ACALL CLR0</p><p>  MOV R0,#77H</p><p

84、>  ACALL ADD1</p><p><b>  MOV A,R3</b></p><p><b>  CLR C</b></p><p>  CJNE A,#60H,ADDHH</p><p>  ADDHH:JC OUTT0</p><p>  ACALL C

85、LR0</p><p>  MOV R0,#79H</p><p>  ACALL ADD1</p><p><b>  MOV A,R3</b></p><p><b>  CLR C</b></p><p>  CJNE A,#24H,HOUR</p>&l

86、t;p>  HOUR:JC OUTT0</p><p>  ACALL CLR0</p><p>  OUTT0:MOV 72H,76H</p><p>  MOV 73H,77H</p><p>  MOV 74H,78H</p><p>  MOV 75H,79H</p><p&g

87、t;<b>  POP PSW</b></p><p><b>  POP ACC</b></p><p><b>  SETB ET0</b></p><p><b>  RETI</b></p><p>  INTT1: PUSH ACC</p

88、><p><b>  PUSH PSW</b></p><p>  MOV TL1, #0B0H</p><p>  MOV TH1, #3CH</p><p>  DJNZ R2,INTT1OUT</p><p>  MOV R2,#06H</p><p>&

89、lt;b>  CPL 02H</b></p><p>  JB 02H,FLASH1</p><p>  MOV 72H,76H</p><p>  MOV 73H,77H</p><p>  MOV 74H,78H</p><p>  MOV 75H,79H</p><

90、;p>  INTT1OUT: POP PSW</p><p><b>  POP ACC</b></p><p><b>  RETI</b></p><p>  FLASH1: JB 01H,FLASH2</p><p>  MOV 72H,7AH</p><

91、;p>  MOV 73H,7AH</p><p>  MOV 74H,78H</p><p>  MOV 75H,79H</p><p>  AJMP INTT1OUT</p><p>  FLASH2: MOV 72H,76H</p><p>  MOV 73H,77H</p>

92、<p>  MOV 74H,7AH</p><p>  MOV 75H,7AH</p><p>  AJMP INTT1OUT</p><p>  ADD1:MOV A,@R0</p><p><b>  DEC R0</b></p><p><b>  SWAP A<

93、;/b></p><p><b>  ORL A,@R0</b></p><p>  ADD A,#01H</p><p><b>  DA A</b></p><p><b>  MOV R3,A</b></p><p>  ANL A,#0FH

94、</p><p><b>  MOV @R0,A</b></p><p><b>  MOV A,R3</b></p><p><b>  INC R0</b></p><p><b>  SWAP A</b></p><p>  

95、ANL A,#0FH</p><p><b>  MOV @R0,A</b></p><p><b>  RET</b></p><p>  CLR0:CLR A</p><p><b>  MOV @R0,A</b></p><p><b>

96、  DEC R0</b></p><p><b>  MOV @R0,A</b></p><p><b>  RET</b></p><p>  SETMM: CLR ET0</p><p><b>  CLR TR0</b></p><p>

97、;  LCALL DL1S</p><p>  JB P3.3,CLOSEDIS</p><p>  MOV R2,#06H</p><p><b>  SETB ET1</b></p><p><b>  SETB TR1</b></p><p>  SET2: JNB P

98、3.3,SET1</p><p><b>  SETB 00H</b></p><p>  SET4: JB P3.3,SET3</p><p>  LCALL DL05S</p><p>  JNB P3.3,SETHH</p><p>  MOV R0,#77H</p><

99、;p>  LCALL ADD1</p><p><b>  MOV A,R3</b></p><p><b>  CLR C</b></p><p>  CJNE A,#60H,HHH</p><p>  HHH:JC SET4</p><p>  LCALL CLR0

100、</p><p><b>  CLR C</b></p><p><b>  AJMP SET4</b></p><p>  CLOSEDIS: SETB ET0</p><p><b>  SETB TR0</b></p><p>  CLOSE:JB

101、 P3.3,CLOSE</p><p>  LCALL DISPLAY</p><p>  JB P3.3,CLOSE</p><p>  WAITH: JNB P3.3,WAITH</p><p>  LJMP START1</p><p>  SETHH: CLR 00H</p><p&g

102、t;  SETHH1:JNB P3.3,SET5</p><p><b>  SETB 01H</b></p><p>  SET6: JB P3.3,SET7</p><p>  LCALL DL05S</p><p>  JNB P3.3,SETOUT</p><p>  MOV R0,#

103、79H</p><p>  LCALL ADD1</p><p><b>  MOV A,R3</b></p><p><b>  CLR C</b></p><p>  CJNE A,#24H,HOUU</p><p>  HOUU:JC SET6</p>&

104、lt;p>  LCALL CLR0</p><p><b>  AJMP SET6</b></p><p>  SETOUT: JNB P3.3,SETOUT1</p><p>  LCALL DISPLAY</p><p>  JNB P3.3,SETOUT</p><p><b&

105、gt;  CLR 01H</b></p><p><b>  CLR 00H</b></p><p><b>  CLR 02H</b></p><p><b>  CLR TR1</b></p><p><b>  CLR ET1</b>&l

106、t;/p><p><b>  SETB TR0</b></p><p><b>  SETB ET0</b></p><p>  LJMP START1</p><p>  SET1:LCALL DISPLAY</p><p>  AJMP SET2</p>

107、<p>  SET3:LCALL DISPLAY</p><p>  AJMP SET4</p><p>  SET5:LCALL DISPLAY</p><p>  AJMP SETHH1</p><p>  SET7:LCALL DISPLAY</p><p>  AJMP SET6&l

108、t;/p><p>  SETOUT1:LCALL DISPLAY</p><p>  AJMP SETOUT</p><p>  DISPLAY:MOV DPTR,#TAB</p><p><b>  SETB P1.0</b></p><p><b>  MOV A,70H</

109、b></p><p>  MOVC A,@A+DPTR</p><p>  ANL A,#7FH ;</p><p><b>  MOV P0,A</b></p><p>  LCALL DL1MS</p><p><b>  CLR P1.0</b></p>

110、;<p><b>  SETB P1.1</b></p><p><b>  MOV A,71H</b></p><p>  MOVC A,@A+DPTR</p><p>  ANL A,#7FH ;</p><p><b>  MOV P0,A</b></

111、p><p>  LCALL DL1MS</p><p><b>  CLR P1.1</b></p><p><b>  SETB P1.2</b></p><p><b>  MOV A,72H</b></p><p>  MOVC A,@A+DPTR&l

112、t;/p><p>  ANL A,#7FH ;</p><p><b>  MOV P0,A</b></p><p>  LCALL DL1MS</p><p><b>  CLR P1.2</b></p><p><b>  SETB P1.3</b>&l

113、t;/p><p><b>  MOV A,73H</b></p><p>  MOVC A,@A+DPTR</p><p>  ANL A,#7FH ;</p><p><b>  MOV P0,A</b></p><p>  LCALL DL1MS</p><

114、;p><b>  CLR P1.3</b></p><p><b>  SETB P1.4</b></p><p><b>  MOV A,74H</b></p><p>  MOVC A,@A+DPTR</p><p>  ANL A,#7FH ;</p>

115、<p><b>  MOV P0,A</b></p><p>  LCALL DL1MS</p><p><b>  CLR P1.4</b></p><p><b>  SETB P1.5</b></p><p><b>  MOV A,75H</

116、b></p><p>  MOVC A,@A+DPTR</p><p>  ANL A,#7FH ;</p><p><b>  MOV P0,A</b></p><p>  LCALL DL1MS</p><p><b>  CLR P1.5</b></p>

117、;<p>  MOV P0,#00H</p><p><b>  RET</b></p><p>  TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H</p><p><b>  ;</b></p><p>  DL1MS:MOV R

118、6,#14H</p><p>  DL1:MOV R7,#19H</p><p>  DL2:DJNZ R7,DL2</p><p>  DJNZ R6,DL1</p><p><b>  RET</b></p><p>  DS20MS:ACALL DISPLAY</p><

119、p>  ACALL DISPLAY</p><p>  ACALL DISPLAY</p><p><b>  RET</b></p><p>  DL1S:LCALL DL05S</p><p>  LCALL DL05S</p><p><b>  RET</b>&

120、lt;/p><p>  DL05S:MOV R3,#20H</p><p>  DL05S1:LCALL DISPLAY</p><p>  DJNZ R3,DL05S1</p><p><b>  RET</b></p><p><b>  END</b></p>

121、<p><b>  第六章 結(jié)束語</b></p><p>  開始的時候由于沒有經(jīng)驗,不知如何下手,所以就去圖書館找了一些書看,盡管有許多設(shè)計方案,可是總覺得自己還有許多的東西弄不太清楚,于是就請教同學(xué)。他嘗做一些設(shè)計,有了一些經(jīng)驗。經(jīng)過他的努解釋分析之后決定用查表,中斷的方法來做這樣可以降低一些硬件的難度,初次設(shè)計應(yīng)切合自己的水平。我以為這些做好了,構(gòu)思也有了寫程序應(yīng)該是相對

122、容易的。誰知道,寫起程序來才想到中斷程序不會寫,我真的感到很難,那是真的有點(diǎn)想放棄,于是就去請教了老師,老師幫忙分析了一下。自己有查閱了一些資料。終于明白了中斷程序是怎么寫的。</p><p>  于是在自己的努力下,程序很快就寫好了,功能上基本達(dá)標(biāo):時鐘的顯示,秒表顯示,定時功能,調(diào)時功能。時鐘顯示功能,精確度完全可以滿足日常生活顯示時間的需要;調(diào)時功能,方便快捷;硬件設(shè)施合乎要求,軟件設(shè)計可以配合硬件實現(xiàn)要求

123、功能。</p><p>  這次是我第一個設(shè)計器件,盡管經(jīng)李了不少艱辛,但給我積累了一點(diǎn)設(shè)計的經(jīng)驗,最后也以有點(diǎn)小小的成就感。后面的路還很長,我還得努力。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 丁向榮、賈平?!秵纹瑱C(jī)應(yīng)用系統(tǒng)與開發(fā)技術(shù)》.清華大學(xué)出版社,2009</p><p>  [

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論