基于MEGA數(shù)字萬歷設(shè)計(jì)_第1頁
基于MEGA數(shù)字萬歷設(shè)計(jì)_第2頁
基于MEGA數(shù)字萬歷設(shè)計(jì)_第3頁
基于MEGA數(shù)字萬歷設(shè)計(jì)_第4頁
基于MEGA數(shù)字萬歷設(shè)計(jì)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

長春理工大學(xué)畢業(yè)設(shè)計(jì)摘要隨著電子技術(shù)的迅速發(fā)展,特別是隨大規(guī)模集成電路出現(xiàn),給人類生活帶來了根本性的改變。尤其是單片機(jī)技術(shù)的應(yīng)用產(chǎn)品已經(jīng)走進(jìn)了千家萬戶。電子萬年歷的出現(xiàn)給人們的生活帶來的諸多方便。本文介紹了一種基于AVR單片機(jī)Mega16的數(shù)字萬年歷的設(shè)計(jì)。本設(shè)計(jì)以Mega16為核心控制器,其外圍電路包括液晶顯示模塊,時(shí)鐘模塊,鍵盤模塊和鬧鈴模塊等。軟件部分用C語言進(jìn)行編程,實(shí)現(xiàn)設(shè)計(jì)的一切功能。此數(shù)字萬年歷不僅能顯示分,時(shí),秒,年,月,日,而且具有以下功能:顯示農(nóng)歷,鬧鐘時(shí)間設(shè)置,鬧鐘音樂選擇,整點(diǎn)報(bào)時(shí)和斷電后自由調(diào)整時(shí)間。本設(shè)計(jì)硬件電路簡單,難點(diǎn)在于軟件編程中的公農(nóng)歷轉(zhuǎn)換,設(shè)計(jì)完成后經(jīng)測試基本實(shí)現(xiàn)了上述的功能關(guān)鍵詞:Mega16萬年歷公農(nóng)歷轉(zhuǎn)換液晶

AbstractAlongwiththetechnicalandquickdevelopmentinelectronics,appearwiththelarge-scaleintegratedcircuitespecially,givemankindthelifebroughtthechangesoftheroot.Thecoalgasreportstothepolicethesystempublishes,scribingtheelectronicsmeasuretheinstrumentwalkedintothearithmeticfigureturnstheagestsfunctionisstrong,thefunctioniswell-found,techniqueforerunner,willquicklytechnicaldevelopmentinscience.Inthepaper,itintroducesadesignofdigitalCalendarbasedonmega16.thedesignmadeMega16asthecorecontroller,theperipheralcircuits,includingliquidcrystaldisplaymodule,clockmodule,thekeyboardmoduleandalarmmodule.SoftwarewithClanguageprogramming,achievesallfunctionsofdesign.Thiscalendarwillnotonlyshowthenumberofpoints,thesecond,year,month,day,andhavethefollowingfunctions:displayChinese,thealarmtimeset,alarmclock,musicselection,thewholepointoftimeandfreetoadjustthetimeafterpoweroutages.Thedesignofhardwarecircuitsissimple,difficultintheChinesepublicconversion,thedesignhasbeentestedafterthecompletionofthebasicfunctionstoachievetheabove-mentionedKeywords:Mega16,Calendar,Lunarconversionofpublic,LCD目錄目錄 1第一章緒論 31.1研究目的和意義 31.2國內(nèi)外研究現(xiàn)狀 31.3本設(shè)計(jì)研究的內(nèi)容 3第二章系統(tǒng)整體設(shè)計(jì)方案 52.1系統(tǒng)功能分析 52.2系統(tǒng)方案論證 52.2.1時(shí)鐘模塊 52.2.2鍵盤模塊 52.2.3顯示模塊 6第三章系統(tǒng)硬件設(shè)計(jì) 73.1Mega16單片機(jī)電路設(shè)計(jì) 73.1.1Mega16的介紹 73.1.2Mega16的引腳圖及引腳說明 83.2時(shí)鐘接口電路 103.2.1簡介 103.2.2引腳介紹及其功能 103.2.3DS1302的控制字節(jié) 113.2.4

DS1302的寄存器 113.2.5數(shù)據(jù)輸入輸出 123.3液晶顯示電路設(shè)計(jì) 133.4鍵盤接口電路設(shè)計(jì) 143.5音樂鬧鈴功能設(shè)計(jì) 143.6仿真接口電路 15第四章系統(tǒng)軟件主要設(shè)計(jì)流程 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實(shí)物仿真 225.2.1測試過程 225.2.2測試結(jié)果 23結(jié)論 24參考文獻(xiàn) 25致謝 26附錄:設(shè)計(jì)原理圖 27第一章緒論1.1研究目的和意義現(xiàn)在生活節(jié)奏的加快,使電子時(shí)鐘成為人們生活必不可少的物品,廣泛應(yīng)用于個(gè)人家庭及各種公共場所,給我們的學(xué)習(xí),生活,娛樂帶來極大的方便。隨著技術(shù)的發(fā)展,人們不再滿足于鐘表原先簡單的報(bào)時(shí)功能,而追求更多更先進(jìn)的功能,諸如日歷顯示,鬧鐘的應(yīng)用,以帶來更大的方便,而所有這些,又都是以數(shù)字化的電子鐘為基礎(chǔ)的。萬年歷就是實(shí)現(xiàn)這些功能的數(shù)字化的電子時(shí)鐘。研究萬年歷及其擴(kuò)展應(yīng)用,可以方便人們了解農(nóng)歷的節(jié)日,節(jié)氣,其具有的附加功有著非常現(xiàn)實(shí)的意義。1.2國內(nèi)外研究現(xiàn)狀隨著電子科技的發(fā)展,使得萬年歷也不斷改進(jìn),最初萬年歷的核心部件石英晶體振蕩器己被集成電路取代,數(shù)字集成技術(shù)的發(fā)展,雖然使得電子時(shí)鐘走時(shí)準(zhǔn)確,穩(wěn)定性也很高的MOS集成電路的電路相對復(fù)雜,功耗高,維護(hù)起來難,且斷電后調(diào)整時(shí)間極不易?,F(xiàn)在單片機(jī),DSP,FPGA已取代集成芯片成為萬年歷核心,現(xiàn)在國內(nèi)外市面上的很多先進(jìn)的萬年歷都采用這幾種電路組成。它們可以通過編程很方便的而是先多種功能,同時(shí)以很小的體積和其它產(chǎn)品相組合,功能更強(qiáng)大。如音樂旋律的整點(diǎn)報(bào)時(shí)和鬧鈴,且可根據(jù)個(gè)人喜好改編音樂的萬年歷,紅外遙控萬年歷,帶人工語音的萬年歷,帶溫濕度測試的萬年歷,萬年歷筆筒,萬年歷相冊等等,除了在功能方面不斷的增多外,在顯示設(shè)備上,質(zhì)量體積更輕更小的LCD液晶顯示已逐步取代LED,現(xiàn)在所研制的新型的具有漢顯功能的LCD不僅可以顯示基本的時(shí)間,年月日,還可以顯示各種節(jié)日和農(nóng)歷的節(jié)氣。萬年歷的不斷更新,為我們生活帶來極大的方便。1.3本設(shè)計(jì)研究的內(nèi)容本設(shè)計(jì)就是以AVR單片機(jī)Mega16為核心的萬年歷,同時(shí)加以鍵盤電路斷電后能夠自由修改時(shí)間,并采用具有漢顯功能液晶顯示電路彌補(bǔ)了LED顯示的缺點(diǎn),質(zhì)量更輕,體積更小,電路更簡化,減少輻射。設(shè)計(jì)中重點(diǎn)研究了時(shí)鐘芯片精確計(jì)時(shí)的問題和公農(nóng)歷轉(zhuǎn)換的算法,用時(shí)鐘芯片代替內(nèi)部時(shí)鐘,使得計(jì)時(shí)更準(zhǔn)確。萬年歷設(shè)計(jì)中的難點(diǎn)就是公農(nóng)歷轉(zhuǎn)換,研究明白此問題,才能編出子程序,顯示出公歷日對應(yīng)的農(nóng)歷日。

第二章系統(tǒng)整體設(shè)計(jì)方案2.1系統(tǒng)功能分析本系統(tǒng)是基于Mega16的數(shù)字萬年歷設(shè)計(jì)。它除了能顯示基本的年月日外,還能顯示農(nóng)歷,同時(shí)具有音樂鬧鈴,整點(diǎn)報(bào)時(shí)和斷電后調(diào)整時(shí)間的功能。這些功能由Mega16,時(shí)鐘,鍵盤和顯示共同作用下實(shí)現(xiàn)。2.2系統(tǒng)方案論證2.2.1時(shí)鐘模塊方案一:基本門電路搭建用基本門電路實(shí)現(xiàn)時(shí)鐘發(fā)生器,電路結(jié)構(gòu)復(fù)雜,故障系數(shù)大,不易調(diào)試。方案二:由單片機(jī)實(shí)現(xiàn)時(shí)鐘功能單片機(jī)內(nèi)部具有定時(shí)器,可方便實(shí)現(xiàn)定時(shí)功能,通過計(jì)算可知,是定時(shí)器沒25ms產(chǎn)生一次中斷,當(dāng)產(chǎn)生40次中斷后秒單元將加一,以此類推,從而實(shí)現(xiàn)時(shí),分,秒的走時(shí),并加以顯示.但由于系統(tǒng)晶振誤差,溫漂,中斷響應(yīng)時(shí)間的不確定性及定時(shí)器重新裝載時(shí)間常數(shù)所帶來的誤差,決定它不能用來作為時(shí)鐘的時(shí)基中斷。方案三:專用時(shí)鐘芯片目前市場上已有很多實(shí)時(shí)時(shí)鐘芯片。DS12887.DS1302.DS1307.PCF8563.X1227等,芯片內(nèi)部集成了時(shí)鐘/日歷功能,給時(shí)鐘系統(tǒng)設(shè)計(jì)帶來很多方便。因此計(jì)時(shí)功能宜選用選用專用時(shí)鐘芯片為宜,時(shí)鐘模塊采用方案三來實(shí)現(xiàn)2.2.2鍵盤模塊方案一:采用獨(dú)立按鍵電路每個(gè)按鍵單獨(dú)占用一根I/O接口線,每個(gè)I/O口的工作狀態(tài)互不影響,此類鍵盤采用端口直接掃描方式。但是當(dāng)按鍵較多時(shí)占用單片機(jī)的I/O口數(shù)目。方案二:采用陣列式鍵盤此類鍵盤是采用行列掃描方式,當(dāng)按鍵較多時(shí)可以降低占用單片機(jī)的I/O的I/O數(shù)目。本設(shè)計(jì)中按鍵為八個(gè),需接口多,采用2*4行列式鍵盤2.2.3顯示模塊方案一:使用多個(gè)數(shù)碼管顯示LED數(shù)碼管式利用二極管發(fā)光顯示數(shù)字和字母,具有亮度大,接口設(shè)計(jì)比較容易,價(jià)格相對便宜等優(yōu)點(diǎn)。但是由于它工作電流較大。不能顯示漢字,顯示信息量有限,若在此題目中應(yīng)用就會受到很大限制。方案二:采用液晶顯示液晶特別是具有漢字顯示功能的液晶顯示器,來實(shí)現(xiàn)顯示功能,不僅可以實(shí)現(xiàn)基本的顯示信息,而且可以顯示豐富的符號指示信息以及文字指示信息,信息靈豐富且直觀易懂。而且液晶顯示有功耗低,體積小,重量輕,壽命長,不產(chǎn)生電磁輻射等優(yōu)點(diǎn)。系統(tǒng)采用方案二,設(shè)計(jì)選用LCD1602第三章系統(tǒng)硬件設(shè)計(jì)本系統(tǒng)以Mega16為核心部件,使用串行時(shí)鐘芯片DS1302,實(shí)現(xiàn)時(shí)間和鬧鐘的設(shè)置功能。通過鍵盤和液晶LCD1602提示可方便地校對時(shí)鐘和設(shè)置鬧鐘時(shí)間,且斷電后可實(shí)現(xiàn)自由調(diào)整時(shí)間,同時(shí)具有音樂播放和鬧鈴的的功能,系統(tǒng)的整體框圖如圖3.1所示。3.1數(shù)字萬年歷的硬件結(jié)構(gòu)圖下面介紹下本文涉及到的幾個(gè)部分:3.1Mega16單片機(jī)電路設(shè)計(jì)3.1.1Mega16的介紹Mega16是ATMEL公司的一款高性能、低功耗得8位AVR微處理器,使用先進(jìn)得RISC結(jié)構(gòu),大多數(shù)指令的執(zhí)行時(shí)間為單個(gè)時(shí)鐘周期,所以運(yùn)算速度更快!兩個(gè)具有獨(dú)立預(yù)分頻器和比較器功能的8位定時(shí)器/計(jì)數(shù)器;一個(gè)具有預(yù)分頻器、比較功能和捕捉功能得16位定時(shí)器/計(jì)數(shù)器;具有獨(dú)立振蕩器得實(shí)時(shí)計(jì)數(shù)器RTC;四通道PWM;8路10位ADC8個(gè)單端通道,TQFP封裝的7個(gè)差分通道,可編程得串行USART接口;可工作于主機(jī)/從機(jī)模式得SPI串行接口;面向字節(jié)得兩線串行接口;具有獨(dú)立片內(nèi)振蕩器得可編程看門狗定時(shí)器;片內(nèi)模擬比較器;

其具有的下面特點(diǎn)無論從編程、自編程和加密等方面都給用戶提供了很大得方便!4k字節(jié)的系統(tǒng)內(nèi)可擦寫10*000次的可編程Flash;具有獨(dú)立鎖定位的可選Boot代碼區(qū),通過片上BOOT程序?qū)崿F(xiàn)系統(tǒng)內(nèi)編程;512字節(jié)的擦寫100*000次的EEPROOM;1K字節(jié)的片內(nèi)SRAM,可以對鎖定位進(jìn)行編程以實(shí)現(xiàn)用戶程序的加密!具有以下特點(diǎn):? 先進(jìn)的RISC結(jié)構(gòu)–131條指令–32個(gè)8位通用工作寄存器– 全靜態(tài)工作– 工作于16MHz時(shí)性能高達(dá)16MIPS– 只需兩個(gè)時(shí)鐘周期的硬件乘法器? 非易失性程序和數(shù)據(jù)存儲器· 通過JTAG接口實(shí)現(xiàn)對Flash、EEPROM、熔絲位和鎖定位的編程·2個(gè)具有可編程增益(1x,10x,或200x)的差分通道·上電復(fù)位以及可編程的掉電檢測·片內(nèi)經(jīng)過標(biāo)定的RC振蕩器· 片內(nèi)/片外中斷源·6種睡眠模式:空閑模式、ADC噪聲抑制模式、省電模式、掉電模式、·Standby模式以及擴(kuò)展的Standby模式? 工作電壓:–ATmega16:4.5-5.5V? 速度等級:–0-16MHzATmega163.1.2Mega16的引腳圖及引腳說明VCC:數(shù)字電路的電源GND:地端口A(PA7..PA0):端口A做為A/D轉(zhuǎn)換器的模擬輸入端。端口A為8位雙向I/O口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時(shí),若內(nèi)部上拉電阻使能,端口被外部電路拉低時(shí)將輸出電流。在復(fù)位過程中,即使系統(tǒng)時(shí)鐘還未起振,端口A處于高阻狀態(tài)。端口B(PB7..PB0):端口B為8位雙向I/O口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時(shí),若內(nèi)部上拉電阻使能,端口被外部電路拉低時(shí)將輸出電流。在復(fù)位過程中,即使系統(tǒng)時(shí)鐘還未起振,端口B處于高阻狀態(tài)。端口C(PC7..PC0):端口C為8位雙向I/O口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時(shí),若內(nèi)部上拉電阻使能,端口被外部電路拉低時(shí)將輸出電流。在復(fù)位過程中,即使系統(tǒng)時(shí)鐘還未起振,端口C處于高阻狀態(tài)。如果JTAG接口使能,即使復(fù)位出現(xiàn)引腳PC5(TDI)、PC3(TMS)與PC2(TCK)的上拉電阻被激活。端口D(PD7..PD0):端口D為8位雙向I/O口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時(shí),若內(nèi)部上拉電阻使能,端口被外部電路拉低時(shí)將輸出電流。在復(fù)位過程中,即使系統(tǒng)時(shí)鐘還未起振,端口D處于高阻狀態(tài)。RESET:復(fù)位輸入引腳。持續(xù)時(shí)間超過最小門限時(shí)間的低電平將引起系統(tǒng)復(fù)位,持續(xù)時(shí)間小于門限間的脈沖不能保證可靠復(fù)位XTAL1:反向振蕩放大器與片內(nèi)時(shí)鐘操作電路的輸入端XTAL2:反向振蕩放大器的輸出端.AVCC:AVCC是端口A與A/D轉(zhuǎn)換器的電源。不使用ADC時(shí),該引腳應(yīng)直接與VCC連接.使用ADC時(shí)應(yīng)通過一個(gè)低通濾波器與VCC連接。AREF:A/D的模擬基準(zhǔn)輸入引腳。根據(jù)以上端口的介紹以及具體引腳圖,設(shè)計(jì)中單片機(jī)端口分配表PA口液晶顯示數(shù)據(jù)線PB4~PB7接4*1鍵盤PD3DS1302SCKPD4DS1302I/OPD5DS1302RSTPD6揚(yáng)聲器輸入驅(qū)動PB0,PB1,PB2液晶顯示RS,R/W,E3.2時(shí)鐘接口電路本萬年歷系統(tǒng)的重要部分在于時(shí)鐘和鬧鐘功能模塊,這里選用串行時(shí)鐘芯片dS1302,與采用并行總線與單片機(jī)進(jìn)行數(shù)據(jù)通信的時(shí)鐘芯片相比,DS1302與單片機(jī)的連線大為減少,極大的節(jié)省了單片機(jī)的系統(tǒng)資源3.2.1簡介DS1302

是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對后背電源進(jìn)行涓細(xì)電流充電的能力。

3.2.2引腳介紹及其功能圖1示出DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對DS1302進(jìn)行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc≥2.5V之前,RST必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),SCLK始終是輸入端。

圖1DS1302引腳圖3.2.3DS1302的控制字節(jié)

DS1302

的控制字如圖2所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出圖2DS1302的控制字

在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。

時(shí)序圖如下:3.2.4

DS1302的寄存器

DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時(shí)間寄存器及其控制字見表1表一DS1302的時(shí)鐘,日歷寄存器及控制字寄存器名命令字取值范圍各位內(nèi)容寫操作讀操作76543210秒寄存器80H81H00-59CH10SECSEC分鐘寄存器82H83H00-59010MINMIN小時(shí)寄存器84H85H00-12或00-2312/24110/APHRHR日期寄存器86H87H01-28,29.30.31010DATEDATE月份寄存器88H89H01-120010MMONTH周月寄存器8AH8BH01-070000DAY年份寄存器8CH8DH00-9910YEARYEAR表中12或24小時(shí)的方式選擇位,當(dāng)為1時(shí),選擇12小時(shí)。有AP那位是上午和下午的選擇位,當(dāng)為1是表示為下午。CH是暫停位,當(dāng)CH=1時(shí),時(shí)鐘振蕩停止,器件被置入低功率備份方式,其電源電流小于100NA,當(dāng)CH=0時(shí),時(shí)鐘啟動此外,DS1302

還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。

DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個(gè)字節(jié),命令控制字為FEH(寫)、FFH(讀)3.2.5數(shù)據(jù)輸入輸出在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí)數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位至高位7,數(shù)據(jù)讀寫時(shí)序見圖3。如果命令字節(jié)中的尋址位A0——A4均為1,可以把時(shí)鐘/日歷或RAM存儲器規(guī)定為多字節(jié)方式。當(dāng)命令字節(jié)為FFH或FEH,可以對片內(nèi)31字節(jié)RAM進(jìn)行讀/寫操作;當(dāng)命令字節(jié)為BFH或BEH時(shí),可對8個(gè)時(shí)鐘/日歷寄存器進(jìn)行讀/寫操作,在時(shí)鐘/日歷寄存器中的地址9-31或RAM存儲器中的地址31均不能使用。在多字節(jié)方式中讀或?qū)懚际菑牡刂?的第0位開始。當(dāng)以多字節(jié)方式寫時(shí)鐘/日歷寄存器時(shí),必須按傳送是次序?qū)憹M8個(gè)寄存器;但是,當(dāng)以多字節(jié)方式寫RAM時(shí),根據(jù)發(fā)送的要求,數(shù)據(jù)不必寫入所有31字節(jié)。不管是否寫入全部31字節(jié),所寫的字節(jié)都將傳入送至RAM。另外,應(yīng)注意在寫操作時(shí),CLK的每一個(gè)時(shí)鐘上升沿,一。I/O引線將為高阻態(tài),數(shù)據(jù)必須在CLK上升沿前讀取。長春理工大學(xué)畢業(yè)設(shè)計(jì)3.3液晶顯示電路設(shè)計(jì)本設(shè)計(jì)中的液晶選用LCD1602.液晶顯示模塊可以分為字段,字符點(diǎn)陣,圖形點(diǎn)陣3種。一般只有后者可以顯示漢字和圖形。LCD1602是常見的16×2行,6×8字符點(diǎn)陣液晶模塊,廣泛應(yīng)用于智能儀表、通信、辦公自動化設(shè)備中,其字符發(fā)生器ROM中自帶數(shù)字和英文字母及一些特殊符號的字符庫,沒有漢字。LCD1602的引腳圖如下,引腳功能如下:BLA:背光源正極,接+5V;BLK:背光源負(fù)極,接地;VO:液晶顯示偏壓信號,通過電位器W1調(diào)節(jié),1602偏壓接近0V;RS:接PD.0,決定傳輸類型是數(shù)據(jù)或命令,1-表示數(shù)據(jù),0-表示命令;R/W:接PD.1,讀/寫控制,1一表示讀,O一表示寫;E:接PD.2,使能端,高電平有效;DB0~DB7:數(shù)據(jù)端口,連接PA1602無法顯示漢字,農(nóng)歷的日期就不好顯示了。若要顯示漢字,關(guān)鍵是先要自己建立欲顯示的漢字字庫。1602提供了在片內(nèi)CGRAM的00H-3FH共64個(gè)字節(jié)的空間,可以存放8個(gè)6×8點(diǎn)陣的自建字符庫,其代碼分別為00H-07H,然后在顯示時(shí)只要用處查表法調(diào)用漢字的相應(yīng)代碼就可以了對于本設(shè)計(jì),若進(jìn)行編程實(shí)現(xiàn)自定義的漢字字符,會占用單片機(jī)的內(nèi)存,如果在農(nóng)歷顯示前加以前綴區(qū)分,仍可用公歷格式來顯示農(nóng)歷3.4鍵盤接口電路設(shè)計(jì)在設(shè)計(jì)鍵盤電路時(shí)我們采用2*4的行列式八鍵鍵盤。單片機(jī)通過查詢方式對鍵盤掃描。用軟件算法消除按鍵順勢的抖動。3.5音樂鬧鈴功能設(shè)計(jì)當(dāng)鬧鈴定時(shí)到點(diǎn)時(shí),會觸發(fā)聲音報(bào)警,電路如下Speaker口接至單片機(jī)的PD.6聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單處機(jī)某個(gè)口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時(shí)程序控制“高”“低”電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào)。我們將每一音符的時(shí)間常數(shù)和其相應(yīng)的節(jié)拍常數(shù)作為一組,按順序?qū)非械乃谐?shù)排列成一個(gè)表,然后由查表程序依次取出,產(chǎn)生音符并控制節(jié)奏,就可以實(shí)現(xiàn)演奏效果。此外,結(jié)束符和體止符可以分別用代碼00H和FFH來表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。為了產(chǎn)生手彈的節(jié)奏感,在某些音符(例如兩個(gè)相同音符)音插入一個(gè)時(shí)間單位的頻率略有不同的音符。3.6仿真接口電路采用AVR仿真機(jī)對硬件電路的軟件編程進(jìn)行仿真,再硬件電路里加JTAG接口,通過下載線連硬件與仿真機(jī),燒入程序和進(jìn)行仿真JTAG主要用于芯片內(nèi)部測試?,F(xiàn)在多數(shù)的高級器件都支持JTAG協(xié)議,如DSP、FPGA器件等。標(biāo)準(zhǔn)的JTAG接口是4線:TMS、TCK、TDI、TDO,分別為模式選擇、時(shí)鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出線。JTAG最初是用來對芯片進(jìn)行測試的,基本原理是在器件內(nèi)部定義一個(gè)TAP(TestAccessPort�測試訪問口)通過專用的JTAG測試工具對進(jìn)行內(nèi)部節(jié)點(diǎn)進(jìn)行測試。JTAG測試允許多個(gè)器件通過JTAG接口串聯(lián)在一起,形成一個(gè)JTAG鏈,能實(shí)現(xiàn)對各個(gè)器件分別測試。現(xiàn)在,JTAG接口還常用于實(shí)現(xiàn)ISP(In-Systemrogrammable�在線編程),對FLASH等器件進(jìn)行編程。JTAG編程方式是在線編程,傳統(tǒng)生產(chǎn)流程中先對芯片進(jìn)行預(yù)編程現(xiàn)再裝到板上因此而改變,簡化的流程為先固定器件到電路板上,再用JTAG編程,從而大大加快工程進(jìn)度。JTAG接口可對PSD芯片內(nèi)部的所有部件進(jìn)行編程其引腳圖如下:8腳懸空,1.3.5.九腳分別與 MEGA16的第四章系統(tǒng)軟件主要設(shè)計(jì)流程4.1 綜述軟件系統(tǒng)在本設(shè)計(jì)中尤其重要,基本功能大部分是由軟件完成的,發(fā)揮功能的關(guān)鍵控制部分同樣需要軟件的密切配合才能順利實(shí)現(xiàn)。鑒于軟件設(shè)計(jì)的復(fù)雜性和規(guī)模性,我們采用AVR編譯器支持的C語言編程,放棄了效率高但可讀性不強(qiáng)的匯編語言。整個(gè)軟件系統(tǒng)采用模塊化的程序設(shè)計(jì)方法,共分為時(shí)間設(shè)定,顯示程序,鬧鈴設(shè)定,鍵盤設(shè)定四個(gè)部分。此系統(tǒng)完成的主要功能有:時(shí)間、日期設(shè)定與顯示,鬧鈴設(shè)定,整點(diǎn)報(bào)時(shí),跑表的啟動/停止/保持顯示/清除,音樂播放。4.2系統(tǒng)軟件主流程圖本設(shè)計(jì)的主要編程思想是:初始化設(shè)備后,讀取DS1302的寄存器地址所存放的數(shù)據(jù),將其顯示在LCD上,掃描鍵盤,有鍵按下,就進(jìn)入設(shè)置界面,根據(jù)鍵值執(zhí)行相應(yīng)的鬧鈴和時(shí)鐘設(shè)置。完成設(shè)置后,將設(shè)置后的時(shí)間送給DS1302的寄存器,單片機(jī)從DS1302中讀入此數(shù)據(jù)顯示在LCD上4.3音樂鬧鈴程序聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單處機(jī)某個(gè)口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時(shí)程序控制“高”“低”電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào)。我們將每一音符的時(shí)間常數(shù)和其相應(yīng)的節(jié)拍常數(shù)作為一組,按順序?qū)非械乃谐?shù)排列成一個(gè)表,然后由查表程序依次取出,產(chǎn)生音符并控制節(jié)奏,就可以實(shí)現(xiàn)演奏效果。此外,結(jié)束符和體止符可以分別用代碼00H和FFH來表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。為了產(chǎn)生手彈的節(jié)奏感,在某些音符(例如兩個(gè)相同音符)音插入一個(gè)時(shí)間單位的頻率略有不同的音符。具體流程圖如下:4.4鍵盤程序鍵盤采用查詢方式進(jìn)行掃描,對兩行鍵盤依次進(jìn)行掃描。根據(jù)掃描的鍵值執(zhí)行相應(yīng)的功能4.5農(nóng)歷算法本設(shè)計(jì)中的難點(diǎn)即為陰歷算法,解決了這個(gè)問題,才能顯示農(nóng)歷4.5.1農(nóng)歷算法的理論研究農(nóng)歷是我國的一種歷法,又稱夏歷、中歷、舊歷,俗稱陰歷。定月的方法是用朔望月周期給出,朔所在日為初一,朔望月長約29天半,所以農(nóng)歷大月30天,小月29天。農(nóng)歷平年有十二個(gè)月,全年354天或355天,閏年為十三個(gè)月,其中某一月為閏月,月名依前一月名而定,如前月是八月,閏月則為閏八月。閏年全年383天或384天。設(shè)置閏月的方法是:農(nóng)歷月份中無“中氣”的月份則是閏月。

農(nóng)歷平年、閏年的月數(shù)、天數(shù)一覽表3年月數(shù)大月天數(shù)小月天數(shù)全年天數(shù)閏月設(shè)置方法平年12302935419年7個(gè)閏月閏年133029383(或384)無中氣月份為閏月二十四節(jié)氣中四季“節(jié)氣”和“中氣如下:

四季春夏秋冬

節(jié)氣立春驚蟄清明立夏芒種小暑立秋白露寒露立冬大雪小寒

中氣雨水春分谷雨小滿夏至大暑處暑秋分霜降小雪冬至大寒陰歷最大的問題是在如何置閏。陰歷基本法則如下:

*月朔日即是初一

*月以中氣得名

*以包含雨水中氣月為正月,即是「寅」月

*月無中氣者為閏月,以前月同名

6c1要求出農(nóng)歷算法即求任一公歷年的農(nóng)歷日期。根據(jù)存在的公農(nóng)歷轉(zhuǎn)換數(shù)據(jù)表,查找和計(jì)算出當(dāng)前顯示的公歷的農(nóng)歷日期。首先是要保存公農(nóng)歷之間的轉(zhuǎn)換信息:以任意一年作為起點(diǎn),把從這一年起若干年的農(nóng)歷信息保存起來。根據(jù)上表要保存一年的信息其實(shí)只要兩個(gè)信息就能了:1、農(nóng)歷每個(gè)月的大??;2、今年是否有閏月,閏幾月及閏月的大小。用一個(gè)整數(shù)來保存這些信息就足夠了。具體的方法是:用三個(gè)字節(jié)來表示公歷對應(yīng)的農(nóng)歷數(shù)據(jù),格式第一字節(jié)BIT7-4位表示閏年月份,值為0為無閏月,BIT3-0對應(yīng)農(nóng)歷第1-4月的大小。第二字節(jié)BIT7-0對應(yīng)農(nóng)歷第5-12月大小,第三字節(jié)BIT7表示農(nóng)歷第13個(gè)月大月份對應(yīng)的位1表示本農(nóng)歷月大(30天),為0表示小(29天)第三字節(jié)表示春節(jié)的公歷月份,BIT4-0表示春節(jié)的公歷日期.這樣建立了農(nóng)歷年對應(yīng)的農(nóng)歷數(shù)據(jù)表。建立表后,具體的算法如下:1)從數(shù)據(jù)表中取得當(dāng)年春節(jié)的公歷日期計(jì)算此公歷日期距當(dāng)年元旦和春節(jié)離元旦的天數(shù)。從而算出公歷日期距春節(jié)的天數(shù)X,判斷公歷日和春節(jié)的前后2)公歷日在春節(jié)后,農(nóng)歷年=公歷年,農(nóng)歷月從1月開始,判斷是否是閏3)取農(nóng)歷月天數(shù)Y,大月30天,小月29天,判斷X,Y大小,如果X不小于Y,X減去當(dāng)月天數(shù),若農(nóng)歷月非閏月,農(nóng)歷月加1.循環(huán)此過程,X小于Y跳出循環(huán),農(nóng)歷日=X+14)公歷日在春節(jié)前,農(nóng)歷年=公歷年減1,相應(yīng)的數(shù)據(jù)表的地址減三,定位到前一年,農(nóng)歷月從12月開始5)取農(nóng)歷月天數(shù)Y,大月30天,小月29天,如果X大于Y,X減去當(dāng)月的天數(shù),農(nóng)歷月非閏月,農(nóng)歷月減1,循環(huán)此過程,如果X不小于Y,跳出循環(huán),農(nóng)歷日=Y-X+14.5.2.陰歷算法的流程圖在編程時(shí),為了方便運(yùn)算,將數(shù)據(jù)轉(zhuǎn)換為HEX格式,農(nóng)歷日期求出后轉(zhuǎn)換成標(biāo)準(zhǔn)格式。其流程圖如下:第五章系統(tǒng)測試本設(shè)計(jì)的硬件電路和軟件編程后,先用Proteus進(jìn)行仿真,對硬件電路進(jìn)行模擬,得到預(yù)想的結(jié)果后,焊接硬件,對硬件電路進(jìn)行實(shí)物仿真,得到最夠的測試結(jié)果5.1軟件仿真Proteus它不僅能仿真單片機(jī)CPU的工作情況,也能仿真單片機(jī)外圍電路或沒有單片機(jī)參與的其它電路的工作情況。因此在仿真和程序調(diào)試時(shí),觀察的不再是某些語句執(zhí)行時(shí)單片機(jī)寄存器和存儲器內(nèi)容的改變,而是從工程的角度直接看程序運(yùn)行和電路工作的過程和結(jié)果。proteus的工作過程運(yùn)行proteus的ISIS程序后,進(jìn)入該仿真軟件的主界面。在工作前,要設(shè)置view菜單下的捕捉對齊和system下的顏色、圖形界面大小等項(xiàng)目。通過工具欄中的p(從庫中選擇元件命令)命令,在pickdevices窗口中選擇電路所需的元件,放置元件并調(diào)整其相對位置,元件參數(shù)設(shè)置,元器件間連線,編寫程序;在source菜單的Definecodegenerationtools菜單命令下,選擇程序編譯的工具、路徑、擴(kuò)展名等項(xiàng)目;在source菜單的Add/removesourcefiles命令下,加入單片機(jī)硬件電路的對應(yīng)程序;通過debug菜單的相應(yīng)命令仿真程序和電路的運(yùn)行情況。5.2實(shí)物仿真Proteus仿真完,實(shí)現(xiàn)設(shè)計(jì)所預(yù)想的功能后,焊接電路,對實(shí)物進(jìn)行仿真測試,仿真環(huán)境即測試環(huán)境是:AVRStudio4.07以上版本,9-15DC電源,PC與RS232口。5.2.1測試過程(1)安裝AVRStudio:在安裝AVRStudio時(shí)將隨機(jī)提供的光盤放入CD-ROM中,選取avrstuio4。07目錄中的setup.Exe文件,按照安裝向?qū)崾镜牟襟E進(jìn)行即可。

(2)在啟動AVRStudio之前,把JTAGICE連接在上位PC和目標(biāo)板之間,確保AVRStudio可以完成自動偵測連接情況。

(3)仿真器與上位機(jī)的連接,將隨機(jī)帶的“串行通訊電纜”一頭與仿真器的“串行通訊口”相接,另一頭與計(jì)算機(jī)任意串口相接。注意:AVRStudio不能同其他程序共享串口資源,在打開AVRStudio前要關(guān)閉其他使用該串口的程序

(4)JTAGICE同目標(biāo)板的連接:最小需要6條線與目標(biāo)板相連,才可以完成仿真任務(wù),他們是:TCK、TMS、TDO、TDI、Vref、GND,另外有

溫馨提示

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

最新文檔

評論

0/150

提交評論