版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、本科生畢業(yè)論文基于Mega16的數(shù)字萬年歷The Digital Perpetual CalendarBasedOn Mega16畢業(yè)論文(設(shè)計)原創(chuàng)性聲明本人所呈交的畢業(yè)論文(設(shè)計)是我在導師的指導下進行的研究工作與取得的研究成果。據(jù)我所知,除文中已經(jīng)注明引用的容外,本論文(設(shè)計)不包含其他個人已經(jīng)發(fā)表或撰寫過的研究成果。對本論文(設(shè)計)的研究做出重要貢獻的個人和集體,均已在文中作了明確說明并表示意。 作者簽名: 日期:畢業(yè)論文(設(shè)計)授權(quán)使用說明本論文(設(shè)計)作者完全了解*學院有關(guān)保留、使用畢業(yè)論文(設(shè)計)的規(guī)定,學校有權(quán)保留論文(設(shè)計)并向相關(guān)部門送交論文(設(shè)計)的電子版和紙質(zhì)版。有權(quán)將
2、論文(設(shè)計)用于非贏利目的的少量復制并允許論文(設(shè)計)進入學校圖書館被查閱。學校可以公布論文(設(shè)計)的全部或部分容。的論文(設(shè)計)在解密后適用本規(guī)定。 作者簽名: 指導教師簽名:日期: 日期:注意事項1.設(shè)計(論文)的容包括:1)封面(按教務(wù)處制定的標準封面格式制作)2)原創(chuàng)性聲明3)中文摘要(300字左右)、關(guān)鍵詞4)外文摘要、關(guān)鍵詞5)目次頁(附件不統(tǒng)一編入)6)論文主體部分:引言(或緒論)、正文、結(jié)論7)參考文獻8)致9)附錄(對論文支持必要時)2.論文字數(shù)要求:理工類設(shè)計(論文)正文字數(shù)不少于1萬字(不包括圖紙、程序清單等),文科類論文正文字數(shù)不少于1.2萬字。3.附件包括
3、:任務(wù)書、開題報告、外文譯文、譯文原文(復印件)。4.文字、圖表要求:1)文字通順,語言流暢,書寫字跡工整,打印字體與大小符合要求,無錯別字,不準請他人代寫2)工程設(shè)計類題目的圖紙,要求部分用尺規(guī)繪制,部分用計算機繪制,所有圖紙應符合國家技術(shù)標準規(guī)。圖表整潔,布局合理,文字注釋必須使用工程字書寫,不準用徒手畫3)畢業(yè)論文須用A4單面打印,論文50頁以上的雙面打印4)圖表應繪制于無格子的頁面上5)軟件工程類課題應有程序清單,并提供電子文檔5.裝訂順序1)設(shè)計(論文)2)附件:按照任務(wù)書、開題報告、外文譯文、譯文原文(復印件)次序裝訂3)其它摘要隨著電子技術(shù)的迅速發(fā)展,特別是隨大規(guī)模集成電路出現(xiàn),
4、給人類生活帶來了根本性的改變。尤其是單片機技術(shù)的應用產(chǎn)品已經(jīng)走進了千家萬戶。電子萬年歷的出現(xiàn)給人們的生活帶來的諸多方便。本文介紹了一種基于AVR單片機Mega16的數(shù)字萬年歷的設(shè)計。本設(shè)計以Mega16為核心控制器,其外圍電路包括液晶顯示模塊,時鐘模塊,鍵盤模塊和鬧鈴模塊等。軟件部分用C語言進行編程,實現(xiàn)設(shè)計的一切功能。此數(shù)字萬年歷不僅能顯示分,時,秒,年,月,日,而且具有以下功能:顯示農(nóng)歷,鬧鐘時間設(shè)置,鬧鐘音樂選擇,整點報時和斷電后自由調(diào)整時間。本設(shè)計硬件電路簡單,難點在于軟件編程中的公農(nóng)歷轉(zhuǎn)換,設(shè)計完成后經(jīng)測試基本實現(xiàn)了上述的功能關(guān)鍵詞:Mega16 萬年歷 公農(nóng)歷轉(zhuǎn)換 液晶
5、AbstractAlong with the technical and quick development in electronics, appear with the large-scale integrated circuit especially, give mankind the life brought the changes of the root. The coal gas reports to the police the system publishes, scribing the electronics measure the instrument walked int
6、o the arithmetic figure turns the ages ts function is strong, the function is well-found, technique forerunner, will quickly technicaldevelopment in science.In the paper,it introduces a design of digital Calendar based on mega16.the design made Mega16 as the core controller, the peripheral circuits,
7、 including liquid crystal display module, clock module, the keyboard module and alarm module. Software with C language programming , achieves all functions of design. This calendar will not only show the number of points, the second, year, month, day, and have the following functions: display Chines
8、e, the alarm time set, alarm clock, music selection, the whole point of time and free to adjust the time after power outages. The design of hardware circuits is simple, difficult in the Chinese public conversion, the design has been tested after the completion of the basic functions to achieve the a
9、bove-mentionedKey words:Mega16,Calendar, Lunar conversion of public, LCD 目錄目錄1第一章緒論31.1研究目的和意義31.2 國外研究現(xiàn)狀31.3本設(shè)計研究的容3第二章系統(tǒng)整體設(shè)計方案52.1 系統(tǒng)功能分析52.2 系統(tǒng)方案論證52.2.1 時鐘模塊52.2.2鍵盤模塊52.2.3 顯示模塊6第三章系統(tǒng)硬件設(shè)計73.1 Mega16單片機電路設(shè)計73.1.1 Mega16的介紹73.1.2 Mega16的引腳圖與引腳說明83.2 時鐘接口電路103.2.1 簡介103.2.2 引腳介紹與其功能103.2.3DS1302的控
10、制字節(jié)113.2.4 DS1302的寄存器113.2.5 數(shù)據(jù)輸入輸出123.3 液晶顯示電路設(shè)計133.4 鍵盤接口電路設(shè)計143.5 音樂鬧鈴功能設(shè)計143.6 仿真接口電路15第四章系統(tǒng)軟件主要設(shè)計流程164.1綜述164.2 系統(tǒng)軟件主流程圖164.3 音樂鬧鈴程序174.4鍵盤程序184.5農(nóng)歷算法194.5.1 農(nóng)歷算法的理論研究194.5.2.陰歷算法的流程圖20第五章系統(tǒng)測試225.1軟件仿真225.2 實物仿真225.2.1測試過程225.2.2測試結(jié)果23結(jié)論24參考文獻25致26附錄:設(shè)計原理圖27第一章 緒論1.1研究目的和意義現(xiàn)在生活節(jié)奏的加快,使電子時鐘成
11、為人們生活必不可少的物品,廣泛應用于個人家庭與各種公共場所,給我們的學習,生活,娛樂帶來極大的方便。隨著技術(shù)的發(fā)展,人們不再滿足于鐘表原先簡單的報時功能,而追求更多更先進的功能,諸如日歷顯示,鬧鐘的應用,以帶來更大的方便,而所有這些,又都是以數(shù)字化的電子鐘為基礎(chǔ)的。萬年歷就是實現(xiàn)這些功能的數(shù)字化的電子時鐘。研究萬年歷與其擴展應用,可以方便人們了解農(nóng)歷的節(jié)日,節(jié)氣,其具有的附加功有著非?,F(xiàn)實的意義。1.2 國外研究現(xiàn)狀隨著電子科技的發(fā)展,使得萬年歷也不斷改進,最初萬年歷的核心部件石英晶體振蕩器己被集成電路取代,數(shù)字集成技術(shù)的發(fā)展,雖然使得電子時鐘走時準確,穩(wěn)定性也很高的MOS集成電路的電路相對復
12、雜,功耗高,維護起來難,且斷電后調(diào)整時間極不易。現(xiàn)在單片機,DSP,FPGA已取代集成芯片成為萬年歷核心,現(xiàn)在國外市面上的很多先進的萬年歷都采用這幾種電路組成。它們可以通過編程很方便的而是先多種功能,同時以很小的體積和其它產(chǎn)品相組合,功能更強大。如音樂旋律的整點報時和鬧鈴,且可根據(jù)個人喜好改編音樂的萬年歷,紅外遙控萬年歷,帶人工語音的萬年歷,帶溫濕度測試的萬年歷,萬年歷筆筒,萬年歷相冊等等,除了在功能方面不斷的增多外,在顯示設(shè)備上,質(zhì)量體積更輕更小的LCD液晶顯示已逐步取代LED,現(xiàn)在所研制的新型的具有漢顯功能的LCD不僅可以顯示基本的時間,年月日,還可以顯示各種節(jié)日和農(nóng)歷的節(jié)氣。萬年歷的不斷
13、更新,為我們生活帶來極大的方便。1.3本設(shè)計研究的容本設(shè)計就是以AVR單片機Mega16為核心的萬年歷,同時加以鍵盤電路斷電后能夠自由修改時間,并采用具有漢顯功能液晶顯示電路彌補了LED顯示的缺點,質(zhì)量更輕,體積更小,電路更簡化,減少輻射。設(shè)計中重點研究了時鐘芯片精確計時的問題和公農(nóng)歷轉(zhuǎn)換的算法,用時鐘芯片代替部時鐘,使得計時更準確。萬年歷設(shè)計中的難點就是公農(nóng)歷轉(zhuǎn)換,研究明白此問題,才能編出子程序,顯示出公歷日對應的農(nóng)歷日。第二章 系統(tǒng)整體設(shè)計方案2.1 系統(tǒng)功能分析本系統(tǒng)是基于Mega16 的數(shù)字萬年歷設(shè)計。它除了能顯示基本的年月日外,還能顯示農(nóng)歷,同時具有音樂鬧鈴,整點報時和斷電后調(diào)整時間
14、的功能。這些功能由Mega16,時鐘,鍵盤和顯示共同作用下實現(xiàn)。2.2 系統(tǒng)方案論證2.2.1 時鐘模塊方案一:基本門電路搭建用基本門電路實現(xiàn)時鐘發(fā)生器,電路結(jié)構(gòu)復雜,故障系數(shù)大,不易調(diào)試。方案二:由單片機實現(xiàn)時鐘功能單片機部具有定時器,可方便實現(xiàn)定時功能,通過計算可知,是定時器沒25ms產(chǎn)生一次中斷,當產(chǎn)生40次中斷后秒單元將加一,以此類推,從而實現(xiàn)時,分,秒的走時,并加以顯示.但由于系統(tǒng)晶振誤差,溫漂,中斷響應時間的不確定性與定時器重新裝載時間常數(shù)所帶來的誤差,決定它不能用來作為時鐘的時基中斷。方案三:專用時鐘芯片目前市場上已有很多實時時鐘芯片。DS12887.DS1302.DS1307.
15、PCF8563.X1227等,芯片部集成了時鐘/日歷功能,給時鐘系統(tǒng)設(shè)計帶來很多方便。因此計時功能宜選用選用專用時鐘芯片為宜,時鐘模塊采用方案三來實現(xiàn)2.2.2鍵盤模塊方案一:采用獨立按鍵電路每個按鍵單獨占用一根I/O接口線,每個I/O口的工作狀態(tài)互不影響,此類鍵盤采用端口直接掃描方式。但是當按鍵較多時占用單片機的I/O口數(shù)目。方案二:采用陣列式鍵盤此類鍵盤是采用行列掃描方式,當按鍵較多時可以降低占用單片機的I/O的I/O數(shù)目。本設(shè)計中按鍵為八個,需接口多,采用2*4行列式鍵盤2.2.3 顯示模塊方案一:使用多個數(shù)碼管顯示LED數(shù)碼管式利用二極管發(fā)光顯示數(shù)字和字母,具有亮度大,接口設(shè)計比較容易
16、,價格相對便宜等優(yōu)點。但是由于它工作電流較大。不能顯示漢字,顯示信息量有限,若在此題目中應用就會受到很大限制。方案二:采用液晶顯示液晶特別是具有漢字顯示功能的液晶顯示器,來實現(xiàn)顯示功能,不僅可以實現(xiàn)基本的顯示信息,而且可以顯示豐富的符號指示信息以與文字指示信息,信息靈豐富且直觀易懂。而且液晶顯示有功耗低,體積小,重量輕,壽命長,不產(chǎn)生電磁輻射等優(yōu)點。系統(tǒng)采用方案二,設(shè)計選用LCD1602第三章 系統(tǒng)硬件設(shè)計本系統(tǒng)以Mega16為核心部件,使用串行時鐘芯片DS1302,實現(xiàn)時間和鬧鐘的設(shè)置功能。通過鍵盤和液晶LCD1602提示可方便地校對時鐘和設(shè)置鬧鐘時間,且斷電后可實現(xiàn)自由調(diào)整時間,同時具有音
17、樂播放和鬧鈴的的功能,系統(tǒng)的整體框圖如圖3.1所示。 3.1 數(shù)字萬年歷的硬件結(jié)構(gòu)圖下面介紹下本文涉與到的幾個部分:3.1 Mega16單片機電路設(shè)計3.1.1 Mega16的介紹Mega16是ATMEL公司的一款高性能、低功耗得 8 位AVR微處理器, 使用先進得RISC 結(jié)構(gòu), 大多數(shù)指令的 執(zhí)行時間為單個時鐘周期, 所以運算速度更快!兩個具有獨立預分頻器和比較器功能的 8 位定時器/ 計數(shù)器;一個具有預分頻器、比較功能和捕捉功能得 16 位定時器/ 計數(shù)器;具有獨立振蕩器得 實時計數(shù)器RTC;四通道PWM;8路10 位ADC8 個單端通道,TQFP 封裝的 7 個差分通道,可編程得 串行
18、USART 接口;可工作于主機/ 從機模式得 SPI串行接口;面向字節(jié)得 兩線串行接口;具有獨立片振蕩器得 可編程看門狗定時器;片模擬比較器; 其具有的下面特點無論從編程、自編程和加密等方面都給用戶提供了很大得方便!4k字節(jié)的系統(tǒng)可擦寫10 * 000 次的可編程Flash;具有獨立鎖定位的可選Boot 代碼區(qū), 通過片上BOOT程序?qū)崿F(xiàn)系統(tǒng)編程;512字節(jié)的 擦寫100 * 000 次的EEPROOM;1K字節(jié)的片SRAM, 可以對鎖定位進行編程以實現(xiàn)用戶程序的 加密!具有以下特點:先進的 RISC 結(jié)構(gòu) 131 條指令 32 個 8 位通用工作寄存器全靜態(tài)工作工作于 16 MHz 時性能高
19、達 16 MIPS只需兩個時鐘周期的硬件乘法器非易失性程序和數(shù)據(jù)存儲器·通過 JTAG 接口實現(xiàn)對 Flash、 EEPROM、熔絲位和鎖定位的編程·2 個具有可編程增益 (1x, 10x, 或 200x)的差分通道·上電復位以與可編程的掉電檢測·片經(jīng)過標定的 RC 振蕩器·片 / 片外中斷源· 6 種睡眠模式 : 空閑模式、ADC 噪聲抑制模式、省電模式、掉電模式、·Standby 模式以與擴展的 Standby 模式工作電壓 : ATmega16:4.5 - 5.5V速度等級: 0 - 16 MHzATmega163.1
20、.2 Mega16的引腳圖與引腳說明VCC: 數(shù)字電路的電源 GND:地端口A(PA7.PA0): 端口 A 做為 A/D 轉(zhuǎn)換器的模擬輸入端。端口 A 為 8 位雙向 I/O 口,具有可編程的部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復位過程中,即使系統(tǒng)時鐘還未起振,端口 A 處于高阻狀態(tài)。端口 B(PB7.PB0):端口 B 為 8 位雙向 I/O 口,具有可編程的部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復
21、位過程中,即使系統(tǒng)時鐘還未起振,端口 B 處于高阻狀態(tài)。端口 C(PC7.PC0):端口C 為 8 位雙向 I/O 口,具有可編程的部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復位過程中,即使系統(tǒng)時鐘還未起振,端口 C 處于高阻狀態(tài)。如果JTAG 接口使能,即使復位出現(xiàn)引腳 PC5(TDI)、 PC3(TMS)與 PC2(TCK) 的上拉電阻被激活。端口 D(PD7.PD0):端口 D 為 8 位雙向 I/O 口,具有可編程的部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時
22、,若部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復位過程中,即使系統(tǒng)時鐘還未起振,端口 D 處于高阻狀態(tài)。RESET: 復位輸入引腳。持續(xù)時間超過最小門限時間的低電平將引起系統(tǒng)復位, 持續(xù)時間小于門限間的脈沖不能保證可靠復位XTAL1: 反向振蕩放大器與片時鐘操作電路的輸入端XTAL2: 反向振蕩放大器的輸出端. AVCC: AVCC是端口A與A/D轉(zhuǎn)換器的電源。不使用ADC時,該引腳應直接與VCC連接.使用ADC時應通過一個低通濾波器與 VCC連接。 AREF: A/D 的模擬基準輸入引腳。根據(jù)以上端口的介紹以與具體引腳圖,設(shè)計中單片機端口分配表PA口液晶顯示數(shù)據(jù)線PB4PB7接4*1
23、鍵盤PD3DS1302 SCKPD4DS1302 I/OPD5DS1302 RSTPD6揚聲器輸入驅(qū)動PB0,PB1,PB2液晶顯示RS,R/W,E3.2 時鐘接口電路本萬年歷系統(tǒng)的重要部分在于時鐘和鬧鐘功能模塊,這里選用串行時鐘芯片dS1302,與采用并行總線與單片機進行數(shù)據(jù)通信的時鐘芯片相比,DS1302與單片機的連線大為減少,極大的節(jié)省了單片機的系統(tǒng)資源3.2.1 簡介DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V5.5V。采用三線接口與CPU進行同步通信,
24、并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302部有一個31×8的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。 3.2.2 引腳介紹與其功能圖1示出DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc10.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1
25、和X2是振蕩源,外接32.768kHz晶振。RST是復位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向), SCLK始終是輸入端。 圖1 DS1302 引
26、腳圖3.2.3DS1302的控制字節(jié) DS1302 的控制字如圖2所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出圖2 DS1302 的控制字在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。
27、 時序圖如下:3.2.4 DS1302的寄存器 DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器與其控制字見表1表一 DS1302 的時鐘,日歷寄存器與控制字寄存器名命令字取值圍各位容寫操作讀操作76543210秒寄存器80H81H 00-59CH10SECSEC分鐘寄存器82H83H 00-59010MIN MIN小時寄存器84H85H00-12或00-23 12/24110/APHR HR日期寄存器86H87H01-28,29.30.31 010DATE DATE月份寄存器88H89H 01-12 0
28、 010MMONTH周月寄存器8AH8BH 01-07 0 000DAY年份寄存器8CH8DH 00-99 10 YEAR YEAR 表中12或24小時的方式選擇位,當為1時,選擇12小時。有AP那位是上午和下午的選擇位,當為1是表示為下午。CH是暫停位,當CH=1時,時鐘振蕩停止,器件被置入低功率備份方式,其電源電流小于100NA,當CH=0時,時鐘啟動此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器與與RAM相關(guān)的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器容。 DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個RAM單
29、元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)3.2.5 數(shù)據(jù)輸入輸出在控制指令字輸入后的下一個SCLK時鐘的上升沿時數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位至高位7,數(shù)據(jù)讀寫時序見圖。 如果命令字節(jié)中的尋址位A0A4均為1,可以把時鐘/日歷或RAM存儲器規(guī)定為多字節(jié)方式。當命令字節(jié)為FFH或FEH,可以對片3
30、1字節(jié)RAM進行讀/寫操作;當命令字節(jié)為BFH或BEH時,可對8個時鐘/日歷寄存器進行讀/寫操作,在時鐘/日歷寄存器中的地址9-31或RAM存儲器中的地址31均不能使用。在多字節(jié)方式中讀或?qū)懚际菑牡刂?的第0位開始。 當以多字節(jié)方式寫時鐘/日歷寄存器時,必須按傳送是次序?qū)憹M8個寄存器;但是,當以多字節(jié)方式寫RAM時,根據(jù)發(fā)送的要求,數(shù)據(jù)不必寫入所有31字節(jié)。不管是否寫入全部31字節(jié),所寫的字節(jié)都將傳入送至RAM。 另外,應注意在寫操作時,CLK的每一個時鐘上升沿,一。I/O引線將為高阻態(tài),數(shù)據(jù)必須在CLK上升沿前讀取。29 / 293.3 液晶顯示電路設(shè)計本設(shè)計中的液晶選用LCD1602.液晶
31、顯示模塊可以分為字段,字符點陣,圖形點陣 3 種。一般只有后者可以顯示漢字和圖形。LCD 1602 是常見的 16 × 2 行, 6 × 8 字符點陣液晶模塊,廣泛應用于智能儀表、通信、辦公自動化設(shè)備中,其字符發(fā)生器 ROM 中自帶數(shù)字和英文字母與一些特殊符號的字符庫,沒有漢字。LCD1602的引腳圖如下,引腳功能如下:BLA :背光源正極,接 +5V ; BLK :背光源負極,接地; VO :液晶顯示偏壓信號,通過電位器 W1 調(diào)節(jié), 1602 偏壓接近 0V ; RS :接 PD.0 ,決定傳輸類型是數(shù)據(jù)或命令, 1- 表示數(shù)據(jù), 0- 表示命令; R W :接 PD.
32、1,讀寫控制, 1 一表示讀, O 一表示寫; E :接 PD.2 ,使能端,高電平有效; DB0 DB7:數(shù)據(jù)端口,連接PA 1602無法顯示漢字,農(nóng)歷的日期就不好顯示了。若要顯示漢字,關(guān)鍵是先要自己建立欲顯示的漢字字庫。1602提供了在片CGRAM的00H-3FH共64個字節(jié)的空間,可以存放8個6×8點陣的自建字符庫,其代碼分別為00H-07H,然后在顯示時只要用處查表法調(diào)用漢字的相應代碼就可以了 對于本設(shè)計,若進行編程實現(xiàn)自定義的漢字字符,會占用單片機的存,如果在農(nóng)歷顯示前加以前綴區(qū)分,仍可用公歷格式來顯示農(nóng)歷3.4 鍵盤接口電路設(shè)計在設(shè)計鍵盤電路時我們采用2*4的行列式八鍵鍵
33、盤。單片機通過查詢方式對鍵盤掃描。用軟件算法消除按鍵順勢的抖動。3.5 音樂鬧鈴功能設(shè)計當鬧鈴定時到點時,會觸發(fā)聲音報警,電路如下 Speaker口接至單片機的PD.6聲音的頻譜圍約在幾十到幾千赫茲,若能利用程序來控制單處機某個口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào)。我們將每一音符的時間常數(shù)和其相應的節(jié)拍常數(shù)作為一組,按順序?qū)非械乃谐?shù)排列成一個表,然后由查表程序依次取出,產(chǎn)生音符并控制節(jié)奏,就可以實現(xiàn)演奏效果。此外,結(jié)束符和體止符可以分別用代碼 00H
34、 和 FFH 來表示,若查表結(jié)果為 00H,則表示曲子終了;若查表結(jié)果為 FFH,則產(chǎn)生相應的停頓效果。為了產(chǎn)生手彈的節(jié)奏感,在某些音符(例如兩個一樣音符)音插入一個時間單位的頻率略有不同的音符。3.6 仿真接口電路 采用AVR仿真機對硬件電路的軟件編程進行仿真,再硬件電路里加JTAG接口,通過下載線連硬件與仿真機,燒入程序和進行仿真JTAG主要用于芯片部測試。現(xiàn)在多數(shù)的高級器件都支持JTAG協(xié)議,如DSP、FPGA器件等。標準的JTAG接口是4線:TMS、 TCK、TDI、TDO,分別為模式選擇、時鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出線。 JTAG最初是用來對芯片進行測試的,基本原理是在器件部定義一個TA
35、P(Test Access Port�測試訪問口)通過專用的JTAG測試工具對進行部節(jié)點進行測試。JTAG測試允許多個器件通過JTAG接口串聯(lián)在一起,形成一個JTAG鏈,能實現(xiàn)對各個器件分別測試?,F(xiàn)在,JTAG接口還常用于實現(xiàn)ISP(In-System rogrammable�在線編程),對FLASH等器件進行編程。 JTAG編程方式是在線編程,傳統(tǒng)生產(chǎn)流程中先對芯片進行預編程現(xiàn)再裝到板上因此而改變,簡化的流程為先固定器件到電路板上,再用JTAG編程,從而大大加快工程進度。JTAG接口可對PSD芯片部的所有部件進行編程 其引腳圖如下:8腳懸空,1.3.5.九腳分別與
36、MEGA16的第四章 系統(tǒng)軟件主要設(shè)計流程4.1綜述軟件系統(tǒng)在本設(shè)計中尤其重要,基本功能大部分是由軟件完成的,發(fā)揮功能的關(guān)鍵控制部分同樣需要軟件的密切配合才能順利實現(xiàn)。鑒于軟件設(shè)計的復雜性和規(guī)模性,我們采用AVR編譯器支持的C語言編程,放棄了效率高但可讀性不強的匯編語言。整個軟件系統(tǒng)采用模塊化的程序設(shè)計方法,共分為時間設(shè)定,顯示程序,鬧鈴設(shè)定,鍵盤設(shè)定四個部分。此系統(tǒng)完成的主要功能有:時間、日期設(shè)定與顯示,鬧鈴設(shè)定,整點報時,跑表的啟動/停止/保持顯示/清除,音樂播放。4.2 系統(tǒng)軟件主流程圖本設(shè)計的主要編程思想是:初始化設(shè)備后,讀取DS1302的寄存器地址所存放的數(shù)據(jù),將其顯示在LCD上,掃
37、描鍵盤,有鍵按下,就進入設(shè)置界面,根據(jù)鍵值執(zhí)行相應的鬧鈴和時鐘設(shè)置。完成設(shè)置后,將設(shè)置后的時間送給DS1302的寄存器,單片機從DS1302中讀入此數(shù)據(jù)顯示在LCD上4.3 音樂鬧鈴程序聲音的頻譜圍約在幾十到幾千赫茲,若能利用程序來控制單處機某個口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào)。我們將每一音符的時間常數(shù)和其相應的節(jié)拍常數(shù)作為一組,按順序?qū)非械乃谐?shù)排列成一個表,然后由查表程序依次取出,產(chǎn)生音符并控制節(jié)奏,就可以實現(xiàn)演奏效果。此外,結(jié)束符和體止符可以
38、分別用代碼 00H 和 FFH 來表示,若查表結(jié)果為 00H,則表示曲子終了;若查表結(jié)果為 FFH,則產(chǎn)生相應的停頓效果。為了產(chǎn)生手彈的節(jié)奏感,在某些音符(例如兩個一樣音符)音插入一個時間單位的頻率略有不同的音符。具體流程圖如下:4.4鍵盤程序 鍵盤采用查詢方式進行掃描,對兩行鍵盤依次進行掃描。根據(jù)掃描的鍵值執(zhí)行相應的功能4.5農(nóng)歷算法 本設(shè)計中的難點即為陰歷算法,解決了這個問題,才能顯示農(nóng)歷4.5.1 農(nóng)歷算法的理論研究農(nóng)歷是我國的一種歷法,又稱夏歷、中歷、舊歷,俗稱陰歷。定月的方法是用朔望月周期給出,朔所在日為初一,朔望月長約29天半,所以農(nóng)歷大月30天,小月29天。農(nóng)歷平年有十二個月,全
39、年354天或355天,閏年為十三個月,其中某一月為閏月,月名依前一月名而定,如前月是八月,閏月則為閏八月。閏年全年383天或384天。設(shè)置閏月的方法是:農(nóng)歷月份中無“中氣”的月份則是閏月。 7 i+ s0 L& & G) C農(nóng)歷平年、閏年的月數(shù)、天數(shù)一覽表 年月數(shù)大月天數(shù)小月天數(shù)全年天數(shù)閏月設(shè)置方法平年12302935419年7個閏月閏年133029383(或384)無中氣月份為閏月二十四節(jié)氣中四季“節(jié)氣”和“中氣如下: 四季 春 夏 秋 冬 節(jié)氣 立春 驚蟄 清明 立夏 芒種 小暑 立秋 白露 寒露 立冬 大雪 小寒 中氣 雨水 春分 谷雨 小滿 夏至 大暑 處暑 秋分 霜降
40、 小雪 冬至 大寒 陰歷最大的問題是在如何置閏。陰歷基本法則如下: * 月朔日即是初一 * 月以中氣得名 * 以包含雨水中氣月為正月,即是寅月 * 月無中氣者為閏月,以前月同名 f4 , 0 u0 l$ d R* r9 x6 P 農(nóng)歷算法即求任一公歷年的農(nóng)歷日期。根據(jù)存在的公農(nóng)歷轉(zhuǎn)換數(shù)據(jù)表,查找和計算出當前顯示的公歷的農(nóng)歷日期。首先是要保存公農(nóng)歷之間的轉(zhuǎn)換信息:以任意一年作為起點,把從這一年起若干年的農(nóng)歷信息保存起來。根據(jù)上表要保存一年的信息其實只要兩個信息就能了:1、農(nóng)歷每個月的大
41、?。?、今年是否有閏月,閏幾月與閏月的大小。用一個整數(shù)來保存這些信息就足夠了。具體的方法是:用三個字節(jié)來表示公歷對應的農(nóng)歷數(shù)據(jù),格式第一字節(jié)BIT7-4位表示閏年月份,值為0為無閏月,BIT3-0對應農(nóng)歷第1-4月的大小。第二字節(jié) BIT7-0對應農(nóng)歷第 5-12 月大小,第三字節(jié) BIT7表示農(nóng)歷第 13個月大月份對應的位1表示本農(nóng)歷月大(30天),為 0表示小(29天)第三字節(jié)表示春節(jié)的公歷月份,BIT4-0表示春節(jié)的公歷日期.這樣建立了農(nóng)歷年對應的農(nóng)歷數(shù)據(jù)表。建立表后,具體的算法如下: 1)從數(shù)據(jù)表中取得當年春節(jié)的公歷日期 計算此公歷日期距當年元旦和春節(jié)離元旦的天數(shù)。從而算出公歷日期距春
42、節(jié)的天數(shù)X,判斷公歷日和春節(jié)的前后2) 公歷日在春節(jié)后,農(nóng)歷年=公歷年,農(nóng)歷月從1月開始,判斷是否是閏3)取農(nóng)歷月天數(shù)Y,大月30天,小月29天,判斷X,Y大小,如果X不小于Y,X減去當月天數(shù),若農(nóng)歷月非閏月,農(nóng)歷月加1.循環(huán)此過程,X小于Y跳出循環(huán),農(nóng)歷日=X+1 4)公歷日在春節(jié)前,農(nóng)歷年=公歷年減1,相應的數(shù)據(jù)表的地址減三,定位到前一年,農(nóng)歷月從12月開始5)取農(nóng)歷月天數(shù)Y,大月30天,小月29天,如果X大于Y,X減去當月的天數(shù) ,農(nóng)歷月非閏月,農(nóng)歷月減1,循環(huán)此過程,如果X不小于Y,跳出循環(huán),農(nóng)歷日=Y-X+14.5.2.陰歷算法的流程圖 在編程時,為了方便運算,將數(shù)據(jù)轉(zhuǎn)換為HEX格式
43、,農(nóng)歷日期求出后轉(zhuǎn)換成標準格式。其流程圖如下:第五章 系統(tǒng)測試本設(shè)計的硬件電路和軟件編程后,先用Proteus進行仿真,對硬件電路進行模擬 ,得到預想的結(jié)果后,焊接硬件,對硬件電路進行實物仿真,得到最夠的測試結(jié)果5.1軟件仿真Proteus它不僅能仿真單片機CPU 的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其它電路的工作情況。因此在仿真和程序調(diào)試時,觀察的不再是某些語句執(zhí)行時單片機寄存器和存儲器容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結(jié)果。proteus 的工作過程 運行proteus 的ISIS 程序后,進入該仿真軟件的主界面。在工作前,要設(shè)置view 菜單下的捕
44、捉對齊和system下的顏色、圖形界面大小等項目。通過工具欄中的p(從庫中選擇元件命令)命令,在pick devices 窗口中選擇電路所需的元件,放置元件并調(diào)整其相對位置,元件參數(shù)設(shè)置,元器件間連線,編寫程序;在source 菜單的Definecode generation tools 菜單命令下,選擇程序編譯的工具、路徑、擴展名等項目;在source 菜單的Add/removesource files 命令下,加入單片機硬件電路的對應程序;通過debug 菜單的相應命令仿真程序和電路的運行情況。5.2 實物仿真Proteus 仿真完,實現(xiàn)設(shè)計所預想的功能后,焊接電路,對實物進行仿真測試,仿
45、真環(huán)境即測試環(huán)境是:AVR Studio 4.07以上版本,915DC電源,PC與RS232口。5.2.1測試過程(1) 安裝AVR Studio:在安裝AVRStudio時將隨機提供的光盤放入CDROM中,選取avrstuio4。07目錄中的setup.Exe文件,按照安裝向?qū)崾镜牟襟E進行即可。(2) 在啟動AVR Studio之前,把JTAGICE連接在上位PC和目標板之間,確保AVR Studio可以完成自動偵測連接情況。(3) 仿真器與上位機的連接,將隨機帶的“串行通訊電纜”一頭與仿真器的“串行通訊口”相接,另一頭與計算機任意串口相接。注意:AVR Studio不能同其他程序共享串口資源,在打開AVR Studio前要關(guān)閉其他使用該串口的程序(4) JTAGICE同目標板的連接:最小需要6條線與目標板相連,才可以完成仿真任務(wù),他們是:TCK 、TMS 、TDO 、TDI、 Vref、 GND,另外有兩條可選擇的引線 nSRST 和 Vsup
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 保稅倉庫租賃協(xié)議書
- 冷藏運輸車出租合同
- 貨車租賃合同書安全協(xié)議樣板
- 廣告推廣合同書
- 墻體上安裝廣告畫面協(xié)議
- 公司影視作品發(fā)行權(quán)許可使用合同書
- 物流行業(yè)智能配送優(yōu)化實施方案
- 區(qū)塊鏈電子發(fā)票開具服務(wù)平臺開發(fā)合同
- 企業(yè)合同管理實踐指南
- 心理健康與心理咨詢作業(yè)指導書
- 玻璃的浮法成型工藝
- 山東省濟南市2023-2024學年高三上學期期末學習質(zhì)量檢測物理試題(解析版)
- 國家開放大學電大本科《古代小說戲曲專題》2025期末試題及答案(試卷號:1340)
- 粵教粵科版三年級科學上冊全冊單元期中期末測試卷 含答案
- 遼寧省大連市甘井子區(qū)2023-2024學年五年級上學期期末英語試卷
- (完整版)年產(chǎn)30萬噸甲醇工藝設(shè)計畢業(yè)設(shè)計
- 外研版五年級上冊(三起)連詞成句專項訓練
- 養(yǎng)老機構(gòu)風險管控清單
- 辦公室消防管理制度
- 動火作業(yè)審批表
評論
0/150
提交評論