版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 電子萬年歷設計</b></p><p> 摘 要:隨著當今世界經(jīng)濟的快速發(fā)展和信息化時代的來臨,各種各樣的小型智能家電產(chǎn)品陸續(xù)出現(xiàn)在我們的生活中。日歷是人們不可或缺的日常用品。但一般日歷都為紙制用品,使用不便,壽命不長。電子萬年歷采用智能電子控制和顯示技術,改善了紙制日歷的缺陷。本設計以AT89S52單片機為核心,構成單片機控制電路,結合DS1302時鐘芯片和
2、24C02FLASH存儲器,完成時間的自動調整和掉電保護,全部信息用液晶顯示。時間、日期調整由三個按鍵來實現(xiàn),并可對鬧鈴開關進行設置。日歷能顯示陽歷和陰歷年、月、日以及星期、時、分、秒。在顯示陰歷月份時,能標明是否閏月。</p><p> 關鍵詞:電子萬年歷 52系列單片機 時鐘芯片 FLASH存儲器 液晶顯示</p><p> The Design of Electronic Ca
3、lendar</p><p> Abstract: With the rapid development of world economy and the forthcoming of information era, many kinds of mini-type intelligent domestic electric appliances appear in our life one after ano
4、ther. Calendars are necessary daily goods in people’s life. But they are generally paper goods with inconvenient use and short life. Electronic calendar adopts the technology of intelligent electronic control and display
5、, and then improves the deficiency of paper calendars. The design adopts the core of AT89</p><p> Keywords: electronic calendar 52 series single chip microcomputer clock chip flash memory LCD</p>
6、<p><b> 1 引言</b></p><p> 在日新月異的21世紀里,家用電子產(chǎn)品得到了迅速發(fā)展。許多家電設備都趨于人性化、智能化,這些電器設備大部分都含有CPU控制器或者是單片機。單片機以其高可靠性、高性價比、低電壓、低功耗等一系列優(yōu)點,近幾年得到迅猛發(fā)展和大范圍推廣,廣泛應用于工業(yè)控制系統(tǒng)、通訊設備、日常消費類產(chǎn)品和玩具等。并且已經(jīng)深入到工業(yè)生產(chǎn)的各個環(huán)節(jié)以及人民
7、生活的各個方面,如車間流水線控制、自動化系統(tǒng)等、智能型家用電器(冰箱、空調、彩電)等。用單片機來控制的小型家電產(chǎn)品具有便攜實用,操作簡單的特點。</p><p> 本文設計的電子萬年歷屬于小型智能家用電子產(chǎn)品。利用單片機進行控制,實時時鐘芯片進行記時,外加掉電存儲電路和顯示電路,可實現(xiàn)時間的調整和顯示。電子萬年歷既可廣泛應用于家庭,也可應用于銀行、郵電、賓館、醫(yī)院、學校、企業(yè)、商店等相關行業(yè)的大廳,以及單位會議
8、室、門衛(wèi)等場所。因而,此設計具有相當重要的現(xiàn)實意義和實用價值。</p><p><b> 2 系統(tǒng)概述</b></p><p> 本設計以AT89S52單片機為核心,構成單片機控制電路,結合DS1302時鐘芯片和24C02FLASH存儲器,顯示陽歷年、月、日、星期、時、分、秒和陰歷年、月、日,在顯示陰歷時間時,能標明是否閏月,同時完成對它們的自動調整和掉電保護,全
9、部信息用液晶顯示。人機接口由三個按鍵來實現(xiàn),用這三個按鍵對時間、日期可調,并可對鬧鈴開關進行設置。軟件控制程序實現(xiàn)所有的功能。整機電路使用+5V穩(wěn)壓電源,可穩(wěn)定工作。系統(tǒng)框圖如圖2-1所示,其軟硬件設計簡單,時間記錄準確,可廣泛應用于長時間連續(xù)顯示的系統(tǒng)中。</p><p><b> 圖2-1 系統(tǒng)框圖</b></p><p><b> 3 方案選擇&l
10、t;/b></p><p> 由于電子萬年歷的種類比較多,因此方案選擇在設計中是至關重要的。正確地選擇方案可以減小開發(fā)難度,縮短開發(fā)周期,降低成本,更快地將產(chǎn)品推向市場。</p><p> 3.1 方案1——基于AT89S52單片機的電子萬年歷設計</p><p> 不使用時鐘芯片,而直接用AT89S52單片機來實現(xiàn)電子萬年歷設計。AT89S52是一種帶
11、8K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS 8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復擦寫1000余次。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89S52是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。</p><p> 若采用單片機計時,利用它的一個16位定時器/計數(shù)器每50ms產(chǎn)生一個中斷信號,中斷20次后產(chǎn)生一個秒信號,然
12、后根據(jù)時間進制關系依次向分、時、日、星期、月、年進位。這樣就實現(xiàn)了直接用單片機來實現(xiàn)電子萬年歷設計。</p><p> 用單片機來實現(xiàn)電子萬年歷設計,無須外接其他芯片,充分利用了單片機的資源。但是精度不夠高,誤差較大,掉電后丟失所有數(shù)據(jù),軟件編程較復雜。</p><p> 3.2 方案2——基于DS1302的電子萬年歷設計</p><p> 在以單片機為核心構
13、成的裝置中,經(jīng)常需要一個實時的時鐘和日歷,以便對一些實時發(fā)生事件記錄時給予時標,實時時鐘芯片便可起到這一作用。過去多用并行接口的時鐘芯片,如MC146818,DS12887等。它們已能完全滿足單片機系統(tǒng)對實時時鐘的要求,但是這些芯片與單片機接口復雜、占用地址, 數(shù)據(jù)總線接線多、芯片體積大占用空間多、近年來串行接口的各種芯片在單片機系統(tǒng)中應用愈來愈多,串行接口的實時時鐘芯片也出現(xiàn)了不少,DS1302是一個綜合性能較好且價格便宜的串行接口實
14、時時鐘芯片。</p><p> 利用單片機進行控制,采用DS1302作為實時時鐘芯片,其三線接口SCLK、I/O、/RST與單片機進行同步通信,外加掉電存儲電路、顯示電路、鍵盤電路,即構成一個基本的電子萬年歷系統(tǒng),若還要添加其他功能,在這基礎上外擴電路即可。</p><p> 由于在系統(tǒng)設計時,需要考慮以下幾點因素:功耗低、精確度高、軟件編程較簡單,芯片的體積小、芯片成本低等,而DS1
15、302芯片有上面所述的諸多優(yōu)點,所以本設計采用方案2。</p><p> 4 系統(tǒng)硬件電路的設計</p><p> 按照系統(tǒng)設計功能的要求,初步確定設計系統(tǒng)由主控模塊、時鐘模塊、存儲模塊、鍵盤接口模塊、顯示模塊和鬧鈴模塊共6個模塊組成,電路系統(tǒng)構成框圖如圖4-1所示。主控芯片使用52系列AT89S52單片機,時鐘芯片使用美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘芯
16、片DS1302,存儲模塊采用美國ATMEL公司生產(chǎn)的低功耗CMOS串行EEPROM存儲芯片AT24C02。DS1302作為主要計時芯片,可以做到計時準確。更重要的是,DS1302可以在很小電流的后備 (2.5~5.5V電源,在2.5V時耗電小于300nA)下繼續(xù)計時,并可編程選擇多種充電電流來對后備電源進行慢速充電,可以保證后備電源基本不耗電。</p><p> 圖4-1 電子萬年歷電路系統(tǒng)構成框圖</p
17、><p> 4.1 系統(tǒng)核心部分——閃電存儲型器件AT89S52</p><p> 4.1.1 AT89S52具有下列主要性能[5]: </p><p> ·8KB可改編程序Flash存儲器(可經(jīng)受1000次的寫入/擦除周期) </p><p> ·全靜態(tài)工作:0Hz~24MHz</p>
18、<p> ·三級程序存儲器保密</p><p> ·128×8字節(jié)內部RAM</p><p> ·32條可編程I/O線</p><p> ·2個16位定時器/計數(shù)器</p><p><b> ·6個中斷源</b></p><
19、;p><b> ·可編程串行通道</b></p><p><b> ·片內時鐘振蕩器</b></p><p> 4.1.2 AT89S52的引腳及功能</p><p> AT89S52單片機的管腳說明如圖4-2所示。</p><p> 圖4-2 AT89S52的管
20、腳</p><p> (1) 主要電源引腳</p><p><b> ①VCC 電源端</b></p><p><b> ?、贕ND 接地端</b></p><p> (2) 外接晶體引腳XTAL1和XTAL2</p><p> ①XTAL1 接外部晶體的一個引
21、腳。在單片機內部,它是構成片內振蕩器的反相放大器的輸入端。當采用外部振蕩器時,該引腳接收振蕩器的信號,既把此信號直接接到內部時鐘發(fā)生器的輸入端。</p><p> ?、赬TAL2 接外部晶體的另一個引腳。在單片機內部,它是上述振蕩器的反相放大器的輸出端。采用外部振蕩器時,此引腳應懸浮不連接。</p><p> (3) 控制或與其它電源復用引腳RST、ALE//PROG、/PSEN和/E
22、A/VPP</p><p> ①RST 復位輸入端。 當振蕩器運行時,在該引腳上出現(xiàn)兩個機器周期的高電平將使單片機復位。</p><p> ②ALE//PROG 當訪問外部存儲器時,ALE(地址鎖存允許)的輸出用于鎖存地址的低位字節(jié)。即使不訪問外部存儲器,ALE端仍以不變的頻率(此頻率為振蕩器頻率的1/6)周期性地出現(xiàn)正脈沖信號。因此,它可用作對外輸出的時鐘,或用于定時目的。然而要
23、注意的是:每當訪問外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。在對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(/PROG)[6]。</p><p> ?、?PSEN 程序存儲允許(/PSEN)輸出是外部程序存儲器的讀選通信號。當AT89S52/LV52由外部程序存儲器取指令(或常數(shù))時,每個機器周期兩次/PSEN有效(既輸出2個脈沖)。但在此期間內,每當訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出
24、現(xiàn)。</p><p> ?、?EA/VPP 外部訪問允許端。要使CPU只訪問外部程序存儲器(地址為0000H~FFFFH),則/EA端必須保持低電平(接到GND端)。當/EA端保持高電平(接VSS端)時,CPU則執(zhí)行內部程序存儲器中的程序。</p><p> (4) 輸入/輸出引腳 P0.0~ P0.7、P1.0~P1.7、P2.0~ P2.7 和P3.0~P3.7</p>
25、<p> ?、貾0端口(P0.0~ P0.7) P0是一個8位漏極開路型雙向I/O端口。作為輸出口用時,每位能以吸收電流的方式驅動8個TTL輸入,對端口寫1時,又可作高阻抗輸入端用。</p><p> ?、赑1端口(P1.0~ P1.7) P1是一個帶有內部上拉電阻的8位雙向I/O端口。P1的輸出緩沖器可驅動(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內部的上拉電阻把端口拉到高電位,這時
26、可用作輸入口。作輸入口時,因為有內部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。</p><p> ?、跴2端口 (P2.0~P2.7) P2是一個帶有內部上拉電阻的8位雙向I/O端口。P2的輸出緩沖器可驅動(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內部的上拉電阻把端口拉到高電位,這時可用作輸入口。P2作輸入口使用時,因為有內部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。</p
27、><p> ?、躊3端口(P3.0~P3.7) P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流,這是由于上拉的緣故。</p><p> P3口也可作為AT89S52的一些特殊功能,這些特殊功能見表4-1[7]。</p><p> 表
28、4-1 P3端口的特殊功能</p><p> 4.2 DS1302時鐘電路</p><p> 4.2.1 DS1302芯片介紹</p><p> 低功耗時鐘芯片DS1302可以對年、月、日、時、分、秒進行計時,且具有閏年補償?shù)榷喾N功能。DS1302用于數(shù)據(jù)記錄,特別是對某些具有特殊意義的數(shù)據(jù)點的記錄上,能實現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄。這種記錄對長時間的連
29、續(xù)測控系統(tǒng)結果的分析以及對異常數(shù)據(jù)出現(xiàn)的原因的查找有重要意義[8]。</p><p> 采用DS1302作為記錄測控系統(tǒng)中的數(shù)據(jù)記錄,其軟硬件設計簡單,時間記錄準確,既避免了連續(xù)記錄的大工作量,又避免了定時記錄的盲目性,給連續(xù)長時間的測量、控制系統(tǒng)的正常運行及檢查都來了很大的方便,可廣泛應用于長時間連續(xù)的測控系統(tǒng)中。在測量控制系統(tǒng)中,特別是長時間無人職守的測控系統(tǒng)中,經(jīng)常需要記錄某些具有特殊意義的數(shù)據(jù)及其出現(xiàn)的
30、時間。記錄及分析這些特殊意義的數(shù)據(jù),對測控系統(tǒng)的性能分析及正常運行具有重要的意義。傳統(tǒng)的數(shù)據(jù)記錄方式是隔時采樣或定時采樣,沒有具體的時間記錄,因此只能記錄數(shù)據(jù)而無法準確記錄其出現(xiàn)的時間;若采用單片機計時,一方面需要采用計數(shù)器,占用硬件資源,另一方面需要設置中斷、查詢等,同樣耗費單片機的資源,而且某些測控系統(tǒng)可能不允許。而在系統(tǒng)中采用DS1302則能很好地解決這個問題。</p><p> DS1302的性能特性&
31、lt;/p><p> ·實時時鐘,可對秒、分、時、日、周、月以及帶閏年補償?shù)哪赀M行計數(shù);</p><p> ·用于高速數(shù)據(jù)暫存的31×8位RAM;</p><p> ·最少引腳的串行I/O;</p><p> ·2.5~5.5V 電壓工作范圍;</p><p>
32、·2.5V時耗電小于300nA;</p><p> ·用于時鐘或RAM數(shù)據(jù)讀/寫的單字節(jié)或多字節(jié)(脈沖方式)數(shù)據(jù)傳送方式;</p><p><b> ·簡單的3線接口;</b></p><p> ·可選的慢速充電(至VCC1)的能力。</p><p> DS1302時鐘芯片
33、包括實時時鐘/日歷和31字節(jié)的靜態(tài)RAM。它經(jīng)過一個簡單的串行接口與微處理器通信。實時時鐘/日歷提供秒、分、時、日、周、月和年等信息。對于小于31天的月和月末的日期自動進行調整,還包括閏年校正的功能。時鐘的運行可以采用24h或帶AM(上午)/PM(下午)的12h格式。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302有主電源/后備電源雙電源引腳:VCC1 在單電源與電池供電的系統(tǒng)中提供
34、低電源,并提供低功率的電池備份;VCC2在雙電源系統(tǒng)中提供主電源,在這種運用方式中,VCC1 連接到備份電源,以便在沒有主電源的情況下能保存時間信息以及數(shù)據(jù)。DS1302由VCC1或VCC2中較大者供電。當VCC2大于VCC1+0.2V時,VCC2給DS1302供電;當VCC2小于VCC1時,DS1302由VCC1供電。</p><p> (2) DS1302數(shù)據(jù)操作原理</p><p>
35、; DS1302在任何數(shù)據(jù)傳送時必須先初始化,把RST腳置為高電平,然后把8位地址和命令字裝入移位寄存器,數(shù)據(jù)在SCLK的上升沿被輸入。無論是讀周期還是寫周期,開始8位指定40個寄存器中哪個被訪問到。在開始8個時鐘周期,把命令字節(jié)裝入移位寄存器之后,另外的時鐘周期在讀操作時輸出數(shù)據(jù),在寫操作時寫入數(shù)據(jù)。時鐘脈沖的個數(shù)在單字節(jié)方式下為8加8,在多字節(jié)方式下為8加字節(jié)數(shù),最大可達248字節(jié)數(shù)。</p><p>
36、圖4-3 DS1302管腳圖</p><p> 如果在傳送過程中置RST為低電平,則會終止本次數(shù)據(jù)傳送,并且I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在VCC >=2.5V之前,RST腳必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。DS1302的管腳圖如圖4-3所示,內部結構圖如圖4-4所示,表4-2為各引腳的功能。</p><p> 圖4-4 DS1302內部結構圖
37、</p><p> 表4-2 DS1302引腳功能表</p><p> DS1302的控制字如圖4-5所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1;如果它為邏輯0,則不能把數(shù)據(jù)寫入到DS1302中。位6如果為0,則表示存取日歷時鐘數(shù)據(jù);為1表示存取RAM數(shù)據(jù)。位5~1(A4~A0)指示操作單元的地址。最低有效位(位0)如為0,表示要進行寫操作;為1表示進行讀操作??刂谱止?jié)總是從最低位
38、開始輸入/輸出。</p><p> 圖4-5 控制字節(jié)的含義</p><p> 為了提高對32個地址的尋址能力(地址/命令位1~5=邏輯1),可以把時鐘/日歷或RAM寄存器規(guī)定為多字節(jié)(burst)方式。位6規(guī)定時鐘或RAM,而位0規(guī)定讀或寫。在時鐘/日歷寄存器中的地址9~31或RAM寄存器中的地址31不能存儲數(shù)據(jù)。在多字節(jié)方式中,讀或寫從地址0的位0開始。必須按數(shù)據(jù)傳送的次序寫最先的
39、8個寄存器。但是,當以多字節(jié)方式寫RAM時,為了傳送數(shù)據(jù)不必寫所有31字節(jié)。不管是否寫了全部31字節(jié),所寫的每一字節(jié)都將傳送至RAM。數(shù)據(jù)讀寫程序如圖4-6所示。</p><p> 圖4-6 數(shù)據(jù)讀寫程序</p><p> DS1302共有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見表4-3,其中奇數(shù)為讀操作,偶數(shù)為寫操作。
40、</p><p> 表4-3 DS1302的日歷、時鐘寄存器及其控制字</p><p> 時鐘暫停:秒寄存器的位7定義位時鐘暫停位。當它為1時,DS1302停止振蕩,進入低功耗的備份方式。通常在對DS1302進行寫操作時(如進入時鐘調整程序),停止振蕩。當它為0時,時鐘將開始啟動。</p><p> AM-PM/12-24[小]時方式:[小]時寄存器的位7定義
41、為12或24[小]時方式選擇位。它為高電平時,選擇12[小]時方式。在此方式下,位5是AM/PM位,此位是高電平時表示PM,低電平表示AM,在24[小]時方式下,位5為第二個10[小]時位(20~23h)。</p><p> 4.2.2 DS1302 的應用</p><p> 實時時鐘芯片DS1302采用串行數(shù)據(jù)傳輸,可為掉電保護電源提供可編程的充電功能,也可以關閉充電功能,芯片采用3
42、2768Hz晶振。要特別說明的是,備用電源BT1可以用電池或超級電容(10萬μF以上)。雖然DS1302在主電源掉電后耗電很小,但如果要長時間保證時鐘正常,最好選用小型充電電池。如果斷電時間較短(幾小時或幾天),可以用漏電較小的普通電解電容代替(100μF就可以保證1小時的正常走時)[9]。DS1302在第一次加電后,需進行初始化操作。初始化后就可以按正常方法調整時間及鬧鈴。DS1302的時鐘電路如圖4-3所示。</p>
43、<p> 圖4-7 DS1302時鐘電路</p><p><b> 4.3 存儲電路</b></p><p> 4.3.1 AT24C02管腳介紹</p><p> AT24C02[10]是美國ATMEL公司的低功耗CMOS串行EEPROM,它是內含256×8位存儲空間,具有工作電壓寬(2.5~5.5V)、擦寫次數(shù)多
44、(大于10000次)、寫入速度快(小于10ms)等特點。 AT24C02的1、2、3腳是三條地址線,用于確定芯片的硬件地址。第8腳和第4腳分別為正、負電源。第5腳SDA為串行數(shù)據(jù)輸入/輸出,數(shù)據(jù)通過這條雙向I2C總線串行傳送。第6腳SCL為串行時鐘輸入線。SDA和SCL都需要和正電源間各接一個4.7K的電阻上拉。</p><p> I2C總線是一種用于I2C器件之間連接的二線制總線。
45、它通過SDA(串行數(shù)據(jù)線)及SCL(串行時鐘線)兩根線在連到總線上的器件之間傳送信息,并根據(jù)地址識別每個器件:不管是單片機、存儲器、LCD驅動器還是鍵盤接口。</p><p> 4.3.2 AT24C02的特性</p><p> (1) I2C總線的基本結構</p><p> 采用I2C總線標準的單片機或I2C器件,其內部不僅有I2C接口電路,而且將內部各單元
46、電路按功能劃分為若干相對獨立的模塊,通過軟件尋址實現(xiàn)片選,減少了器件片選線的連接。CPU不僅能通過指令將某個功能單元電路掛靠或摘離總線,還可對該單元的工作狀況進行檢測,從而實現(xiàn)對硬件系統(tǒng)的既簡單又靈活的擴展與控制。</p><p> (2) 雙向傳輸?shù)慕涌谔匦浴?lt;/p><p> 傳統(tǒng)的單片機串行接口的發(fā)送和接收一般都各用一條線,而I2C總線則根據(jù)器件的功能通過軟件程序使其可工作于發(fā)送
47、或接收方式。當某個器件向總線上發(fā)送信息時,它就是發(fā)送器(也叫主器件),而當其從總線上接收信息時,又成為接收器(也叫從器件)。主器件用于啟動總線上傳送數(shù)據(jù)并產(chǎn)生時鐘以開放傳送的器件,此時任何被尋址的器件均被認為是從器件。I2C總線的控制完全由掛接在總線上的主器件送出的地址和數(shù)據(jù)決定。 總線上主和從(即發(fā)送和接收)的關系不是一成不變的,而是取決于此時數(shù)據(jù)傳送的方向。SDA和SCL均為雙向I/O線,通過上拉電阻接正電源。當總線空閑時,兩根
48、線都是高電平。連接總線的器件的輸出級必須是集電極或漏極開路,以具有線“與”功能。I2C總線的數(shù)據(jù)傳送速率在標準工作方式下為100kbit/s,在快速方式下,最高傳送速率可達400kbit/s。(3) I2C總線上的時鐘信號 </p><p> 在I2C總線上傳送信息時的時鐘同步信號是由掛接在SCL時鐘線上的所有器件的邏輯“與”完成的。SCL線上由高電平到低電平的跳變將影響到這些器件,一旦某個器件的時鐘信號下跳
49、為低電平,將使SCL線一直保持低電平,使SCL線上的所有器件開始低電平期。此時,低電平周期短的器件的時鐘由低至高的跳變并不能影響SCL線的狀態(tài),于是這些器件將進入高電平等待的狀態(tài)?! ‘斔衅骷臅r鐘信號都上跳為高電平時,低電平期結束,SCL線被釋放返回高電平,即所有的器件都同時開始它們的高電平期。其后,第一個結束高電平期的器件又將SCL線拉成低電平。這樣就在SCL線上產(chǎn)生一個同步時鐘。可見,時鐘低電平時間由時鐘低電平期最長的器件確定
50、,而時鐘高電平時間由時鐘高電平期最短的器件確定。(4) 數(shù)據(jù)的傳送 </p><p> 在數(shù)據(jù)傳送過程中,必須確認數(shù)據(jù)傳送的開始和結束。當時鐘線SCL為高電平時,數(shù)據(jù)線SDA由高電平跳變?yōu)榈碗娖蕉x為“開始”信號;當SCL線為高電平時,SDA線發(fā)生低電平到高電平的跳變?yōu)椤敖Y束”信號。開始和結束信號都是由主器件產(chǎn)生。在開始信號以后,總線即被認為處于忙狀態(tài);在結束信號以后的一段時間內,總線被認為是空閑的。
51、 I2C總線的數(shù)據(jù)傳送格式是:在I2C總線開始信號后,送出的第一個字節(jié)數(shù)據(jù)是用來選擇從器件地址的,其中前7位為地址碼,第8位為方向位(R/W)。方向位為“0”表示發(fā)送,即主器件把信息寫到所選擇的從器件;方向位為“1”表示主器件將從從器件讀信息。開始信號后,系統(tǒng)中的各個器件將自己的地址和主器件送到總線上的地址進行比較,如果與主器件發(fā)送到總線上的地址一致,則該器件即為被主器件尋址的器件,其接收信息還是發(fā)送信息則由第8位(R/W)確定。
52、在I2C總線上每次傳送的數(shù)據(jù)字節(jié)數(shù)不限,但每一個字節(jié)必須為8位,而且每個傳送的字節(jié)后面必須跟一個認可位(第9位),也叫應答位(ACK)。每次都是先傳最高位,通常從器件在接收到每個字節(jié)后都會做出響應,即釋放SCL線返回高電平,準備接收下一</p><p> 總線上可能掛接有多個器件,有時會發(fā)生兩個或多個主器件同時想占用總線的情況。例如,多單片機系統(tǒng)中,可能在某一時刻有兩個單片機要同時向總線發(fā)送數(shù)據(jù),這種情況叫做總
53、線競爭。I2C總線具有多主控能力,可以對發(fā)生在SDA線上的總線競爭進行仲裁,其仲裁原則是這樣的:當多個主器件同時想占用總線時,如果某個主器件發(fā)送高電平,而另一個主器件發(fā)送低電平,則發(fā)送電平與此時SDA總線電平不符的那個器件將自動關閉其輸出級??偩€競爭的仲裁是在兩個層次上進行的。首先是地址位的比較,如果主器件尋址同一個從器件,則進入數(shù)據(jù)位的比較,從而確保了競爭仲裁的可靠性。由于是利用I2C總線上的信息進行仲裁,因此不會造成信息的丟失。&l
54、t;/p><p> 24C02與單片機的接口非常簡單,如圖4-8所示。A0,A1,A2為器件地址線,WP為寫保護引腳,SCL,SDA為二線串行接口,符合I2C總線協(xié)議。</p><p> 圖4-8 24C02存儲電路</p><p> 4.4 液晶顯示電路</p><p> 顯示器部分是由HD61202液晶顯示控制驅動器和HY12864液
55、晶顯示器組成的,下面我們對其分別進行介紹。</p><p> 4.4.1 液晶顯示控制驅動器HD61202的特點</p><p> HD61202液晶顯示控制驅動器是一種帶有驅動輸出的圖形液晶顯示控制器,它可直接與8位微處理器相連,它可與HD61203配合對液晶屏進行行、列驅動。HD61202是一種帶有列驅動輸出的液晶顯示控制器,它可與行驅動器HD61203配合使用,組成液晶顯示驅動控
56、制系統(tǒng)[12]。</p><p> (1) 內藏64×64=4096位顯示RAM,RAM中每位數(shù)據(jù)對應LCD屏上一個點的亮、暗狀態(tài);</p><p> (2) HD61202是列驅動器,具有64路列驅動輸出;</p><p> (3) HD61202讀、寫操作時序與68系列微處理器相符,因此它可直接與68系列微處理器接口相連;</p>
57、<p> (4) HD61202的占空比為1/32~1/64。</p><p> 4.4.2 液晶顯示控制驅動器HD61202的引腳功能</p><p> HD61202的引腳功能如下表4-4所示。</p><p> 表4-4 HD61202的引腳功能</p><p> 4.4.3 液晶顯示控制驅動器HD61202的指令
58、系統(tǒng)</p><p> HD61202的指令系統(tǒng)比較簡單,總共只有七種?,F(xiàn)分別介紹如下。 </p><p> (1) 顯示開/關指令</p><p> 當DBO=1時,LCD顯示RAM中的內容;DBO=0時,關閉顯示。</p><p> (2) 顯示起始行(
59、ROW)設置指令</p><p> 該指令設置了對應液晶屏最上一行的顯示RAM的行號,有規(guī)律的改變顯示起始行,可以使LCD實現(xiàn)顯示滾屏的效果。</p><p> (3) 頁(PAGE)置指令</p><p> 顯示RAM共64行,分8頁,每頁8行。</p><p> (4) 列地址(Y Address)設置指令</p>
60、<p> 設置了頁地址和列地址,就唯一確定了顯示RAM中的一個單元,這樣MPU就可以用讀、寫指令讀出該單元中的內容或向該單元寫進一個字節(jié)數(shù)據(jù)。</p><p><b> (5) 讀狀態(tài)指令</b></p><p> 該指令用來查詢HD61202的狀態(tài),各參量含義如下:</p><p> BUSY: 1-內部在工作 0-正常
61、狀態(tài)</p><p> ON/OFF:1-顯示關閉 0-顯示打開</p><p> REST: 1-復位狀態(tài) 0-正常狀態(tài)</p><p> 在BUSY和REST狀態(tài)時,除讀狀態(tài)指令外,其它指令均不對HD61202產(chǎn)生作用。在對HD61202操作之前要查詢BUSY狀態(tài),以確定是否可以對HD61202進行操作。</p><p
62、><b> (6) 寫數(shù)據(jù)指令</b></p><p><b> (7) 讀數(shù)據(jù)指令</b></p><p> 讀、寫數(shù)據(jù)指令每執(zhí)行完一次讀、寫操作,列地址就自動增一,必須注意的是,進行讀操作之前,必須有一次空讀操作,緊接著再讀才會讀出所要讀的單元中的數(shù)據(jù)。</p><p> 4.4.4 HY-12864的電
63、路結構特點</p><p> HY-12864是使用HD61202作為列驅動器,同時使用HD61203作為行驅動器的液晶模塊。由于HD61203不與MPU發(fā)生聯(lián)系,只要提供電源就能產(chǎn)生行驅動信號和各種同步信號,比較簡單,因此這就不做介紹了。</p><p> 下面主要介紹以下HY-12864這個模塊的邏輯電路圖。HY-12864共有兩片HD61202和一片HD61203,如下圖4-9所
64、示。</p><p> 圖4-9 HY-12864的邏輯電路圖</p><p> 在HY-12864中,兩片HD61202的ADC均接高電平,RST也接高電平,這樣在使用HY-12864時就不必再考慮這兩個引腳的作用。/CSA跟HD61202(1)的/CS1相連;/CSB跟HD61202(2)的CS1相連,因此/CSA、/CSB選通組合信號為/CSA,/CSB=01選通(1),/CSA
65、,/CSB=10選通(2)。對于HY-12864,只要供給VDD、VSS和V0即可,HD61202和HD61203所需的電源將由模塊內部電路在VDD和V0、VSS的作用下產(chǎn)生。</p><p> 4.4.5 HY-12864的應用</p><p> 以下內容為以單片機8031為例機的接口電路,電路原理圖如圖4-10所示??刂齐娐窞橹苯釉L問方式的接口電路。</p><
66、p> 圖4-10 8031與液晶的接口電路</p><p> 根據(jù)以上電路原理圖中液晶的各引腳與單片機的接法,可得本設計的液晶模塊電路如圖4-11所示。VSS接地;數(shù)字電源VDD接+5V;對比度控制電壓V0接電位器,可通過調節(jié)電位器調整液晶亮度;數(shù)據(jù)、指令選擇信號RS接單片機P2.0口;讀寫選擇信號R/W接單片機P2.1口;單片機讀、寫選通信號/RD、/WR通過與非門接液晶的讀寫使能信號E;DB0~D
67、B7分別接單片機的P0.0~P0.7口;芯片1、芯片2的片選分別接單片機的P2.2、P2.3口;復位端RST、背光正電源LEDA接+5V;液晶驅動電壓VEE、背光負電源LEDK接地。</p><p> 圖4-11 液晶模塊電路</p><p><b> 4.5 鍵盤電路</b></p><p> 本設計共采用按鍵3個,分別與單片機的P1
68、.7、P1.6、P1.5口相連,分別對應光標移動,時間、日期調整,退出、鬧鈴開關鍵的功能。與單片機的接法可參照附錄1——電子萬年歷設計電路原理圖。</p><p><b> 4.6 鬧鈴電路</b></p><p> 當鬧鈴顯示“關”時,鬧鈴不起作用;當鬧鈴顯示“開”時,設定鬧鈴時間,鬧鈴時間只可設定時和分,當前時間不斷與設定的鬧鈴時間比較,不相等時不產(chǎn)生任何現(xiàn)象
69、,一旦相等,P3.5輸出一個高電平使三極管導通,從而使蜂鳴器工作,鬧鈴起作用。鬧鈴電路如圖4-12所示。</p><p> 圖4-12 鬧鈴電路</p><p><b> 5 系統(tǒng)程序的設計</b></p><p> 5.1 陽歷程序的設計</p><p> 因為使用了時鐘芯片DS1302,陽歷程序只需從DS1
70、302各寄存器中讀出年、周、月、日、[小]時、分、秒等數(shù)據(jù),再處理即可。在首次對DS1302進行操作之前,必須對它進行初始化,然后從DS1302中讀出數(shù)據(jù),再經(jīng)過處理后,送給顯示緩沖單元。陽歷程序流程圖見圖5-1所示。 </p><p> 圖5-1 陽歷程序流程圖</p><p> 5.2 時間調整程序設計</p><p> 調整時間用三個調整按鈕,一個作為移
71、位、控制用,一個作為加用,一個作為退出調整和鬧鈴開關用。分別定義為控制按鈕、加按鈕、退出按鈕。在調整時間過程中,要調整的位與別的位應該有區(qū)別,所以增加了閃爍功能,即調整的位一直在閃爍,直到調整下一位。閃爍原理就是,讓要調整的一位每隔一定的時間熄滅一次,例如間隔時間為50ms。利用定時器計時,當達到50ms溢出時,就送給該位熄滅符,在下一次溢出時,再送正常顯示的值,不斷交替,直到調整該位結束。此時送正常顯示值給該位,再進入下一位調整閃爍程
72、序。時間調整程序流程圖如圖5-2所示。</p><p> 圖5-2 時間調整程序流程圖</p><p> 5.3 陰歷程序設計</p><p> 陰歷程序的實現(xiàn)是要靠陽歷日期來推算的。要根據(jù)陽歷來推算陰歷日期,首先要設計算法。推算方法是,根據(jù)陽歷當前日期在一年中的天數(shù)來計算陰歷日期。陽歷一個月不是30天就是31天(2月除外,閏年2月為29天,平年2月為28天)
73、。陰歷一年有12個月或13個月(含閏月),一個月為30天或29天。如果把一個只有29天的月稱為小月,用1為標志,把30天的月稱為大月,用0為標志,那么12位二進制就能表示一年12個月的大小。如果有閏月,則把閏月的月份作為一個字節(jié)的高4位,低4位表示閏月大小,大月為0,小月為1,這樣一個字節(jié)就包括了所有閏月的信息。陰歷春節(jié)和陽歷元旦相差的天數(shù)也用一個字節(jié)表示。總共用4字節(jié)就可以存儲一年中任何一天陽歷和陰歷的對應關系的有關數(shù)據(jù),例如2004
74、年的陰歷和陽歷對應關系如表5-1所示。</p><p> 表5-1 2004年的陰歷和陽歷對應關系表</p><p> 2004年的春節(jié)和元旦差21天,這樣2004年的信息表示為:21,42H,52H,21H。其中表示12個月大小信息的字節(jié),第4位和第7位不用,第1個字節(jié)為十進制,其它的都為十六進制。按此方法,50年的陽歷和陰歷對應關系表總共使用200字節(jié)。</p>&
75、lt;p> 有了算法和數(shù)據(jù)以后,就可以設計軟件了。先要根據(jù)當前陽歷的日期,算出陽歷為該年中的第幾天。圖5-3為計算陽歷中任何一天在該年中為第幾天的程序流程圖。</p><p> 圖5-3 計算陽歷天數(shù)程序流程圖</p><p> 計算出當前陽歷日期為該年中的第幾天后,再減去陽歷該年春節(jié)和元旦的日差,如果夠減,則相減的結果就是陰歷在該年中的總第幾天了。根據(jù)該數(shù)據(jù)就可以推算出具體的
76、當前陰歷日期;如果不夠減,則表示當前陰歷年為陽歷年的前一年。這種情況下,根據(jù)實際,當前陰歷日期會處于陰歷11月或12月,此時春節(jié)和元旦的日差減去前面計算出的當前陽歷日期在陽歷年為第幾天的數(shù)據(jù),其結果表示當前陰歷日期離春節(jié)的天數(shù)。計算出的陽歷天數(shù)為該年的第幾天,存放在寄存器R2和R3中。計算出天數(shù)后,如果大于#FFH,則把#FFH存放在R2中,余值存放在R3中。也就是說在用寄存器R2和R3表示的天數(shù)信息中,R2充當主寄存器,數(shù)據(jù)先存滿R2
77、,再存R3。在整個轉換程序中,這里面的數(shù)據(jù)不能被覆蓋。</p><p> 計算出陽歷總天數(shù)后,就可以根據(jù)它來推算陰歷日期。推算方法是,先用總天數(shù)減去春節(jié)和元旦的日差,如果結果為1,則該天正好是春節(jié)(因為春節(jié)在元旦之后,在計算春節(jié)和元旦的日差時,假設元旦為0天,春節(jié)為n天,則日差為n。而前面計算的陽歷總天數(shù)是該天在該年中的第幾天,是以元旦為1而得到的,與計算春節(jié)和元旦日差的這樣方法相比,其數(shù)值少了1,所以要在原來
78、本應該以0作為該天就是春節(jié)的依據(jù)的基礎上加1,所以以1作為該天是春節(jié)的標志);如果結果小于1,則陰歷應該是陽歷的前一年;如果結果大于1,說明陽歷和陰歷為同一年。再根據(jù)查表所得的該年的陰歷的閏年和大小月的信息,就可以推算出該天的陰歷日期了。圖5-4為由總天數(shù)推算出陰歷日期的程序流程圖。</p><p> 圖5-4 推算陰歷日期的程序流程圖</p><p><b> 6 測試結果
79、</b></p><p> 設計完成后,給系統(tǒng)上電,液晶顯示屏顯示結果如圖6-1所示。</p><p> 圖6-1 液晶顯示屏的顯示結果</p><p> 調節(jié)10K電位器R4可調整液晶顯示屏的亮度。調整到合適亮度后,按控制按鈕,光標會從陽歷年位開始閃爍,進入設定調整狀態(tài)。此時按加按鈕,當前數(shù)字就可改變。按一次,數(shù)字加1;若長按,則數(shù)字連續(xù)加。此時
80、,調整的位一直在閃爍,直到再次按光標移動控制位,光標跳到下一位閃爍。調整順序依次為:陽歷年、月、日,陰歷年、月、日,時、分、秒,鬧鈴時、分。當全部參數(shù)調整完畢后,按退出按鈕,光標停止閃爍,退出設定調整狀態(tài);當再次按下此按鈕,鬧鈴顯示“開”;當?shù)谌伟聪麓随I,鬧鈴顯示“關”。若當前月為閏月,則屏幕左下角會顯示“閏月”;若不是閏月,則無顯示。</p><p> 調試分為硬件調試和軟件調試。硬件調試主要是檢測硬件電路
81、是否有短路、斷路、虛焊等。DS1302的硬件電路很簡單,只通過3根線與單片機相連,很容易檢測,主要是檢查其引腳,如晶振和電源等是否接好。另外可以通過軟件來調試硬件,如為了測試顯示電路連接是否正確,可以編寫一個簡單的顯示程序來測試它。接下來可進行軟件調試,可以編寫只含DS1302的計時和讀寫程序、顯示程序,測試DS1302是否正常工作。最后調試時間調整程序和陰歷推算程序。</p><p> 計時器最關鍵的是計時的
82、精度。電子萬年歷中DS1302電路使用專用的晶振,經(jīng)測試制作的電子萬年歷,一星期快了3s左右,誤差較大,實驗設計中可換用標準晶振或用軟件進行修正。</p><p><b> 7 結論</b></p><p> 本設計硬件電路較簡單,所用器件較少,電路中使用了AT89S52單片機、DS1302時鐘芯片、24C02FLASH存儲器和HY-12864液晶顯示器等主要芯片
83、,實現(xiàn)了預計功能。</p><p> 在對芯片的管腳功能和用法有充分的了解后,根據(jù)設計要求設計硬件電路,包括單片機控制電路、時鐘電路、存儲電路、鍵盤掃描電路、顯示電路和鬧鈴電路。然后通過軟件編程,實現(xiàn)了對年、月、日、時、分、秒、星期、閏年和陰歷的自動調整,用按鍵進行控制,用液晶模塊進行顯示,并具有鬧鈴功能。</p><p> 電子萬年歷可以正常顯示時間并進行時間調整,基本完成了預期要實
84、現(xiàn)的目標。</p><p><b> 參考文獻</b></p><p> [1] 吳金戌,沈慶陽.8051單片機實踐與應用,北京:清華大學出版社,2003.12,26-38.</p><p> [2] 何立民.單片機應用文集,北京:北京航空航天大學出版社,1991,53-72.</p><p> [3] 公茂法.
85、單片機人機接口實例集,北京:北京航空航天大學出版社,1998.2,32-59.</p><p> [4] 何立明.單片機高級教程——應用與設計,北京:北京航天航空大學出版社,2000.4,149-173.</p><p> [5] 李廣弟,朱月秀.單片機基礎,北京:北京航空航天大學出版社,2001.8,36-85.</p><p> [6] 樓然苗,李光飛.M
86、CS-51系列單片機設計實例,北京:北京航天航空大學出版社,2001.3,75-83.</p><p> [7] 李華.單片機原理與接口技術,北京:清華大學出版社,33-80.</p><p> [8] 王偉.高性能、低功耗帶RAM實時時鐘芯片DS1302(上),電子世界:第一期,</p><p> 1995,26-35.</p><p&g
87、t; [9] 王偉.高性能、低功耗帶RAM實時時鐘芯片DS1302(下),電子世界:第四期,1995,32-41.</p><p> [10] 劉光潭.中外集成電路簡明速察手冊,上海:電子工業(yè)出版社,1991.</p><p> [11] 一九九九年產(chǎn)品目錄(第一期),武漢力源股份有限公司,1999.</p><p> [12] 劉利.液晶顯示原理,上海:電
88、子工業(yè)出版社,2002.5,52-70.</p><p> [13] 李宏,張家田.液晶顯示器件應用技術,北京:機械工業(yè)出版社,2004,156-183.</p><p> [14] 沈慶陽.漢字顯示應用技術,上海:電子工業(yè)出版社,2002.3,128-139.</p><p> [15] MAXIM.NEW RELEASES DATA BOOK (VOLUM
89、E V),AMERICA,1996.</p><p><b> 致 謝</b></p><p> 不知不覺,十二周的畢業(yè)設計結束了。我的畢業(yè)論文已整理完畢,電路調試進展良好。畢業(yè)設計的完成意味著我的大學學習生活即將結束,從此我將進入一個新的人生旅途、開始一段嶄新的生活——工作。在此,我衷心地感謝所有在我做畢業(yè)設計期間幫助過我的人。 </p><
90、p> 首先我要感謝我的指導老師李杰的大力幫助和支持。在整個設計過程當中,李老師在大局上指導我畢業(yè)設計的每一進程,還在百忙中抽空為我答疑解難,幫我分析講解畢業(yè)設計中所遇到的問題。不僅如此,李老師還無私的給我提供了豐富的學習資源和良好的學習環(huán)境,為我的畢業(yè)設計帶來了很大方便。同時在我完成畢業(yè)設計的過程中提供了很多指導性的意見,使我受益匪淺。另外,李老師淵博的學識、嚴謹?shù)闹螌W態(tài)度和為人給了我很大的教育,這些將使我終身受益。在此,我衷心
91、感謝李老師給予我的幫助和教育。</p><p> 此外,我還要感謝胡建明老師和陳海山同學給予我的無私的幫助,他們在程序編寫和調試過程中給予了我莫大的幫助。在此,我真誠地感謝他們。</p><p> 最后,我要感謝我的母?!旖蚬こ處煼秾W院,在校期間,這里給我留下了美好的回憶。特別是在我即將踏上工作崗位的同時,畢業(yè)設計整個過程給了我這樣一個鍛煉的機會,使我加深了對以前知識的理解和鞏固,
92、拓寬了知識面,也提高了我對所學知識的綜合應用能力。我要對母校說:母校有我三五載,我愛母校一萬年。祝愿母校的將來更美好!</p><p> 附錄1:電子萬年歷設計電路原理圖</p><p><b> 附錄2 主程序</b></p><p> MAIN: MOV SP,#70H</p><p> LCALL DE
93、LAY</p><p> ;LCALL DELAY</p><p> ;LCALL DELAY</p><p> MOV 59H,#00H ;判斷調整地址</p><p> CLR 22H ;停止周期第三位閃爍</p><p> CLR 23
94、H ;判斷是否開鬧鈴</p><p><b> CLR P3.5</b></p><p> MOV IE,#00H ;關所有中斷</p><p> MOV TMOD,#10H</p><p> MOV TL1,#0F0H</p>
95、<p> MOV TH1,#00H</p><p> ;MOV IP,#01H</p><p> ;SETB EX0 ;開外中斷</p><p> SETB EA ;開總中斷允許</p><p> LCALL VIICREAD ;將EEPROM中
96、原頻率數(shù)據(jù)調入內存</p><p> ;MOV 65H,#00H</p><p> ;MOV 66H,#00H</p><p> ;MOV 67H,#00H</p><p> ;MOV 68H,#00H</p><p> LCALL INT</p><p> LCALL CL
97、EAR</p><p> LCALL INTSHI</p><p> LCALL DDD ;靜態(tài)字顯示</p><p><b> ;以下字為動態(tài)顯示</b></p><p> DONGXIAN:MOV DPTR,#CCTAB</p><p> MOV
98、 ZIDI,DPL</p><p> MOV ZIGAO,DPH</p><p> MOV DONGXH, #1CH</p><p> DXH1: MOV PAGER, #00H ;16X16點陣字體,第2頁</p><p> MOV COLUMN,#00H ;起始列為第0
99、列</p><p> MOV CODER,#00H ;字符代碼</p><p> LCALL CCW_PR</p><p> MOV PAGER,#00H</p><p> MOV COLUMN,#10H</p><p> MOV CODER,#01H</
100、p><p> LCALL CCW_PR</p><p> MOV PAGER,#00H</p><p> MOV COLUMN,#20H</p><p> MOV CODER,#02H</p><p> LCALL CCW_PR</p><p> MOV
101、 PAGER, #00H ;16X16點陣字體,第2頁</p><p> MOV COLUMN,#30H ;起始列為第0列</p><p> MOV CODER,#03H ;字符代碼</p><p> LCALL CCW_PR</p><p> MOV
102、 PAGER,#00H</p><p> MOV COLUMN,#40H</p><p> MOV CODER,#04H</p><p> LCALL CCW_PR</p><p> MOV PAGER,#00H</p><p> MOV COLUMN,#50H</p
103、><p> MOV CODER,#05H</p><p> LCALL CCW_PR</p><p> MOV PAGER,#00H</p><p> MOV COLUMN,#60H</p><p> MOV CODER,#06H</p><p> L
104、CALL CCW_PR</p><p> MOV PAGER,#00H</p><p> MOV COLUMN,#70H</p><p> MOV CODER,#07H</p><p> LCALL CCW_PR</p><p> LCALL DELAY</p>
105、<p> CLR C ; 動態(tài)顯示循環(huán)程序控制</p><p> MOV A,ZIDI</p><p> ADD A,#20H</p><p> MOV ZIDI,A</p><p> MOV A,ZIGAO</p>&l
106、t;p> ADDC A,#00H</p><p> MOV ZIGAO,A</p><p> L1: MOV 3CH,#0F7H ;開始鍵掃描</p><p> MOV 3DH,#00H</p><p> L2: MOV A,3CH</p><p
107、><b> MOV P1,A</b></p><p><b> MOV A,P1</b></p><p><b> MOV 3EH,A</b></p><p><b> SETB C</b></p><p> MOV 3FH,#04H<
108、;/p><p> L3: RLC A</p><p> JNC MNJIXU</p><p><b> INC 3DH</b></p><p> DJNZ 3FH,L3</p><p> LCALL DISP1</p><p><b> MOV A,
109、3CH</b></p><p><b> SETB C</b></p><p><b> RRC A</b></p><p><b> MOV 3CH,A</b></p><p><b> JC L2</b></p>&l
110、t;p><b> JMP MNMN</b></p><p> MNJIXU:MOV A,P1</p><p><b> XRL A,3EH</b></p><p><b> JNZ DF3</b></p><p> AJMP DF3
111、 ; MNJIXU</p><p> DF3: CLR C</p><p><b> MOV A,3DH</b></p><p><b> RLC A</b></p><p> MOV DPTR,#TABLE</p><p> JMP @A+DPTR&
112、lt;/p><p> AJMP DONGXIAN</p><p> TABLE: AJMP MN0 ;鍵盤入口地址</p><p><b> AJMP MN1</b></p><p><b> AJMP MN2</b></p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論