版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 基于Proteus多功能電子萬年歷的設計與實現(xiàn)</p><p><b> 摘 要</b></p><p> 本文基于Proteus多功能電子萬年歷的設計并實現(xiàn)了其功能。主要是借助電路仿真軟件Proteus,在硬件方面主要采用AT89S51單片機作為主控核心,由LCD1點陣液晶顯示屏顯示??梢詫δ辍⒃隆⑷?、星期、時、分、秒進行計時,還具有閏
2、年補償?shù)榷喾N功能,可以同時顯示年、月、日、時、分、秒等信息。在軟件方面,主要包括日歷程序、時間調(diào)整程序和顯示程序。</p><p> 關鍵詞:Proteus ;AT89S51;單片機;電子萬年歷</p><p> Design and Realization of multi function electronic calendar based on Proteus</p>
3、<p><b> Abstract</b></p><p> In this paper, the design of multi function electronic calendar based on Proteus and the realization of its function. By means of circuit simulation software
4、 Proteus, in terms of hardware using AT89S51 microcontroller as the main control center, by LCD dot matrix LCD display. For years, month, day, week, hour, minutes and seconds for time, but also has a leap year compensati
5、on and other functions, can display year, month, day, time, minutes, seconds and other information. In the software aspect,</p><p> Key words:Proteus;AT89S51;Single chip microcomputer;Electronic calendar<
6、;/p><p><b> 目錄</b></p><p> 1 綜 述1</p><p> 1.1 單片機及多功能電子萬年歷的發(fā)展簡述1</p><p> 1.2 單片機及電子萬年歷國內(nèi)外發(fā)展狀況2</p><p><b> 2 開發(fā)平臺3</b>&l
7、t;/p><p> 2.1 Keil uVision3介紹3</p><p> 2.2 單片機仿真軟件Proteus4</p><p><b> 3 硬件設計5</b></p><p> 3.1 AT89S51引腳及功能5</p><p> 3.2 AT89
8、S51的內(nèi)部結構6</p><p> 3.2.1 電路設計框圖7</p><p> 3.2.2 主要單元電路設計8</p><p> 3.2.3 單片機中斷9</p><p> 3.3 LCD液晶顯示器9</p><p> 3.4 按鍵系統(tǒng)11</p><p>
9、; 4 程序設計12</p><p> 4.1 定時器模塊12</p><p> 4.2 外部中斷響應模塊13</p><p> 4.3 主函數(shù)模塊14</p><p> 4.4 判斷閏年每月天數(shù)15</p><p> 4.5 時間調(diào)整16</p><p>
10、 5 系統(tǒng)仿真與調(diào)試18</p><p> 5.1 系統(tǒng)仿真18</p><p> 5.1.1 系統(tǒng)原理電路圖繪制18</p><p> 5.1.2 Keil 工程的建立19</p><p> 5.2 系統(tǒng)調(diào)試20</p><p> 5.2.1 LCD液晶顯示調(diào)試20</p>
11、;<p> 5.2.2 定時器調(diào)試21</p><p> 5.2.3 中斷函數(shù)調(diào)試21</p><p> 6 測試結果與分析22</p><p> 6.1 代碼的功能22</p><p> 6.2 測試結果分析25</p><p> 7 實驗總結28</p>
12、<p><b> 致 謝29</b></p><p><b> 參考文獻30</b></p><p><b> 附 錄31</b></p><p><b> 緒論</b></p><p> 隨著科技的快速發(fā)展,自從觀太
13、陽、擺鐘到現(xiàn)在電子鐘,在人們的不斷研究,不斷創(chuàng)新之下一步步進步。本次課題主要介紹了基于Proteus的多功能電子萬年歷的設計與實現(xiàn),多功能電子萬年歷是這一發(fā)展趨勢中的代表,它順應了時代的進步,符合人們對時間方面的要求。它的出現(xiàn)給人們的日常生活帶來的諸多方便,在時間極顯寶貴的現(xiàn)代已經(jīng)廣泛應用于各個領域,其作用更是不言而喻。而且多功能電子萬年歷采用直觀的數(shù)字顯示,可以同時顯示年、月、日、時、分、秒等信息,還具有時間校準等功能。本次課題主要研
14、究液晶顯示器LCD與單片機之間的硬件互聯(lián)及通信,對數(shù)種硬件連接方案進行了詳盡的比較,在軟件方面對日歷算法也進行了論述。其功耗小,可選用4~6V電壓為其供電,更符合消費者的生活需求。</p><p> 1.1 單片機及多功能電子萬年歷的發(fā)展簡述</p><p> 單片微型計算機簡稱單片機,是典型的嵌入式微控制器,其英文縮寫為MCU,它最早是用在工業(yè)控制領域。從1972年至今單片機經(jīng)歷了四
15、個階段的發(fā)展,從Inter公司推出的MCS-8為代表的單片機到第二階段的部分功能優(yōu)化,再到8位至16的轉(zhuǎn)變,衍生到今天的單片機用于生活和各個工業(yè)用途。</p><p> 自從觀太陽、擺鐘到現(xiàn)在電子鐘,人類不斷研究,不斷創(chuàng)新紀錄,科學技術的不斷提高,計算機科學技術的日漸成熟,為人類的高品質(zhì)生活提供了強有力的后盾。科學技術介入人類的生活,這是社會發(fā)展的必然趨勢,而萬年歷是這一發(fā)展趨勢中的代表,萬年歷順應了人們對時間
16、方面的要求,它的出現(xiàn)給人們的生活帶來的諸多方便,在時間極顯寶貴的現(xiàn)代生活中,已經(jīng)廣泛應用于各個領域,其作用更是不言而喻。相比起傳統(tǒng)的時間工具,本系統(tǒng)有著精確顯示時間計算,清晰、全面的顯示信息界面,沒有厭余數(shù)據(jù),且具有溫度、農(nóng)歷顯示等功能,這些是傳統(tǒng)時間工具無法達到的。而相比市場出售的其他高科技時間工具,本系統(tǒng)有著制作簡單,成本低廉等市場優(yōu)勢。 </p><p> 1.2單片機及電子萬年歷國內(nèi)外發(fā)展狀況
17、</p><p> 隨著微電子技術的高速發(fā)展,單片機在國民經(jīng)濟的個人領域得到了廣泛的運用。單片機開發(fā)技術已成為電子信息、電氣、通信、自動化、機電一體化等專業(yè)技術人員必須掌握的技術。</p><p> 在國內(nèi):單片機的學習呈上升趨勢,但很多人學習是無頭緒,不知道從何入手,行業(yè)發(fā)展迅速,國內(nèi)生產(chǎn)技術不斷提升。國內(nèi)企業(yè)為了獲得更大的投資收益,在生產(chǎn)規(guī)模和產(chǎn)品質(zhì)量上不斷提升,開發(fā)單片機呈必然趨
18、勢。我國生產(chǎn)的多功能電子萬年歷有很多,總體上來說是研究多功能電子萬年歷為主,商家生產(chǎn)的電子萬年歷更從質(zhì)量、價格、實用上考慮不斷改變電子萬年歷的設計,使其更有市場。在科技發(fā)達的今天,智能化必將是以后的發(fā)展趨勢,所以開發(fā)活和學習單片機是社會發(fā)展的必然需求。</p><p> 在國外:最具有代表性的計時產(chǎn)品就是電子萬年歷,它是近代世界鐘表業(yè)界的第三次革命。前兩次革命是擺和擺輪游絲的發(fā)明,以及石英晶體振蕩器的應用,第三
19、次革命就是單片機數(shù)碼計時技術的應用,使得從原來傳統(tǒng)指針計時的方式發(fā)展為人們?nèi)粘8鼮槭煜さ囊构鈹?shù)字顯示方式,直觀明了,并增加了全自動日期,星期,溫度以及農(nóng)歷等顯示功能,它更符合消費者的生活需求。因此,電子萬年歷的出現(xiàn)帶來了鐘表計時業(yè)界跨越性的進步。</p><p> 當前,電子萬年歷技術已經(jīng)進入了優(yōu)化人-家庭-環(huán)境的整體關系的階段,它向著超微型、超高效以及集成電路的微型化方向發(fā)展,并為電子萬年歷上的集中控制提供了
20、基礎。目前,市場上出售的萬年歷品種很多,其中大部分是基于單片機技術設計的電子系統(tǒng)。當今,數(shù)字萬年歷主要還是用于計時、自動報時、定時、日期查詢以及自動控制等方面。由于單片機技術以及數(shù)字集成電路技術的發(fā)展和采用了先進的石英技術,使得如今的數(shù)字萬年歷系統(tǒng)具有體積小、耗電省、計時準確、性能穩(wěn)定、維護方便、走時準確、攜帶方便等優(yōu)點,此外,現(xiàn)在市場上已有現(xiàn)成的數(shù)字萬年歷集成電路芯片出售,而且價格便宜、使用也很方便。</p><p
21、><b> 2 開發(fā)平臺</b></p><p> 本節(jié)主要介紹開發(fā)平臺,兼容單片機C語言軟件開發(fā)系統(tǒng)Keil uVision3軟件和單片機仿真軟件Proteus。</p><p> 2.1 Keil uVision3介紹</p><p> 圖2.1 Keil uVision3軟件</p><
22、;p> Keil uVision3是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。 </p><p> Keil
23、uVision3工具包為for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標準的Hex文件,以供調(diào)試器dScope51或tScope51使用進行源
24、代碼級調(diào)試,也可由仿真器使用直接對目標板進行調(diào)試,也可以直接寫入程序存貯器如EPROM中。 </p><p> 相比起其他單片機的開發(fā)軟件,Keil uVision3生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。編譯后能生成.hex文件,能直接為ISIS 7 Professional仿真軟件所使用。</p
25、><p> 2.2單片機仿真軟件Proteus</p><p> 圖2.2 Proteus單片機仿真軟件</p><p> 在Proteus是英國Labcenter公司開發(fā)的電路及點偏激系統(tǒng)設計與仿真軟件。它可以實現(xiàn)數(shù)字電路,模擬電路及為控制器系統(tǒng)與外設的混合電路系統(tǒng)的電路仿真、軟件仿真、 系統(tǒng)協(xié)同仿真和PCB設計等功能。它能對各種處理器進行實時仿真、調(diào)試與測試的
26、EDA工具,真正實現(xiàn)了再沒有目標原型是就可以對系統(tǒng)進行調(diào)試測試與驗證。Proteus提供了30多個元件庫和7000余個元器件。元件涉及電阻、電容、二極管、三極管、變壓器、放大器、各種激勵源等等。SIS 7 Professional能完成原理圖設計的仿真平臺,用于電路原理圖的設計以及交互式仿真。通過Keil uVision3編譯生成的.hex文件能直接用于Proteus所設計的電路圖上。</p><p><b
27、> 3 硬件設計</b></p><p> 微機處理系統(tǒng)中硬件的選擇直接影響系統(tǒng)的功能及穩(wěn)定性。選擇功能適合,少發(fā)生偶合的硬件設備,是整個系統(tǒng)設計的關鍵部分,所以本次設計選擇AT89S51進行實驗。</p><p> 3.1 AT89S51引腳及功能</p><p> AT89S51是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含4k By
28、tes ISP的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統(tǒng)及80C51引腳結構,芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,AT89S51在眾多嵌入式控制應用系統(tǒng)中得到廣泛應用。</p><p> AT89S51采用的是40只引腳的雙列直插式封裝,如圖3.1所示。</p><p>
29、圖3.1 AT89S51引腳圖</p><p><b> 電源及晶振引腳 </b></p><p> Vcc(第40腳):+5V電源引腳; Vss(第20腳):接地引腳; </p><p> XTAL1、XTAL2(第19、18腳):外接晶振的兩個引腳。</p><p><b> 控
30、制引腳</b></p><p> RST/Vpd(第9腳):復位/備用電源引腳; </p><p> ALE/PROG(第30腳):地址鎖存使能輸出/編程脈沖輸入;</p><p> PSEN(第29腳):輸出訪問片外程序存儲器讀選通信號;</p><p> EA/Vpp(第31腳):外部ROM允許訪問/編程電源
31、輸入。</p><p><b> 并行I/O口引腳</b></p><p> 并行I/O口共有32只引腳,其中:</p><p> P0.0~P0.7(第39~32腳)統(tǒng)稱為P0口;</p><p> P1.0~P1.7(第1-8腳)統(tǒng)稱為P1口;</p><p> P2.0~P2.7(
32、第21~28腳)統(tǒng)稱為P2口;</p><p> P3.0~P3.7(第10~17腳)統(tǒng)稱為P3口,作為一般I/O口使用。</p><p> 3.2 AT89S51的內(nèi)部結構</p><p> 其內(nèi)部結構包含了作為微型計算機所必需的基本功能部件,如CPU、RAM、ROM、定時/計數(shù)器和可編程并行I/O口、可編程串行口等。這些功能部件通常都掛靠在單片機內(nèi)部總線上
33、,通過內(nèi)部總線傳送數(shù)據(jù)信息和控制信息。其內(nèi)部基本結構如圖3.2所示。</p><p> 圖3.2 硬件系統(tǒng)組成結構框圖</p><p> 1.中央處理器(CPU):整個單片機的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進制數(shù)據(jù)或代碼,CPU負責控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工作,完成運算和控制輸入輸出功能等操作。 </p><p> 2.數(shù)據(jù)
34、存儲器(RAM):片內(nèi)有128個8位用戶8個據(jù)存儲單元和128個專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個,可存放讀寫的數(shù)據(jù)、運算的中間結果或用戶定義的字型表, </p><p> 3.程序存儲器(ROM):共有4096個8位掩膜ROM,用于存放用戶程序、原始數(shù)據(jù)或表格。 </p>
35、<p> 4.中斷系統(tǒng):具備較完善的中斷功能,有兩個外中斷、兩個定時/計數(shù)器中斷和一個串行中斷,可滿足不同的控制要求,并與2級的優(yōu)先級別選擇。 </p><p> 5.定時器/計數(shù)器:片內(nèi)有2個16位的可編程定時器/計數(shù)器,以實現(xiàn)定時或計數(shù)產(chǎn)生中斷,用于控制程序轉(zhuǎn)向。 </p><p> 6.串行口:內(nèi)置1個全雙工的串行通信口,用于與其它設備間的串行
36、數(shù)據(jù)傳送,該串行口既可以用作異步通信接發(fā)器,也可以當同步移位器使用。 </p><p> 7.并行輸入/輸出(I/O)口:共有4組8位并行I/O口(P0、P1、P2、P3),每個口都由1個鎖存器和1個驅(qū)動器組成。并行I/O口主要是用于實現(xiàn)與外部設備中數(shù)據(jù)的并行輸入/輸出,有些I/O口還具有其他功能。 </p><p> 8.特殊功能寄存器:共有21個,用于對片內(nèi)的各
37、功能的部件進行管理、控制、監(jiān)視。實際上是一些控制寄存器和狀態(tài)寄存器,是一個具有特殊功能的RAM區(qū)。 </p><p> 3.2.1 電路設計框圖</p><p> 本系統(tǒng)的電路系統(tǒng)框圖如圖2.1.3所示。AT89S51單片機對DS18B20寫入控制字并讀取相應的數(shù)據(jù),繼而控制LCM1602作出對應的顯示。</p><p> 圖3.3 電路設計框圖&l
38、t;/p><p> 3.2.2主要單元電路設計</p><p> (1) AT89S51單片機主控制模塊的設計</p><p> AT89S51是一個低功耗,高性能CMOS 8位單片機,其具有如下特點:40個引腳,4kBytes Flash片內(nèi)程序存儲器,128Bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌
39、套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時鐘振蕩器。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應不同產(chǎn)品的需求。AT89S51單片機為40引腳雙列直插芯片,有四個I/O口P0,P1,P2,P3,MCS-51單片機共有4個8位的I/O口(P0、P1、P2、P3),每一條I/O線都能獨立地作輸出或輸入。</p><p><b> (2) P
40、0口</b></p><p> P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。</p><p><b> (3) P1口</b
41、></p><p> P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 </p><p><b> (4) P2口</b></p><p&
42、gt; P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容
43、。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 </p><p><b> (5) P3口</b></p><p> P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。</p>
44、<p> 3.2.3 單片機中斷 </p><p> 典型的8051單片機有5個中斷源,可分為兩個優(yōu)先級,實現(xiàn)中斷服務嵌套。用戶可以用關中斷指令來屏蔽中斷請求,也可以用開中斷指令是CPU接受中斷申請。每一個中斷源在軟件中都可以獨立開關,級別可由用戶自行設置。下表2.1.1為中斷控制標志列表。</p><p> 表3.1 中斷控制標志列表</p>&
45、lt;p> 3.3 LCD液晶顯示器</p><p> 本系統(tǒng)選擇的LCD是AMPIRE128×64的漢字圖形型液晶顯示模塊,可顯示漢字及圖形。單片機P1口作為數(shù)據(jù)輸出口,RS,R\W,E分別通過10K的上拉電阻連接到單片機的P0.0,P0.1,P0.2。VDD接5V電源,VSS接地。VEE為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產(chǎn)生“鬼影”,使用時
46、可以通過一個10K的電位器調(diào)整對比度)。RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。R/W為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。E(或EN)端為使能(enable)端,下降沿使能。DB0-DB7為雙向數(shù)據(jù)總線,同時最高位DB7也是忙信號檢測位。BLA、BLK分別為顯示器背光燈的正、負極。液晶顯示器接口圖和管腳表如下所示。</p><p> 圖3.4 LCD液
47、晶顯示器</p><p> 表3.2 LCD接口說明表</p><p><b> 3.4 按鍵系統(tǒng)</b></p><p> 基于多功能萬年歷設置日歷、時間、鬧鐘等功能,我們決定使用button元件作為控制按鈕。Button元件在市場上到處可見,其功能單一,少偶合,反應速度快等特點。</p><p> 本系統(tǒng)使用
48、3個button元件分別作為設置位選、上調(diào)、下調(diào)等功能。3個按鍵與一個3位與門電路相連,作為整個按鍵控制功能系統(tǒng),以觸發(fā)AT89S51中斷為方式使用設置功能。其電路圖如圖3.4.1所示:</p><p> 圖3.4.1 按鍵系統(tǒng)</p><p> (1)Button1 :位選功能,設置位選位,可通過其對年、月、日、時、分、秒進行控制;</p><p> (2)
49、Button2 :上調(diào)功能,對當前所處狀態(tài)位進行上調(diào);</p><p> (3)Button3 :下調(diào)功能,對當前所處狀態(tài)位進行下調(diào)。</p><p><b> 4 程序設計</b></p><p> 單片機的微機控制系統(tǒng)設計,除了元件選擇、系統(tǒng)硬件電路設計外,最主要的工作就是如何根據(jù)每個模塊的實際需求設計出應用程序。應用程序的可靠性、高
50、效性、穩(wěn)定性直接影響系統(tǒng)的實現(xiàn)與應用。因此,程序設計在微機控制系統(tǒng)設計中占據(jù)著重要地位。</p><p> 在單片機的系統(tǒng)設計的過程中,主要分為數(shù)據(jù)處理、系統(tǒng)過程控制兩大部分。在多功能智能萬年歷系統(tǒng)中,數(shù)據(jù)獲取與數(shù)據(jù)分類占較大的比例。其中時間的計算與獲取是整個系統(tǒng)的核心所在,另外數(shù)據(jù)顯示、聲音處理、過程控制也是整個系統(tǒng)的重點。</p><p> 為了更好地完成各個部分的內(nèi)容,更方便地進
51、行調(diào)程序修改和調(diào)試排錯,我們把系統(tǒng)分為定時器模塊、外部中斷響應模塊、主函數(shù)模塊這幾大部分進行設計,并分別進行設計、編程和調(diào)試,最后通過主程序?qū)⒏鞒绦蚰K連接起來。這樣有利于程序修改和調(diào)試,增強了程序的可移植性。</p><p><b> 4.1 定時器模塊</b></p><p> 在本多功能萬年歷系統(tǒng)中,使用定時器來精確計算每一秒的時間長。首先是對定時器的選擇和
52、初始化:</p><p> 選擇定時器0,方式1。</p><p> TMOD = 0x01;</p><p> 裝載T0的初值,通過計算且與溫度傳感器公用,決定以20次溢出作為1秒的時間,故裝填</p><p> TH0 = 0x3c;</p><p> TR0 = 0xb0;</p><
53、;p> 然后啟動定時器,打開總中斷開關</p><p><b> EA = 1;</b></p><p><b> ET0=1;</b></p><p> 初始化完成后便進入中斷函數(shù)的設計。</p><p> 每一秒所產(chǎn)生的中斷要完成年、月、日、時、分、秒的計算,并為其他功能設定標志
54、位等,如聲音,溫度顯示,流程圖如圖4.1。</p><p> 圖4.1計時器中斷響應程序流程圖</p><p> 4.2外部中斷響應模塊</p><p> 本系統(tǒng)使用0號中斷,在中斷中響應設置時間、日歷和鬧鐘的功能。首先在主函數(shù)中打開0號中斷開關,響應模式,總中斷開關</p><p><b> IT0 = 1;</b&
55、gt;</p><p><b> EX0 = 1;</b></p><p><b> EA = 1;</b></p><p> 另外使用button1作為設置位選位,button2作為上調(diào),button3作為下調(diào),其功能流程圖如圖4.2所示。</p><p> 圖4.2 外部中斷響應流程圖&
56、lt;/p><p><b> 4.3 主函數(shù)模塊</b></p><p> 主函數(shù)模塊主要承擔顯示日歷、時間、星期、農(nóng)歷等信息。因為我們所設的設置位選位為七次一循環(huán),所以在平常狀態(tài)下,系統(tǒng)顯示相關信息,當進入設置狀態(tài)下,主函數(shù)流程如下。</p><p> 圖4.3 主函數(shù)流程圖</p><p> 4.4判斷閏年每月天
57、數(shù)</p><p> 閏年的二月有29天,否則則為28天,下圖是判斷閏年的每個月的天數(shù)。</p><p> 圖4.4 判斷閏年每月天數(shù)</p><p> 非閏年每個月天數(shù)流程圖與之類似,這里就不再作具體說明。</p><p><b> 4.5時間調(diào)整</b></p><p> 1.根據(jù)當
58、前的所處狀態(tài),來調(diào)整時間:滿60秒,分加1;滿60分,時加1;滿24時,日加1;滿30日,月加1;滿12月,年加1。</p><p> 圖4.5 時間調(diào)整圖</p><p> 2.時間調(diào)整程序流程,先按控制鍵進入調(diào)整狀態(tài)程序,再根據(jù)進入的狀態(tài)進行調(diào)整年月日時分秒,具體流程如下圖所示:</p><p> 圖4.6 時間調(diào)整程序秒流程圖</p>&l
59、t;p> 圖4.7 時間調(diào)整程序分流程圖</p><p><b> 5 系統(tǒng)仿真與調(diào)試</b></p><p> 仿真部分采用仿真軟件Proteus和兼容單片機C語言軟件開發(fā)系統(tǒng)Keil uVision3軟件來進行仿真和調(diào)試。</p><p><b> 5.1系統(tǒng)仿真</b></p><p
60、> 5.1.1 系統(tǒng)原理電路圖繪制</p><p> ?。?)新建文件:打開PROTEUS,點擊FILE,在彈出的下拉菜單中選擇NEW DESIGN,即進入原理圖繪制界面。</p><p> (2)元器件選?。喊丛O計要求,在對象選擇窗口中點P,彈出PICK DEVICES對話框,在KEYWORDS中填寫要選擇的元器件,然后在右邊對話框中選中要選的元器件,則元器件列在對象選擇的窗口
61、中。</p><p> ?。?)放置元器件、電源和地、連線,得到系統(tǒng)電路圖,最后進行電氣檢測。</p><p> 圖5.1 總體電路硬件原理圖</p><p> 5.1.2 Keil 工程的建立</p><p><b> 1.源文件的建立</b></p><p> 使用菜單“File-&g
62、t;New”或者點擊工具欄的新建文件按鈕,即可在打開的文本編緝窗口中輸入源程序,保存該文件,注意必須加上擴展名。</p><p><b> 2.建立工程文件</b></p><p> 點擊“Project->New Project… ”菜單,出現(xiàn)一個對話框,在編緝框中輸入文件名,點擊“保存”按鈕。在Project->Option for target出
63、現(xiàn)第二個對話框選擇目標 CPU(本次設計選擇 Atmel 公司的 AT89C52 芯片)。此時,在工程窗口的文件頁中出現(xiàn)了“Target 1”,點擊“Source Group1”右鍵,選中其中的“Add file to Group‘Source Group1’”,出現(xiàn)一個對話框,要求尋找源文件(注意,該對話框下面的“文件類型” 默認為 C source file(*.c),也就是以 C 為擴展名 的文件),雙擊該文件,將文件加入項目。雙
64、擊文件名,即打開該源程序。工程建立好以后,對工程進行進一步的設置,以滿足要求。 </p><p> 首先點擊左邊Project窗口的Target 1,然后使用菜單“Project->Option for target ‘target1’” 設置對話框中的Target頁面,Xtal后面的數(shù)值是晶振頻率值,本次設計設置為12MHz;Memory Model用于設置RAM使用情況選擇Small;Compact
65、是可以使用一頁外部擴展RAM,而Larget則是可以使用全部外部的擴展RAM。Code Model 用于設置ROM空間的使用選擇none。</p><p> 設置對話框中的OutPut頁面中Creat Hex file用于生成可執(zhí)行代碼文件(可以用編程器寫入單片機芯片的HEX格式文件,文件的擴展名為.HEX)。</p><p><b> 3.編譯、連接</b>&l
66、t;/p><p> 選擇菜單 Project->Build target,對當前工程進行連接, 獲得*.hex的文件,該文件即可被編程器讀入并寫到芯片中,同時還產(chǎn)生了一些其它相關的文件,可被用于Keil的仿真與調(diào)試。</p><p> 仿真部分采用Protus professional和Keil軟件結合完成設計,功能強大且操作較為簡單,可以很容易的實現(xiàn)各種系統(tǒng)的仿真。</p&g
67、t;<p> 最后得出系統(tǒng)仿真結果如下。</p><p> 圖5.2 多功能萬年歷系統(tǒng)仿真效果圖</p><p><b> 5.2 系統(tǒng)調(diào)試</b></p><p> 系統(tǒng)調(diào)試主要是在電路原理圖仿真過程中出現(xiàn)的系統(tǒng)功能、仿真結果的性能誤差分析,下面我們從系統(tǒng)模塊進行調(diào)試和分析。</p><p>
68、5.2.1 LCD液晶顯示調(diào)試</p><p> 這是整個系統(tǒng)可觀賞性的比分,LCD顯示時間空隙必須控制在一定的范圍內(nèi),如果時間短了,LCD會出現(xiàn)顯示不完整的情況;如果空隙時間長了,液晶顯示就會閃爍的情況,所以其中對于度的把握非常重要。同時也要考慮在編譯過程中,除了顯示間隙還要算上系統(tǒng)數(shù)據(jù)處理與控制的時間間隙,否則同樣會出現(xiàn)閃爍的情況。經(jīng)過幾天的測試與調(diào)試,最終LCD顯示完整,沒有出現(xiàn)顯示問題。</p&g
69、t;<p> 5.2.2 定時器調(diào)試</p><p> 定時器調(diào)試主要看“秒”這位的跳動是否精確,這個需要長時間的驗證。同時,在定時器內(nèi)處理的數(shù)據(jù)也要精確,因為定時器內(nèi)處理數(shù)據(jù)也花費時間,而這段時間沒有算到定時器內(nèi)。經(jīng)過長時間的運行,調(diào)試,最后把誤差范圍調(diào)整到1天±0.001秒。</p><p> 5.2.3 中斷函數(shù)調(diào)試</p><p&g
70、t; 中斷函數(shù)是系統(tǒng)與用戶交互的最要途徑,用戶可以通過連接中斷的按鈕操作系統(tǒng),設置日期、時間、鬧鐘等信息。因為中斷響應速度與認為按鍵的速度有事會存在偏差,進過多次試驗后,使用了一個等待響應的函數(shù)。該函數(shù)有效地降低了按鍵無響應的概率,但依然無法做到點觸即可的效果,這還需要改進。</p><p> 同時,如果有人機互動,就必然會造成人為錯誤,例如我先將月份調(diào)至為1月,然后日期調(diào)為31日,再回頭調(diào)月份為2月,這時就
71、會出現(xiàn)2月31日這樣的錯誤信息情況。所以,在主函數(shù)中增設了日期排錯函數(shù)。</p><p><b> 6測試結果與分析</b></p><p> 本次實驗我們利用Proteus仿真和Keil軟件設計了多功能電子萬年歷,通過測試我們發(fā)現(xiàn),想要幾個模塊相互配合使用,應該將其緊密聯(lián)系起來,而不是一個個單獨的個體。只有這樣才能夠發(fā)揮更大的潛力,為設計萬年歷提供更有力的保障。
72、</p><p><b> 6.1代碼的功能</b></p><p> 1.主函數(shù)功能:獲取時間,顯示萬年歷和時間設置,代碼如下。</p><p> void main(){</p><p> SFR_Init();</p><p> CAL_Init();</p>&l
73、t;p> GUI_Init();</p><p><b> TR1=1;</b></p><p><b> while(1){</b></p><p> GetTime(&sys);//獲得時間</p><p> LCD_ShowWNL();//顯示萬年歷</p
74、><p> Time_Set(); //時間設置</p><p><b> }</b></p><p><b> }</b></p><p> 2. 萬年歷顯示函數(shù),設置刷新模式,代碼如下。</p><p> void LCD_ShowWNL(){&l
75、t;/p><p> LCD_ShowTime(sys.cSec,6,111,Sec_Flag,UpLine,UnderLine); </p><p><b> //秒,每秒鐘刷新</b></p><p> if(!sys.cSec || State_Set) </p><p> //分,普
76、通模式每分鐘刷新</p><p> LCD_ShowTime(sys.cMin,6,87,Min_Flag,UpLine,UnderLine); </p><p> //處于設置模式狀態(tài)每次刷新</p><p> if(!sys.cSec && !sys.cMin || State_Set) </p><p&
77、gt; //時,普通模式每小時刷新</p><p> LCD_ShowTime(sys.cHour,6,63,Hour_Flag,UpLine,UnderLine); </p><p> //處于設置模式狀態(tài)每次刷新</p><p> if(!sys.cSec && !sys.cMin && !sys.cHour ||
78、 State_Set ){</p><p> //公歷農(nóng)歷的年、月、日、星期</p><p> Show_YMD();</p><p> //普通模式每天刷新</p><p> if(State_Set==7) State_Set=0; } }</p><p> //處于設置模式狀態(tài)每次刷新 </
79、p><p> 3. 年、月、日、星期、農(nóng)歷、天干地支顯示函數(shù),代碼如下。</p><p> void Show_YMD(){</p><p> uchar uiTempDat;</p><p> uiTempDat=RDS1302(0x88|0x01);</p><p> sys.cMon=((uiTempDat
80、&0x1f)>>4)*10+(uiTempDat&0x0f);</p><p> LCD_ShowTime(sys.cMon,2,5,Mon_Flag,NoUpLine,NoUnderLine);</p><p> hz_disp(4,5,1,uMod[1],1,NoUpLine,NoUnderLine);//月</p><p&
81、gt; Show16X32(2,27,ucNum3216[sys.cDay/10],Day_Flag);//日</p><p> Show16X32(2,43,ucNum3216[sys.cDay%10],Day_Flag); </p><p> hz_disp(6,8,2,ucLunar[13],1,UpLine,UnderLine); </p&g
82、t;<p> if(sys.cWeek==7)</p><p> hz_disp(6,40,1,uMod[2],1,UpLine,UnderLine);//星期 </p><p><b> else</b></p><p> hz_disp(6,40,1,ucLunar[sys.cWeek],1,UpLine,Un
83、derLine);//星期</p><p> LCD_ShowTime(20,0,9,1,UpLine,UnderLine);</p><p> LCD_ShowTime(sys.cYear,0,25,Year_Flag,UpLine,UnderLine);</p><p> hz_disp(0,41,1,uMod[0],1,UpLine,UnderLine
84、);//年</p><p> SpDat=GetSpringDay(sys.cYear,sys.cMon,sys.cDay);//獲得農(nóng)歷</p><p> if(SpDat.cMon==1)//顯示農(nóng)歷月</p><p> hz_disp(4,64,1,ucLunar[15],1,UpLine,NoUnderLine);/
85、/"正"</p><p> else if(SpDat.cMon==11)</p><p> hz_disp(4,64,1,ucLunar[16],1,UpLine,NoUnderLine);//"冬"</p><p> else if(SpDat.cMon==12)</p><p> hz
86、_disp(4,64,1,ucLunar[17],1,UpLine,NoUnderLine);//"臘"</p><p><b> else</b></p><p> hz_disp(4,63,1,ucLunar[SpDat.cMon],1,UpLine,NoUnderLine);//"二"~"十"
87、</p><p> if(SpDat.cDay/10==1 && SpDat.cDay%10>0)//顯示"十",例如"十四"而不是"一四"</p><p> hz_disp(4,95,1,ucLunar[10],1,UpLine,NoUnderLine);</p><p>
88、 else if(SpDat.cDay/10==2 && SpDat.cDay%10>0) //顯示"廿",例如"廿三"而不是"二四"</p><p> hz_disp(4,95,1,ucLunar[19],1,UpLine,NoUnderLine);</p><p><b> else&
89、lt;/b></p><p> hz_disp(4,95,1,ucLunar[SpDat.cDay/10],1,UpLine,NoUnderLine); //正常數(shù)字</p><p> if(!(SpDat.cDay%10)) //"十"</p><p> hz_disp(4,111,1,ucLunar[10]
90、,1,UpLine,NoUnderLine);</p><p> else//正常數(shù)字</p><p> hz_disp(4,111,1,ucLunar[SpDat.cDay%10],1,UpLine,NoUnderLine);</p><p> hz_disp(0,104,1,SX[(uint)(2000+SpDat.cYear)
91、%12],1,UpLine,UnderLine); //生肖</p><p> hz_disp(2,95,1,TianGan[(uint)(2000+SpDat.cYear)%10],1,NoUpLine,NoUnderLine);//天干</p><p> hz_disp(2,111,1,DiZhi[(uint)(2000+SpDat.cYear)%12],1,NoUpLin
92、e,NoUnderLine);//地支</p><p><b> }</b></p><p> 4.定時器1中斷服務函數(shù),讀取鍵值和清鍵值,保證每次按鍵只執(zhí)行依次按鍵動作,代碼如下。</p><p> void timer1() interrupt 3 {</p><p> TH1= (-10000)/25
93、6;</p><p> TL1= (-10000)%256;</p><p> keyinput();//讀取按鍵</p><p> if (keyvalue&0x10){</p><p> State_Flag=TRUE;</p><p> keyvalue &= 0xef;//
94、清鍵值,保證一按下只執(zhí)行一次按鍵動作</p><p><b> }</b></p><p> if (keyvalue&0x20 ){//加</p><p> Inc_Flag=TRUE;</p><p> keyvalue &= 0xdf;//清鍵值,保證一按下只執(zhí)行一次按鍵動作。<
95、;/p><p><b> }</b></p><p> if (keyvalue&0x40){//減</p><p> Dec_Flag=TRUE;</p><p> keyvalue &= 0xbf;//清鍵值,保證一直按下只執(zhí)行一次按鍵動作。</p><p><
96、;b> }</b></p><p><b> }</b></p><p> 5.計算當年是否是閏年。當前年為閏年滿足這兩個條件:滿足年份能被4整除;年份若是100的整數(shù)倍的話,需被400整除才能是閏年,否則為平年。也就是“四年一閏,百年不閏,四百年再閏”,代碼如下。</p><p> bit YearFlag(ucha
97、r cYear){</p><p> if( (!(cYear%4) && (cYear%100)) || !(cYear%400) )</p><p><b> return 1;</b></p><p> else return 0;</p><p><b> }</b>
98、</p><p> 6. 計算目標日期是星期幾。</p><p> uchar GetWeekDay(uchar cYear,uchar cMon,uchar cDay){</p><p><b> char i;</b></p><p> uint Sum=0,tmpyear;</p><
99、p> cYear=(((cYear>>4)&0x0f)*10)+(cYear&0x0f);//temp1+temp2;</p><p> tmpyear=2000+cYear;</p><p> cMon=(((cMon>>4)&0x0f)*10)+(cMon&0x0f);//temp1+temp2;</p>
100、<p> cDay=(((cDay>>4)&0x0f)*10)+(cDay&0x0f);//temp1+temp2;</p><p> for(i=1;i<=cMon-1;i++)</p><p> Sum+=Mon1[YearFlag(cYear)][i];</p><p> Sum+=cDay-1;</
101、p><p> return (((tmpyear-1)+(tmpyear-1)/4-(tmpyear-1)/100+(tmpyear-1)/400+Sum)%7)+1;</p><p><b> }</b></p><p> 7. LCD圖形初始化函數(shù)。描繪框架布局,并獲取初始化時間,代碼如下。</p><p> v
102、oid GUI_Init(){ </p><p> LCD12864_init();</p><p> ClearLCD();</p><p> Rect(0,0,127,63,1); //描繪框架</p><p> Line(62,0,62,62,1);</p><p> Line(0,48,12
103、7,48,1);</p><p> Line(0,15,127,15,1);</p><p> Line(24,15,24,48,1);</p><p> Line(63,32,128,32,1);</p><p> SetTime(sys);//設置時間</p><p> GetTime(&
104、sys);//獲得時間</p><p> Show_YMD();</p><p> LCD_ShowTime(sys.cSec,6,111,Sec_Flag,UpLine,UnderLine);</p><p> en_disp(6,103,1,Asc,":",1,UpLine,UnderLine);</p><p
105、> LCD_ShowTime(sys.cMin,6,87,Min_Flag,UpLine,UnderLine); </p><p> en_disp(6,79,1,Asc,":",1,UpLine,UnderLine); </p><p> LCD_ShowTime(sys.cHour,6,63,Hour_Flag,UpLine,UnderLine);&l
106、t;/p><p> hz_disp(2,64,1,ucLunar[11],1,NoUpLine,NoUnderLine);//"農(nóng)"</p><p> hz_disp(2,80,1,ucLunar[12],1,NoUpLine,NoUnderLine);//"歷"</p><p> hz_disp(4,79,1,uMod
107、[1],1,UpLine,NoUnderLine);//"月"</p><p><b> }</b></p><p><b> 6.2測試結果分析</b></p><p> 在Proteus軟件和Keil uVision3軟件相結合調(diào)試的,完全用仿真軟件在PC機上對目標電路原理圖和程序進行檢
108、測和調(diào)試。調(diào)試過程中單片機相應輸入端由通用鍵盤和鼠標設定,運行狀態(tài)、各寄存器狀態(tài)、端口狀態(tài)等都可以在指定的窗口區(qū)域顯示出來,以確定程序運行有無錯誤。 </p><p> 整體程序調(diào)試:即把各子程序整體連起來進入到綜合電路調(diào)試,看是否能實現(xiàn)預計的功能顯示。在這階段若發(fā)生故障,可以考慮各子程序在運行時是否破壞現(xiàn)場,數(shù)據(jù)緩沖單元是否發(fā)生沖突,標志位的建立和清除在設計上是否失誤,堆棧是否溢出,輸入輸出狀態(tài)是否
109、正常等。</p><p> 其中測試結果主要看“秒”這位的跳動是否精確,這個是需要長時間的驗證。同時,在定時器內(nèi)處理的數(shù)據(jù)要精確,因為定時器內(nèi)處理數(shù)據(jù)也花費時間,而這段時間沒有算到定時器內(nèi)。經(jīng)過長時間的調(diào)試、運行,最后把誤差范圍盡可能的縮減。</p><p> 在調(diào)試過程中,出現(xiàn)過以下三種問題:</p><p> ?。?)顯示的數(shù)據(jù)秒并沒有變化,是因為沒有啟動定
110、時器,而我又不斷地去讀取DS1302時鐘芯片寄存器中的數(shù)據(jù)導致。啟動定時器后,就不會出現(xiàn)這種問題。</p><p> ?。?)調(diào)整時間后應該先去掉寫保護,如果存在寫保護,那么在初始化寫入初始時間時,是寫不進去初始化的時間的。因而會看見顯示的時間并不隨著設置的初始化的值變化而變化,甚至我們看見的時間并不按著一秒一秒的增加。 </p><p> ?。?)液晶顯示不穩(wěn)定,甚至出現(xiàn)亂碼現(xiàn)
111、象。這是因為液晶顯示的時候,由于采用的并行總線,顯然傳輸速度快,但是數(shù)據(jù)端口必須接1K的排阻,以實現(xiàn)驅(qū)動。因此,排阻的作用很大。寫程序時要嚴格按照時序就行,否則,也不會顯示。</p><p> 經(jīng)過多次修改程序最后調(diào)試出來理想的效果,如下圖所示。</p><p><b> (a)</b></p><p><b> (b)<
112、/b></p><p> 圖6.1 系統(tǒng)仿真結果圖</p><p> 但是也有其的缺陷,現(xiàn)將日期調(diào)成31日,再調(diào)整到2月,顯示會出現(xiàn)問題,如下圖所示。</p><p> 圖6.2 系統(tǒng)仿真結果圖</p><p><b> 7 實驗總結</b></p><p> 在這次的畢業(yè)設計中不
113、僅檢驗了我所學習的知識,也培養(yǎng)了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。從系統(tǒng)問題的提出,總體的功能模塊設計,硬件選型,程序設計,到最后系統(tǒng)是仿真實現(xiàn),達到預想的目的。</p><p> 在功能模塊設計的時候,我做了查閱了大量的資料,最后確定幾個我們?nèi)粘I钪邢⑾⑾嚓P的功能,使用市場上比較廉價高效的元件,并能在我的能力上能完成。最終確定使用AT89S51這個多功能的核心板。雖然在過程中斷斷續(xù)
114、續(xù)地遇到了很多問題,但都通過查閱書籍,瀏覽網(wǎng)頁,老師的指導找到了問題所在,并順利地解決了問題。在現(xiàn)在科技的發(fā)展,單片機的功能與外接電路的配合已經(jīng)相當成熟,遇到問題的時候,可以多想,多問,多看書,以解決問題。這也是四年來在大學所學到對資料的獲取能力。</p><p> 通過這次畢業(yè)設計,我了解了整個嵌入式單片機系統(tǒng)的開發(fā)流程和設計技巧。對過去4年所學習的知識是一種鞏固,更是一種溫故而知新。很多以前不甚了解的問題都
115、得到了很全面的信息。同時,也培養(yǎng)了我獨立完成系統(tǒng)項目設計的能力,以前都是團隊的方式完成項目的,而這次讓我從軟硬件選型到系統(tǒng)實現(xiàn)的一次親生經(jīng)歷,獲益良多。這段時間的學習和實踐,使我了解到了理論和實際之間的差別,第一次真正接觸到了實際中的問題,并通過查閱資料、和老師、同學交流,加強了自身的分析問題、解決問題的能力。同時,我也發(fā)現(xiàn)了自己在某些方面的不足,尤其是程序編寫和考慮問題不夠全面,這是我以后要加以改進的方面。也為以后的工作學習打下了結實
116、的基礎。</p><p><b> 致 謝</b></p><p> 感謝我的導師王華本老師的親切關懷,我的畢業(yè)設計是在她的悉心指導下完成的,她給予我在學術上的諄諄教誨。我不僅學到了知識,而且學到了做人的準則和嚴謹?shù)闹螌W作風。</p><p> 沒有王華本老師的指導我想我不可能順利地完成此次課程設計,在此我想對她表示由衷的感謝。在此我還
117、要感謝學校為我?guī)淼囊磺校瑳]有學校為我提供的平臺,我更不可能完成本次畢業(yè)設計。</p><p> 在論文即將完成之際,到開始進入課題到論文的完成,再到順利完成了課程論文答辯稿,有很多老師,同學,朋友向我提供的幫助,在此,我向他們表示最真誠的謝意。</p><p><b> 參考文獻</b></p><p> [1]王海燕,楊艷華. Pro
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 多功能萬年歷畢業(yè)論文
- 機械電子工程畢業(yè)設計-基于proteus的多功能萬年歷的設計
- 電子萬年歷畢業(yè)論文
- 畢業(yè)論文——電子萬年歷設計
- 電子萬年歷設計-畢業(yè)論文
- 畢業(yè)論文——電子萬年歷設計
- 畢業(yè)論文-基于tft彩屏的多功能萬年歷設計
- proteus課程設計--電子萬年歷
- 電子萬年歷的設計畢業(yè)論文
- 萬年歷設計畢業(yè)論文
- 多功能電子萬年歷課程設計
- 畢業(yè)論文——電子萬年歷設計與制作
- 電子萬年歷的設計與制作畢業(yè)論文
- 數(shù)字電子萬年歷的畢業(yè)論文
- 萬年歷畢業(yè)論文---基于at89s52單片機的電子萬年歷設計
- 基于labview的電子萬年歷的設計畢業(yè)論文
- 萬年歷設計制作【畢業(yè)論文】
- 基于javascript的萬年歷設計【畢業(yè)論文】
- 數(shù)字萬年歷設計畢業(yè)論文
- 電子萬年歷設計
評論
0/150
提交評論