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

下載本文檔

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

文檔簡介

1、<p>  本科畢業(yè)設(shè)計(論文)</p><p><b> ?。?0 屆)</b></p><p>  基于AT89C51單片機數(shù)字鐘</p><p><b>  目錄</b></p><p><b>  摘要III</b></p><p>

2、;  AbstractIV</p><p><b>  第一章 緒論1</b></p><p>  1.1 研究目的及意義1</p><p>  1.2 國內(nèi)外研究的現(xiàn)狀1</p><p>  1.3 數(shù)字鐘2</p><p>  第二章 硬件簡介3</p>&

3、lt;p>  2.1 單片機介紹3</p><p>  2.1.1 單片機特點3</p><p>  2.1.2 AT89C51介紹3</p><p>  2.1.3 89C51各引腳功能4</p><p>  2.1.4 計數(shù)器/定時器原理5</p><p>  2.2 LED顯示器6&

4、lt;/p><p>  2.3 蜂鳴器7</p><p><b>  2.4 鍵盤7</b></p><p>  第三章 硬件設(shè)計8</p><p>  3.1 設(shè)計介紹8</p><p>  3.2 硬件電路9</p><p>  3.2.1 時鐘振蕩電

5、路設(shè)計9</p><p>  3.2.2 復(fù)位電路設(shè)計11</p><p>  3.2.3 鍵盤電路設(shè)計12</p><p>  3.2.4 蜂鳴器電路設(shè)計12</p><p>  3.2.5 顯示電路設(shè)計13</p><p>  3.2.6 譯碼電路14</p><p>

6、  第四章 軟件程序15</p><p>  4.1 程序流程圖15</p><p>  4.2 匯編語言16</p><p><b>  參考文獻(xiàn)17</b></p><p><b>  附錄18</b></p><p>  附錄1 數(shù)字鐘硬件電路圖18

7、</p><p>  附錄2 程序19</p><p><b>  致謝30</b></p><p>  基于AT89C51單片機數(shù)字鐘</p><p><b>  摘要</b></p><p>  隨著現(xiàn)代生活節(jié)奏的逐漸加快,人們對時間的運用和把握顯得越發(fā)的重要。能更

8、為高效的解決事情會使我們在競爭激烈的當(dāng)今社會中取得先機。</p><p>  本文研究的重點在于通過MCS-51單片機控制的數(shù)字鐘。對AT89C51單片機為主的控制器,整個單片機系統(tǒng),LED顯示,鍵盤,蜂鳴器等附件進(jìn)行深入的學(xué)習(xí),研究后,再對各個硬件模塊分析,調(diào)試,安裝,最后編寫一段相關(guān)的匯編語言程序輸入單片機中,使單片機控制整個數(shù)字鐘運作,完成整個設(shè)計。</p><p>  設(shè)計出來的電

9、子鐘能夠?qū)崿F(xiàn)的功能為時間的修改,顯示當(dāng)前時間,鬧鈴,通過鍵盤來實現(xiàn)對時間的調(diào)校和鬧鈴的設(shè)置。將多種功能集于一身,是單片機的主要優(yōu)勢之一,除此外,它相對的運算速度和精確度都比較高,能夠滿足我們對時鐘的一切要求。本系統(tǒng)中大部分功能都是由程序控制完成,硬件電路的復(fù)雜性降低了很多。采用此種方法來實現(xiàn)數(shù)字鐘,也符合當(dāng)代數(shù)字鐘設(shè)計的主流趨勢。</p><p>  關(guān)鍵字:數(shù)字鐘 ;AT89C51單片機 ;LED顯示 ;鬧鈴&

10、lt;/p><p>  AT89C51 Microcontroller Based Digital Clock</p><p><b>  Abstract</b></p><p>  Nowadays the tempo of our life is becoming faster and faster. It’s

11、important to us to be good at using time. If we can make things more efficient solution to our society in today's highly competitive head start.</p><p>  The focus of this paper is the digital clock whic

12、h is controlled by MCS-51.The by AT89C51 microcontroller-based controller is the microcontroller in the system, LED display, keyboard, buzzer-depth look at other accessories for study, research, and then analysis of the

13、 various hardware modules, debugging, installation, and finally write a related to enter the microcontroller assembly language program to complete the entire design.</p><p>  The time clock designed by

14、us can achieve such as change, display, alarm, through the keyboard to adjust and set the alarm time. One of the main advantages of microcontroller is there are a variety of functions rolled into one. Besides , it i

15、s relatively the speed and high accuracy. We can meet all the requirements on the clock. Most of the functionality of the system is procedures complete control, do reduce the complexity of the circuit a lot. So the

16、use of such methods to achieve this digital</p><p>  Keywords :digital clock ,AT89C51 microcontroller ,LED display ,alarm</p><p><b>  第一章 緒論</b></p><p>  1.1 研究目的及意義&l

17、t;/p><p>  數(shù)字鐘的設(shè)計方法是多種多樣的,用小規(guī)模集成電路組成,利用電子時鐘芯片DS1308等配上顯示電路,還有就是利用單片機通過程序控制。</p><p>  基于單片機的數(shù)字鐘設(shè)計,看似是對數(shù)字鐘來進(jìn)行制作,實際上主角確是單片機,整篇論文也是圍繞著單片機在數(shù)字鐘系統(tǒng)中的運用來進(jìn)行研究的。如今的電子產(chǎn)品都逐漸在向著智能化,輕便,簡潔等方面發(fā)展。單片機由于其內(nèi)部集成度高,體積小,高功

18、率,高性能等特點集于一身,使得它將會在以后成為各類電子產(chǎn)品主要的控制工具。伴隨著這種趨勢的發(fā)展,對單片機更深入的研究和學(xué)習(xí)都顯得很有必要了。通過基于單片機數(shù)字鐘的設(shè)計能使我們對51型單片機有更進(jìn)一步的了解,可以從中找到許多單片機的特性和優(yōu)點。</p><p>  單片機在各類電子產(chǎn)品中都有被使用,從航空航天事業(yè)到汽車上各種儀表的控制,從計算機的數(shù)據(jù)傳輸?shù)焦I(yè)自動化過程的控制和數(shù)據(jù)處理,以及生活中廣泛使用的各種儲蓄

19、卡、銀行取款機等,這些都離不開單片機工作。</p><p>  單片機的使用將會讓我們的生活更加的多姿多彩并且更加的智能化。所以,現(xiàn)在對單片機的研究和學(xué)習(xí)都是很有意義的,本次論文的宗旨也是希望通過電子鐘的設(shè)計能對單片機有更為直觀的認(rèn)識和體會,最終從實踐中鞏固理論知識。</p><p>  1.2 國內(nèi)外研究的現(xiàn)狀</p><p>  1976年INTEL公司研制出

20、MCS-48系列8位單片機,這標(biāo)志著第一臺單片機的問世。在20世紀(jì)80年代初期,Intel公司在原有MCS-48系列單片機的基礎(chǔ)上,推出了MCS-51系列8位高檔單片機。MCS-51系列單片機無論是片內(nèi)I/O口功能,RAM容量和系統(tǒng)擴展方面都有了很大的提高。</p><p>  隨著單片機的發(fā)展趨勢,現(xiàn)在研究的基于單片機的數(shù)字鐘也擺脫了原有的功能單一,體積龐大,走時不精確的缺點,逐漸變得低功耗,功能更為完善,體積

21、變小,成本也在降低?,F(xiàn)在,所見到的數(shù)字鐘已經(jīng)能夠顯示更多的信息,也增添了許多新的功用,如:電子的日歷,電子的鬧鐘,溫度計,濕度計等。這些都和單片機的升級是分不開的。</p><p><b>  1.3 數(shù)字鐘</b></p><p>  數(shù)字鐘是一種用數(shù)字電路技術(shù)實現(xiàn)“時”、“分”、“秒”計時的裝置,一般由振蕩器、分頻器、譯碼器等幾部分組成。其中, 振蕩器和分頻器組

22、成標(biāo)準(zhǔn)的秒信號發(fā)生器, 由不同進(jìn)制的計數(shù)器、譯碼器和顯示器組成計時系統(tǒng)。把秒信號送入計數(shù)器進(jìn)行計數(shù), 把累積的結(jié)果以“時”、“分”、“秒”的數(shù)字顯示出來?!靶r”的顯示由二十四進(jìn)制計數(shù)器、譯碼器和顯示器構(gòu)成,“分”、“秒”的顯示分別由六十進(jìn)制計數(shù)器、譯碼器和顯示器組成[1]。高精度的計時工具大多數(shù)都使用了石英晶體振蕩器產(chǎn)生原始的時鐘頻率,例如:電子鐘、石英鐘、石英表都采用了石英技術(shù),因此走時精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)試,數(shù)

23、字式電子鐘用集成電路計時時,譯碼代替機械式傳動,用LED顯示器代替指針顯示進(jìn)而顯示時間,減小了計時誤差 [2]。</p><p>  在進(jìn)入電子時代后,相對于機械時鐘,更為直觀,準(zhǔn)確的電子鐘得到了廣大人群的青睞,無數(shù)大小不一,外觀不同的電子式時鐘充斥著大街小巷,這給人們的生活帶來了不小的便利。由于數(shù)字集成電路和石英晶體振蕩器的使用的日趨成熟與廣泛,使得數(shù)字鐘無論從使用壽命還是從精確等角度都將超過老式的時鐘?,F(xiàn)如今

24、,電子鐘的使用率是越來越高,它給人們帶來的便利也越來越多,使人們的生活也越來越離不開它了。</p><p><b>  第二章 硬件簡介</b></p><p>  2.1 單片機介紹</p><p>  2.1.1 單片機特點</p><p>  單片機具有體積小,價格便宜,可靠性高等特點。它把計算機的基本部件微

25、型化,并集成到一塊芯片上,通常片內(nèi)都含有中央處理器部件(CPU),數(shù)據(jù)存儲器(RAM),程序存儲器(ROM、EPROM、FLASH ROM)、還有定時器/計數(shù)器,總線如RS-232串行通信口、系統(tǒng)時鐘、中斷控制、系統(tǒng)總線等[3]。但在功能性方面比家用機要弱了不少,相對的價格也低廉了不少,適合大量的生產(chǎn)和使用。</p><p>  單片機從采用PMOS工藝逐漸發(fā)展到現(xiàn)在的CMOS半導(dǎo)體工藝技術(shù)。慢慢的提高了其集成度

26、,使其功耗大大的降低,工作電壓的范圍也在隨之加寬。</p><p>  伴隨著電子時代的到來,我們身邊被各種電子產(chǎn)品充斥著,琳瑯滿目的電子儀器、儀表,洗衣機、電視機等,在其中都多少的加入了單片機的成分,除此外在當(dāng)今的社會對電子產(chǎn)品的要求逐漸向小,快,靈發(fā)展,由于其價格低廉,體積小等特點,更加推動了單片機將會在今后大有可為。</p><p>  單片機系統(tǒng)結(jié)構(gòu)簡單,使用方便,實現(xiàn)功能模塊化,

27、更主要的是其更適合嵌入式系統(tǒng),所謂的嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),并且軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計算機系統(tǒng)[4]。單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。這些優(yōu)勢都使單片機的使用更加廣泛。</p><p>  2.1.2 AT89C51介紹</p><p>  AT89C51如圖2.1所示,是一種帶4K字

28、節(jié)閃存可編程,可擦除只讀存儲器的低電壓、高性能CMOS 8位微處理器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器。除此外,它還是一款單片封裝的微控制器,適合于許多要求高集成度、低成本的場合。</p><p>

29、;  圖2.1 AT89C51</p><p>  2.1.3 89C51各引腳功能</p><p>  VCC:用于電壓的提供</p><p><b>  GND:用于接地</b></p><p>  P0口:P0口為一個8位漏級開路雙向I/O口,每個引腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時,被定義為高

30、阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗時,P0輸出原碼,此時P0外部必須被拉高。 </p><p>  P1口:P1口是個帶內(nèi)部上拉電阻的8位雙向I/O口,P1口的緩沖器能夠接收輸出4個TTL門電流。當(dāng)P1口的管腳被寫入“1”,內(nèi)部上拉會為高,可被用作為輸入,當(dāng)P1口被外部下拉為低電平時,輸出電流,由于內(nèi)

31、部上拉的緣故。在FLASH編程和校驗時,P1口將會作為第八位的地址來接收。</p><p>  P2口:P2口為一個內(nèi)部上拉電阻的8位準(zhǔn)雙向口,P2口的緩沖器能接收,輸出4個TTL門電流,當(dāng)P2口被寫入“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并作為輸入時,P2口的管腳會被外部拉低,將輸出電流。由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出

32、地址“1”時,它將會利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。</p><p>  P3口:P3口是一個帶有內(nèi)部上拉電阻的8為準(zhǔn)雙向I/O口,且是個雙功能口。當(dāng)作為第一功能口使用時,工作原理和P1,P2口差不多,但第二輸出功能線保持為高電平,使與非門N3對鎖存器輸出(Q端)暢通。 </p><p>  表2.1 P3口作為AT89C51的第

33、二功能</p><p>  RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。</p><p>  XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。</p><p>  XTAL2:來自反向振蕩器的輸出。</p><p>  運算器:實現(xiàn)4位、8位、16位數(shù)據(jù)完成算術(shù)和邏輯運算。</p>&

34、lt;p>  累加器:8位的寄存器,其中精彩存放一個操作數(shù)、中間結(jié)果和運算結(jié)果。</p><p>  控制器:計算機的控制指揮部件,使計算機的每個部件能協(xié)調(diào)工作。</p><p>  寄存器:用于存放程序和數(shù)據(jù)。</p><p>  中央處理器:MCS-51的CPU能處理8位二進(jìn)制數(shù)或代碼。</p><p>  定時器/計數(shù)器:8051

35、有2個16位的定時器/計數(shù)器,用于實現(xiàn)定時或計數(shù)的功能,并以其定時或計數(shù)的結(jié)果對計算機進(jìn)行控制。定時的時候靠內(nèi)部分頻時鐘頻率計數(shù)實現(xiàn),做計數(shù)器時,對P3.4(T0)或P3.5(T1)端口的低電平脈沖計數(shù)。</p><p>  中斷:MCS-51中共有5個中斷源,其中外中斷2個,定時中斷2個,串行中斷1個,全部中斷分為高級和低級共兩個優(yōu)先級別。</p><p>  2.1.4 計數(shù)器/定時

36、器原理</p><p>  在51單片機中有2個16位的定時器/計數(shù)器分別是T0和T1它由加法計數(shù)器、方式寄存器TMOD、控制寄存器TCON等組成。方式寄存器用于設(shè)定定時計數(shù)器T0和T1的工作方式,控制寄存器用于對定時計數(shù)器啟動、停止進(jìn)行控制。每個定時計數(shù)器既可以對系統(tǒng)時鐘計數(shù)實現(xiàn)定時,也可以外部信號計數(shù)實現(xiàn)計數(shù)功能再通過編程設(shè)定來實現(xiàn)。每個定時計數(shù)器都有多種工作方式,其中T0有四種工作方式,T1有三種工作方式,

37、T2有三種工作方式。通過編程可設(shè)定工作于某種方式。四種工作方式為:13位定時\計數(shù)器、16位定時\計數(shù)器、8位自動重置定時\計數(shù)器、兩個8位定時\計數(shù)器(只有T0有)每一個定時計數(shù)器定時計數(shù)時間到時產(chǎn)生溢出,使相應(yīng)的溢出位置位,溢出可通過查詢或中斷方式處理。</p><p>  2.2 LED顯示器</p><p>  本次設(shè)計的數(shù)字鐘將采用7段LED顯示。它的內(nèi)部由7個條形發(fā)光二極管和

38、一個圓點發(fā)光二極管組成,可以顯示從0-9等10個數(shù)字。</p><p>  LED即發(fā)光二極管,英文全稱為Light Emitting Diode。單獨的發(fā)光二極管便是一個最簡單的LED,7段數(shù)碼管是由若干個發(fā)光二極管組成的顯示字段的顯示器件,一般簡稱為數(shù)碼管。</p><p>  在7段LED中通常分為靜態(tài)顯示原理和動態(tài)顯示原理,靜態(tài)顯示是指當(dāng)數(shù)碼管顯示某個字符的時候,相應(yīng)的字段的發(fā)光二

39、極管恒定的導(dǎo)通或截至,燈的亮、滅不變,在這種情況下,多個LED是同時顯示的。</p><p>  動態(tài)顯示原理是指逐個循環(huán)點亮各位顯示器,雖然在任一時刻只有一位顯示器被點亮,但由于時間間隔較短,且人眼具有視覺暫留效應(yīng),因此看起來與全部顯示器一次持續(xù)點亮完全一樣。為了實現(xiàn)LED動態(tài)掃描,除了要給顯示器提供段(字形代碼)的輸入,</p><p>  還要對顯示器加位選擇控制,即段選和位選[5]

40、。</p><p>  程序中采用掃描顯示的方式,即在同一時刻,只使用到一個LED顯示數(shù)據(jù)。通過為共陰極LED或是共陽極LED的公共引腳引入低電平或高電平,從而選擇某個LED顯示。如此循環(huán),使每個LED顯示預(yù)先設(shè)定好的應(yīng)顯示的數(shù)據(jù),并進(jìn)行適當(dāng)?shù)难訒r,形成視覺暫留效果。這樣便可以達(dá)到動態(tài)顯示的目的。 </p><p>  LED數(shù)碼有共陽極如圖2.2所示,和共陰極如圖2.3所示兩種,當(dāng)把這

41、些LED發(fā)光二極管的正極接到一起(拼成一個 “8”字的形狀再加上一個小數(shù)點“dp”)而作為一個引腳,就叫共陽的,相反的,負(fù)極接到一起,就叫共陰的。當(dāng)應(yīng)用時,這個引腳就分別的接VCC和GND。把多個這樣的數(shù)碼管字裝在一起就成了多位的數(shù)碼管了。</p><p>  本次設(shè)計采用的是6位7段LED共陽數(shù)碼管,通過動態(tài)顯示來完成數(shù)字鐘系統(tǒng)的顯示模塊,通常的7段顯示器的內(nèi)部有8個發(fā)光二極管,在應(yīng)用時將公共接地線GND上,當(dāng)

42、某一字段發(fā)光二極管的陽極為低電平時,相應(yīng)字段就點亮,當(dāng)某一字段的陽極為高電平時就會熄滅。通過軟件編程的方式來控制發(fā)光二極管陽極的電平狀況,控制數(shù)碼管的相應(yīng)字段的亮和滅。</p><p><b>  2.3 蜂鳴器</b></p><p>  蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,被廣泛的用于打印機、報警器、定時器等產(chǎn)品中。蜂鳴器分為有源蜂鳴器和無源蜂

43、鳴器,有源蜂鳴器直接接</p><p>  上額定電源就可連續(xù)發(fā)聲,而無源蜂鳴器則和電磁揚聲器一樣,需要接在音頻輸出電路中才能發(fā)聲。</p><p>  蜂鳴器的工作電流一般比較大,導(dǎo)致單片機的I/O 口是無法直接驅(qū)動的,所以要利用放大電路來驅(qū)動,一般使用三極管來放大電流就可以了。此設(shè)計采用的是有源蜂鳴器,這樣可以簡化軟件的設(shè)計,只要將其的倆個引腳接上工作電壓便可發(fā)聲,聲音的頻譜范圍在幾十

44、到幾千HZ。蜂鳴器接著P1.7的引腳上,該腳接上上拉電阻,并由三極管作放大,當(dāng)設(shè)定的時間到達(dá)時P1.7給出高電平使三極管導(dǎo)通,蜂鳴器通電后就發(fā)出有節(jié)奏的提示音,未到達(dá)時間,P1.7給出低電平,蜂鳴器不發(fā)音[6]。</p><p><b>  2.4 鍵盤 </b></p><p>  設(shè)計中能采取兩種鍵盤方式,一種是用采用矩陣式的鍵盤,在矩陣式鍵盤中,每條水平線和垂

45、直線在交叉處不直接連通,而是通過一個按鍵加以連接,在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是合理的。</p><p>  另一種方式采用獨立式鍵盤。獨立式按鍵是直接用I/O口線構(gòu)成的單個按鍵電路,其特點是每個按鍵單獨占用一根I/O口線,每個按鍵的工作不會影響其它I/O口線的狀態(tài)。但當(dāng)所需按鍵數(shù)量多,會占用過多的I/O口線。本次設(shè)計因為所用到的鍵的數(shù)量不多,只需要用到5個按鍵,所以采用第二種獨立式的鍵盤。</

46、p><p><b>  第三章 硬件設(shè)計</b></p><p><b>  3.1 設(shè)計介紹</b></p><p>  本次設(shè)計的數(shù)字鐘如圖3.1所示,是以AT89C51為主要控制單元,在硬件電路采用的是P0口作為6位LED數(shù)碼管的驅(qū)動接口,這是由于P0口輸出驅(qū)動電路工作處于開漏狀態(tài),它的驅(qū)動能力很強,并接入芯片74L

47、S470來驅(qū)動數(shù)碼管的段碼,用三極管PNP來驅(qū)動數(shù)碼管的位碼,所以只需要外接上上拉電阻便能把LED數(shù)碼管點亮。在6位LED數(shù)碼管顯示時,6個LED顯示器共用一個8位的I/O口,6位LED數(shù)碼管的位選線分別由相應(yīng)的P2.0~P2.5來控制,而將其相應(yīng)的段選線并聯(lián)在一起,由一個8位的I/O口控制。</p><p>  圖3.1 硬件連接圖</p><p>  時鐘振蕩電路接在XTAL1和XT

48、AL2上,這兩個引腳為反向放大器的輸入和輸出。這種反向放大器可以連接大片的內(nèi)部振蕩器,除此外,還能連接石英振蕩器和陶瓷振蕩器,不能接外部時鐘源驅(qū)動。分頻器接收到晶體振蕩器產(chǎn)生的脈沖信號送到后,分頻器將振蕩器輸出的脈沖信號分成每秒鐘為一次(1HZ)的方波作為秒脈沖,秒脈沖信號被送入計數(shù)器來進(jìn)行計數(shù),并把累計的結(jié)果通過74LS47譯碼器譯碼為十進(jìn)制數(shù)字并且分別以 “時鐘”、“分鐘”、“秒鐘”顯示到7段數(shù)碼管上。 “秒鐘”位和“分鐘”位的計數(shù)

49、均由兩級計數(shù)器組成的六十進(jìn)制計數(shù)電路實現(xiàn)?!靶r”位的計數(shù)由兩級計數(shù)器組成的24進(jìn)制計數(shù)電路來實現(xiàn)。振蕩器是計時器的重要組成部分。它主要用來產(chǎn)生時間標(biāo)準(zhǔn)信號,經(jīng)分頻后得到秒時間脈沖。因此數(shù)字鐘的精度取決于石英晶體振蕩器。從數(shù)字鐘的精度考慮,晶振頻率越高,數(shù)字鐘的計時準(zhǔn)確度就愈高。 </p><p>  此電子鐘的時間以24小時為一個時間周期,顯示時、分、秒,有校時的功能,可以分別對小時和分鐘進(jìn)行校時,使其到標(biāo)準(zhǔn)時

50、間,可以設(shè)置鬧鈴,到達(dá)所設(shè)定的時間會通過蜂鳴器提醒。</p><p>  整個設(shè)計以AT89C51單片機為核心,配上其他外圍硬件電路,用匯編語言設(shè)計的程序來控制實現(xiàn)。設(shè)計將根據(jù)C51單片機的外圍接口的特點擴展相應(yīng)的硬件電路。本文主要介紹用單片機內(nèi)部的定時/計數(shù)器來實現(xiàn)電子時鐘的方法,本設(shè)計由單片機AT89C51芯片和LED數(shù)碼管為核心,輔以必要的電路,構(gòu)成了一個單片機電子時鐘。</p><p&

51、gt;  利用鍵盤對數(shù)字鐘進(jìn)行校時和鬧鐘的設(shè)定,在設(shè)計中有5個鍵盤分別是從S0~S4,這幾個按鍵是我們對整個數(shù)字鐘進(jìn)行設(shè)置的唯一途徑。它們各是用于鬧鐘設(shè)定,退出和進(jìn)入鬧鐘設(shè)定,鬧鐘小時部分,鬧鐘分鐘部分,時鐘的小時和分鐘部分。</p><p>  該電子時鐘由AT89C51,鍵盤,7段數(shù)碼管等構(gòu)成,采用晶振電路作為驅(qū)動電路,由延時程序和循環(huán)程序產(chǎn)生的1秒定時,達(dá)到時、分、秒的計時,60秒為1分鐘,60分鐘為1小時

52、,滿24小時為一天。</p><p>  本次設(shè)計的方案完全用軟件實現(xiàn)數(shù)字時鐘。原理為:在單片機內(nèi)部存儲器設(shè)三個字節(jié)分別存放時鐘的時、分、秒信息。利用定時器與軟件結(jié)合實現(xiàn)1秒定時中斷,每產(chǎn)生一次中斷,存儲器內(nèi)相應(yīng)的秒的值加1;若秒的值達(dá)到60,則將其清0,并將相應(yīng)的分字節(jié)值加1;若分值達(dá)到60,則清零分字節(jié),并將時字節(jié)值加1;若時值達(dá)到24,則將時字節(jié)清0。該方案具有硬件電路簡單的特點。但由于每次執(zhí)行程序時,定時

53、器都要重新賦初值,所以該時鐘精度不高。而且,由于是軟件實現(xiàn),當(dāng)單片機不上電,程序不執(zhí)行時,時鐘將不工作。</p><p><b>  3.2 硬件電路</b></p><p>  3.2.1 時鐘振蕩電路設(shè)計</p><p>  時鐘電路在計算機系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ)。一個單片機應(yīng)用系統(tǒng)中,時鐘有兩方面的含義:一

54、是指為保障系統(tǒng)正常工作的基準(zhǔn)振蕩定時信號,主要由晶振和外圍電路組成,晶振的作用是產(chǎn)生時間信號,數(shù)字鐘的頻率和確保穩(wěn)定度,晶振頻率的大小決定了單片機系統(tǒng)工作的快慢;二是指系統(tǒng)的標(biāo)準(zhǔn)定時時鐘,即定時時間[7]。</p><p>  本設(shè)計的時鐘電路采用的是內(nèi)部時鐘方式,既是在XTAL1和XTAL2 兩端接上晶體或陶瓷振蕩器。這次的設(shè)計中將采用在XTAL1和XTAL2兩端跨接12MHZ晶體振蕩器,內(nèi)部振蕩電路就產(chǎn)生自激

55、振蕩。定時元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶振能在1.2MHZ~12MHZ之間選擇,電容的大小在30PF左右,電容的大小可起頻率微調(diào)的作用。</p><p>  在AT89C51芯片內(nèi)部有一個高增益反向放大器,其輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。而在芯片內(nèi)部,XTAL1和XTAL2之間跨接晶體振蕩器和微調(diào)電容,從而構(gòu)成一個穩(wěn)定的自激振蕩器。時鐘電路產(chǎn)生的振蕩脈沖經(jīng)過觸發(fā)器進(jìn)行二分頻

56、之后,才成為單片機的時鐘脈沖信號。</p><p>  振蕩電路如圖3.2所示,由石英晶體、微調(diào)電容與集成門電路等元器件構(gòu)成。C1是溫度特性校正電容,一般取20-40PF, 電容C2中頻微調(diào)電容,取30PF, 電容C1、C2與晶體共構(gòu)成Π網(wǎng)絡(luò),完成正反饋選頻。數(shù)字鐘的秒信號是利用AT89C51單片機內(nèi)部定時器T0產(chǎn)生的。晶振的頻率為12MHZ使得T0的最大定時時間遠(yuǎn)遠(yuǎn)的小于1S,因此,在設(shè)計時采用了硬件和軟件的相

57、結(jié)合在一起的方法,通過計數(shù)器T0產(chǎn)生0.1S的時間基本信號,然后再利用程序進(jìn)行計數(shù),從而產(chǎn)生1S的時間信號。本次設(shè)計,定時器/計數(shù)器的T0采用了中斷方式。當(dāng)定時的時間到了后,定時器向CPU發(fā)出中斷請求,CPU相應(yīng)了中斷后轉(zhuǎn)入中斷服務(wù),在T0的中斷服務(wù)程序中實現(xiàn)時、分鐘、秒鐘的累加。每產(chǎn)生一次中斷,0.1S時基單元的內(nèi)容加1,當(dāng)其等于10的時候,便產(chǎn)生1S的信號,使秒計數(shù)單元的內(nèi)容加1,并將0.1S時基單元的內(nèi)容清0;當(dāng)秒的計數(shù)單元計滿了

58、60S后,向分計數(shù)單元進(jìn)位,使分的計數(shù)單元中的內(nèi)容加1,再將秒計數(shù)單元的內(nèi)容清0;當(dāng)計滿60后,再向時計數(shù)單元進(jìn)位,時時計數(shù)單元中的內(nèi)容加1,并將分計時單元中的內(nèi)容清0;時計數(shù)單元在計到24后清0。在</p><p>  圖3.2 此次設(shè)計時鐘電路</p><p>  經(jīng)過分頻器得到的1HZ的秒脈沖信號被送到計時電路,計時電路由六級計數(shù)器構(gòu)成。完成“時”、“分”、“秒”計數(shù)。其中 “秒”

59、、“分”計數(shù)均為六十進(jìn)制,“時”為二十四進(jìn)制。由于集成電路的發(fā)展,人們不再用觸發(fā)器去設(shè)計這些計數(shù)電路,而是使用中規(guī)模計數(shù)器,采用反饋歸零的方法去實現(xiàn),即當(dāng)計數(shù)狀態(tài)達(dá)到所需模值后,經(jīng)門電路或觸發(fā)器譯碼,反饋產(chǎn)生“復(fù)位”脈沖,使計數(shù)器清零,然后重新進(jìn)行下一個循環(huán)。</p><p>  3.2.2 復(fù)位電路設(shè)計</p><p>  為確保微機系統(tǒng)中電路穩(wěn)定可靠工作,復(fù)位電路是必不可少的一部分,

60、復(fù)位電路的第一功能是上電復(fù)位,一般微機電路正常工作需要供電電源為5V±5%,即4.75~5.25V。由于微機電路是時序數(shù)字電路,它需要穩(wěn)定的時鐘信號,因此在電源上電時,只有,當(dāng)VCC超過4.75V低于5.25V以及晶體振蕩器穩(wěn)定工作時,復(fù)位信號才被撤除,微機電路開始正常工作。</p><p>  通常復(fù)位電路應(yīng)具有上電自復(fù)位和按鈕復(fù)位功能,以MCS-51單片機為例,復(fù)位脈沖的高電平寬度應(yīng)大于兩個機器周期

61、,若系統(tǒng)采用12MHZ晶振,則一個機器周期為1µs,那么復(fù)位脈沖至少應(yīng)為2µs,但在實際應(yīng)用系統(tǒng)中還要考慮到電源的上升時間和震蕩的起振時間。若系統(tǒng)電源上升時間為10ms,振蕩器起振時間和震蕩頻率有關(guān),10MHZ時為1ms,1MHZ時為10ms[8] 。</p><p>  加電自動復(fù)位是加電瞬間,RST端的的電位與Vcc相同,隨著RC電路充電電流的減小,RST端的電位逐漸下降。只要RST端保持

62、10ms以上的高電平就能使MCS-51單片機有效的復(fù)位。復(fù)位電路中的RC參數(shù)通常由實驗調(diào)。當(dāng)振蕩頻率用12MHZ時,C選22µF、R選2kΩ便能可靠的實現(xiàn)加電自動復(fù)位。</p><p>  復(fù)位電路如圖3.3所示,復(fù)位電路主要是使整個設(shè)計初始化,其功能是將程序計數(shù)器PC的內(nèi)容初始化為00000H,使單片機從0000H單元開始執(zhí)行,并且使CPU及其他的功能部件都從一個確定的初始狀態(tài)開始工作。除了系統(tǒng)上電時

63、需要進(jìn)行正常的初始化外,當(dāng)數(shù)字鐘系統(tǒng)出現(xiàn)錯誤或故障時也可以通過復(fù)位系統(tǒng)來從新啟動數(shù)字鐘。當(dāng)復(fù)位后,PC=0000H,SP=07H,從P0-P3為0FFH。在數(shù)字鐘系統(tǒng)中使用的是上電復(fù)位,通過電容充電來實現(xiàn)。當(dāng)電源Vcc接通時只要電壓上升時間不超過1ms,就可以實現(xiàn)自動上電復(fù)位。</p><p>  圖3.3 復(fù)位電路</p><p>  3.2.3 鍵盤電路設(shè)計</p>

64、<p>  鍵盤如圖3.4所示,在電路中的4個按鍵S1、S2、S3、S4用于對時鐘進(jìn)行修改和鬧鐘設(shè)置,當(dāng)時鐘的1鍵被按下管就會顯示鬧鐘,再松開后顯示當(dāng)前時間;當(dāng)按下S4鍵后進(jìn)入時鐘修改模式,就能對時間進(jìn)行調(diào)整,再按下S4鍵,時間的小時就能加1,按S2后分鐘加1,當(dāng)調(diào)整結(jié)束后按下S1就恢復(fù)正常顯示;按下S3鍵進(jìn)入鬧鐘修改的模式,這時就能設(shè)定鬧鐘了,再按S3鍵鬧鐘的小時部分加1,按S2鍵分鐘部分加1,在調(diào)整結(jié)束后按下S1恢復(fù)正常

65、顯示。分別接在單片機的從P1.0到P1.3口,還有一個S0的鍵盤按鍵是用于進(jìn)入和退出鬧鐘的。</p><p>  圖3.4 此次設(shè)計按鍵</p><p>  3.2.4 蜂鳴器電路設(shè)計</p><p>  此次的設(shè)計是數(shù)字鬧鐘,所以在整個系統(tǒng)中就需要一個部件,當(dāng)設(shè)定的時間到時要有個聲音提醒信號的產(chǎn)生,蜂鳴器就是能起到這個作用的部件,我們這次的設(shè)計采用的是壓電式蜂

66、鳴器如圖3.5所示,在其工作時需要10MA的驅(qū)動電流。蜂鳴器的一端接入單片機的P1.7口,另外的一端接上+5V的高電平,當(dāng)P1.7的引腳上為低電平時蜂鳴器就不會發(fā)出聲音了。當(dāng)設(shè)定的時間到了的時候,單片機中的計時器就會發(fā)出信號給CPU,CPU發(fā)出響應(yīng),使P1.7為高電平,就開始發(fā)聲。</p><p><b>  圖3.5 蜂鳴器</b></p><p>  3.2.5

67、 顯示電路設(shè)計</p><p>  LED點陣顯示根據(jù)應(yīng)用領(lǐng)域和要求不同可以分為很多種。常用的足采用單片機為控制核心的LED點陣顯示,顯示的數(shù)據(jù)預(yù)先存貯在ROM中,當(dāng)程序運行時,單片機負(fù)責(zé)依序?qū)OM中存儲的數(shù)據(jù)進(jìn)行讀取、傳輸和顯示。這種方式優(yōu)點在于廉價、實現(xiàn)簡單,適用于顯示字符較少或顯示畫面不大的場合,并且很少更改顯示內(nèi)容。但足當(dāng)顯示廁面大,顯示內(nèi)容多且較復(fù)雜,光靠單片機處理不過來,或者用戶希望能隨時改變顯示

68、內(nèi)容或畫面時,就需要有更加靈活的LED顯示系統(tǒng)[9]。</p><p>  這次的數(shù)字鐘設(shè)計使用的是7段的共陽極數(shù)碼管來顯示如圖3.6所示,由于要顯示“時”,“分”和“秒”,要使用6位的數(shù)碼管,再采用動態(tài)顯示來驅(qū)動,當(dāng)單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM 端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通

69、的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM 端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O 端口,而且功耗更低。在6位的數(shù)碼管中,6個數(shù)碼管的顯示筆畫從“a”到“dp”的同名端都是連在一起的,當(dāng)我們的程序從P0口輸出字型的時候,所有的數(shù)碼管都會在同時接到相同的字型碼信號。為了避免6個數(shù)碼管都顯示同一個數(shù)字的情況出現(xiàn),就是我們采用動態(tài)顯示驅(qū)動的最主要原因。</p&g

70、t;<p>  6個數(shù)碼管逐個顯示,但每位的點亮?xí)r間極短(大約在1ms),要小于人體視覺的暫留時間0.1s,所以我們就不會產(chǎn)生閃爍的感覺,能夠完整的清楚的看到數(shù)碼管上的內(nèi)容。</p><p>  以上是簡單的介紹了下整個數(shù)字鐘電路中各模塊的功能和所工作的情況,我們只要將各部分與單片機的各個引腳連在一起,再將匯編程序輸入進(jìn)去,就能做出了個完整數(shù)</p><p><b>

71、;  字鐘系統(tǒng)。</b></p><p>  圖3.6 7段數(shù)碼管顯示 </p><p>  3.2.6 譯碼電路</p><p>  為了區(qū)分一系列不同的事物,將其中的每一個事物用一個二進(jìn)制代碼表示的過程稱為編碼。實現(xiàn)編碼功能的電路稱為譯碼器。在邏輯電路中,信號都是以高、低電平的形式給出的。因此,編碼器的邏輯功能就是把輸入的每一個高、低電平信號編成

72、一個對應(yīng)的二進(jìn)制代碼[10]。它可以將輸入的代碼狀態(tài)轉(zhuǎn)換成相應(yīng)的輸出信號,再以高或者低電平的形式在各自的輸出端口用于送出,以表示CPU所發(fā)出的信息。我們要通過譯碼電路將單片機中所需顯示的信號轉(zhuǎn)成7段數(shù)碼管字型的輸出信號,再由數(shù)碼管將它們顯示出來,以便我們了解。</p><p>  此次設(shè)計中,所采用的譯碼器為74LS47如圖3.7所示,它是輸出低電平有效的7段字型譯碼器,并且可以用于驅(qū)動共陽極數(shù)管,我們再在其中加

73、以電阻,以防電流過大將數(shù)碼管燒壞,構(gòu)成譯碼電路。 </p><p>  圖3.7 譯碼器電路</p><p><b>  第四章 軟件程序</b></p><p>  4.1 程序流程圖</p><p>  如圖4.1所示,程序開始后定義程序塊的起始地址,接著初始化程序,對各部件進(jìn)</p><p

74、>  行初始化,定義時鐘和鬧鐘的小時和分鐘。給計數(shù)器賦初值。啟動T016位計數(shù)器。接著是主程序的編寫S0鍵用于控制時鐘和鬧鐘界面的轉(zhuǎn)換,如果S0閉合就利用跳轉(zhuǎn)指令進(jìn)入鬧鐘的顯示,斷開就是時鐘的界面。當(dāng)S4鍵按下后就會進(jìn)入到時間的設(shè)置,再按一下小時數(shù)字就能加1,當(dāng)斷開的時候,CPU就會檢查S3是否是閉合的,如果是就進(jìn)入到鬧鐘的設(shè)置,顯示鬧鐘的界面,再按下一次就能加1。S2鍵用于修改鬧鐘和時鐘的分鐘,當(dāng)S2按下后,分鐘就能加1。最后當(dāng)

75、設(shè)置完成后就還可以通過按下S1來重新回到時鐘的顯示狀態(tài)。</p><p>  圖4.1 程序流程圖</p><p><b>  4.2 匯編語言</b></p><p>  匯編語言是一種面向CPU指令系統(tǒng)的程序設(shè)計語言,它采用指令系統(tǒng)的助記符來表示操作碼和操作數(shù),用符號地址表示操作數(shù)地址,因而易記、易讀、易修改,給匯編帶來了很大方便。&l

76、t;/p><p>  匯編語言源程序在輸入計算機后,需要將其翻譯成目標(biāo)程序,計算機才能執(zhí)行相應(yīng)指令,這個翻譯的過程稱為匯編,完成匯編任務(wù)的程序稱為匯編程序[11]。</p><p>  匯編語言比機器語言易于讀寫、調(diào)試和修改,同時具有機器語言全部優(yōu)點。但在編寫復(fù)雜程序時,相對高級語言代碼量較大,而且匯編語言依賴于具體的處理器體系結(jié)構(gòu),不能通用,因此不能直接在不同處理器體系結(jié)構(gòu)之間移植。<

77、/p><p><b>  匯編語言的特點:</b></p><p>  面向機器的低級語言,通常是為特定的計算機或系列計算機專門設(shè)計的。</p><p>  保持了機器語言的優(yōu)點,具有直接和簡捷的特點。</p><p>  可有效地訪問、控制計算機的各種硬件設(shè)備,如磁盤、存儲器、CPU、I/O端口等。</p>

78、<p>  目標(biāo)代碼簡短,占用內(nèi)存少,執(zhí)行速度快,是高效的程序設(shè)計語言。</p><p>  經(jīng)常與高級語言配合使用,應(yīng)用十分廣泛。 </p><p><b>  參考文獻(xiàn)</b></p><p> ?。?] 馬麗平,肖淵.基于Proteus的數(shù)字鐘設(shè)計及仿真[J].西安工程大學(xué)學(xué)報,2009,23(3):59~62.</p&g

79、t;<p> ?。?]趙淑范.數(shù)字電子鐘的設(shè)計[J].長春大學(xué)學(xué)報,2004,14(4):36~39.</p><p> ?。?]蔡美琴.MCS-51系列單片機系統(tǒng)及其應(yīng)用[M].北京:高等教育出版社,2004.1~18.</p><p>  [4]劉立新,關(guān)永. 嵌入式移動數(shù)據(jù)庫研究[J].微計算機信息,2006,22(2):85~87.</p><p&

80、gt; ?。?]張芳.基于AT89S52單片機數(shù)字鐘的實現(xiàn)[J].軟件導(dǎo)刊,2008,7(10):120~122.</p><p> ?。?]劉盛雄,周奇.基于單片機的數(shù)字式電子鐘的設(shè)計與制作[J].重慶工學(xué)院學(xué)報,2006,20(8):90~92.</p><p> ?。?]劉春梅.基于單片機的車載時鐘控制系統(tǒng)研究[D].大連:大連理工大學(xué),2008.</p><p&

81、gt;  [8]尉廣軍,郝永生.單片機系統(tǒng)中復(fù)位電路的可靠性分析[J].儀器儀表學(xué)報,2002,23(z2)577~578..</p><p> ?。?]陳朝俊. 基于無線電傳輸?shù)腖ED點陣屏幕顯示系統(tǒng)[D].貴州:貴州大學(xué).2008. </p><p>  [10]楊魯平.數(shù)字電子技術(shù)基礎(chǔ)[M].四川:電子科技大學(xué)出版社,2009.63~64. </p><p>

82、;  [11]荊淑霞.微機原理與匯編語言程序設(shè)計[M].北京:中國水力水電出版社,2005.133~134.</p><p><b>  附錄</b></p><p>  附錄1 數(shù)字鐘硬件電路圖</p><p><b>  附錄2 程序</b></p><p>  ORG 0000H

83、 偽指令 定義程序塊起始地址</p><p>  LJMP START 跳轉(zhuǎn) 開始</p><p><b>  ORG 000BH</b></p><p><b>  LJMP TIME</b></p><p>  ;

84、********初始化*********</p><p>  START: MOV SP, #50H SP指令指針寄存器</p><p>  MOV 20H,#00H 定義秒</p><p>  MOV 21H,#00H 定義分</p><p>  MOV 22H,#

85、00H 定義時</p><p>  MOV 23H,#01H 定義鬧鐘分鐘</p><p>  MOV 24H,#01H 定義鬧鐘小時</p><p>  MOV 25H,#00H</p><p>  MOV 26H,#01H</p><p

86、>  MOV 30H,#00H </p><p>  MOV 31H,#00H</p><p>  MOV 32H,#00H </p><p>  MOV 33H,#00H</p><p>  MOV 34H,#00H </p><p>

87、  MOV 35H,#00H</p><p>  MOV 36H,#01H</p><p>  MOV 37H,#00H</p><p>  MOV 38H,#01H</p><p>  MOV 39H,#00H</p><p>  MOV 50H,#00H 按鍵次數(shù)</p><

88、;p>  MOV TMOD,#01H 16位計數(shù)器</p><p>  MOV TH0, #03CH 賦初值</p><p>  MOV TL0, #0B0H</p><p>  MOV IE, #87H 中斷允許 IE功能寄存器

89、 </p><p>  SETB TR0 啟動T0 置位1</p><p>  MOV R2, #14H</p><p>  MOV P2, #0FFH</p><p>  ;*********主程序**********</p><p>  MAI

90、N: JB P1.4, GB </p><p>  LCALL TIMEPRO 調(diào)用鬧鐘判斷 </p><p>  GB: LCALL DISPLAY1 調(diào)用時間顯示</p><p>  JB P1.3,M1 P1.3=1時轉(zhuǎn)移 S4沒有按下</p><p>  LCAL

91、L SETTIME 調(diào)用SETTIME調(diào)時子程序</p><p><b>  LJMP MAIN</b></p><p>  M1: JB P1.2,M2 P1.2=1時轉(zhuǎn)移   S3</p><p>  LCALL SETATIME 調(diào)用SETATIM

92、E子程序 </p><p><b>  LJMP MAIN</b></p><p>  M2: JB P1.0,M4 P1.0=1時轉(zhuǎn)移 S1</p><p>  LCALL LOOKATIME 調(diào)用LOOKATIME顯示鬧鐘子程序</p><p>  M4

93、: LJMP MAIN</p><p>  ;*********延時子程序********</p><p>  DELAY: MOV R4,#030H</p><p>  DL00: MOV R5,#0FFH</p><p>  DL11: MOV R6,#9H</p><p>  DL12:

94、 DJNZ R6,DL12</p><p>  DJNZ R5,DL11</p><p>  DJNZ R4,DL00</p><p>  RET 無參數(shù)返回</p><p>  ;***********時間調(diào)整*******</p><p>  SETTIME:

95、 設(shè)置時間</p><p>  L0: LCALL DISPLAY1</p><p>  MM1: JB P1.3,L1 P1.3=1時轉(zhuǎn)移 </p><p>  MOV C, P1.3 </p><p><b>  JC MM1</b>&l

96、t;/p><p>  LCALL DELAY1 延時</p><p><b>  JC MM1</b></p><p>  MSTOP1: MOV C,P1.3 P1.3為0時轉(zhuǎn)移</p><p>  JNC MSTOP1 </p

97、><p>  LCALL DELAY1 延時</p><p>  MOV A,50H </p><p>  INC 50H INC+1指令</p><p>  CJNE A,#00H,HJ1</p><p><b>  LJMP L0</b>&

98、lt;/p><p>  HJ1: MOV C,P1.3 </p><p>  JNC MSTOP1</p><p>  INC 22H 小時自加一</p><p><b>  MOV A,22H</b></p><p>  CJNE A,#18H,GO12

99、 小時計數(shù)循環(huán) </p><p>  MOV 22H,#00H 復(fù)位</p><p>  MOV 34H,#00H</p><p>  MOV 35H,#00H</p><p><b>  LJMP L0</b></p><p>  L1: JB P1

100、.1,L2 P1.1=1時轉(zhuǎn)移</p><p>  MOV C,P1.1</p><p><b>  JC L1</b></p><p>  LCALL DELAY1 延時</p><p><b>  JC L1</b></p>&l

101、t;p>  MSTOP2: MOV C,P1.1 P1.1=0時轉(zhuǎn)移</p><p>  JNC MSTOP2 </p><p>  LCALL DELAY1 延時</p><p>  MOV C,P1.1</p><p>  JNC MSTOP2</p><p

102、>  INC 21H 分鐘加一</p><p><b>  MOV A,21H</b></p><p>  CJNE A,#3CH,GO11 分鐘計數(shù)循環(huán)</p><p>  MOV 21H,#00H 復(fù)位</p><p>  MOV 32H,#

103、00H</p><p>  MOV 33H,#00H</p><p><b>  LJMP L0</b></p><p>  GO11: MOV B,#0AH</p><p>  DIV AB DIV除法</p><p>  MOV 32H,B

104、 將A的低4位存入32單元</p><p>  MOV 33H,A 將A的高4位存入33單元</p><p><b>  LJMP L0</b></p><p>  GO12: MOV B,#0AH</p><p><b>  DIV AB</b>&l

105、t;/p><p>  MOV 34H,B 將A的低4位存入34單元</p><p>  MOV 35H,A 將A的高4位存入35單元</p><p><b>  LJMP L0</b></p><p>  L2: JB P1.0,L0

106、 P1.0=1時轉(zhuǎn)移</p><p>  MOV C,P1.0</p><p><b>  JC L2</b></p><p>  LCALL DELAY1 延時</p><p>  MOV C,P1.0</p><p><b>  JC L2</b&g

107、t;</p><p>  STOP1: MOV C,P1.0 P1.0=0時轉(zhuǎn)移</p><p>  JNC STOP1 </p><p>  LCALL DELAY1 延時</p><p>  MOV C,P1.0</p><p><b>

108、;  JNC STOP1</b></p><p>  MOV 50H,#00H</p><p>  LJMP MAIN</p><p>  ;*******設(shè)置鬧鐘*******</p><p>  SETATIME:LCALL DISPLAY2 調(diào)用DISPLAY2顯示鬧鐘</p><p&g

109、t;  N0: LCALL DISPLAY2</p><p>  MM2: JB P1.2,N1 P1.2=1時轉(zhuǎn)移</p><p>  MOV C,P1.2</p><p><b>  JC MM2</b></p><p>  LCALL DELAY1

110、 延時</p><p><b>  JC MM2</b></p><p>  MSTOP3: MOV C,P1.2 P1.2=0時轉(zhuǎn)移</p><p>  JNC MSTOP3 </p><p>  LCALL DELAY1

111、 延時</p><p>  MOV A,50H </p><p><b>  INC 50H</b></p><p>  CJNE A,#00H,HJ2</p><p><b>  LJMP N0</b></p><p>  HJ2: MOV C,P1.2</

112、p><p>  JNC MSTOP3</p><p>  INC 24H 小時加一</p><p><b>  MOV A,24H</b></p><p>  CJNE A,#24,GO22 小時計數(shù)循環(huán)</p><p>  

113、MOV 24H,#00H 復(fù)位</p><p>  MOV 38H,#00H</p><p>  MOV 39H,#00H</p><p><b>  LJMP N0</b></p><p>  N1: JB P1.1,N2 P1.1=1時轉(zhuǎn)移</

114、p><p>  MOV C,P1.1</p><p><b>  JC N1</b></p><p>  LCALL DELAY1 延時</p><p><b>  JC N1</b></p><p>  MSTOP4: MOV C,P1.1

溫馨提示

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

評論

0/150

提交評論