版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、學(xué)士學(xué)位畢業(yè)論文(設(shè)計(jì))題 目:基于單片機(jī)的12864時(shí)鐘顯示摘要電子時(shí)鐘是一種非常廣泛日常計(jì)時(shí)工具,給人們的帶來了很大的方便,在社會(huì)上越來越流行。它可以對(duì)年、月、日、星期、時(shí)、分、秒進(jìn)行計(jì)時(shí),采用直觀的數(shù)字顯示,可以同時(shí)顯示年月日時(shí)分秒等信息,還有時(shí)間校準(zhǔn)等功能。該電子時(shí)鐘主要采用stc89c52單片機(jī)作為主控核心,用ds1302時(shí)鐘芯片作為時(shí)鐘、液晶12864顯示屏顯示。stc89c52單片機(jī)是由深圳宏晶科技公司推出的,功耗小,電壓可選用46v電壓供電;ds1302時(shí)鐘芯片是美國(guó)dallas公司推出的具有細(xì)電流充電功能的低功耗實(shí)時(shí)時(shí)鐘芯片,它可以對(duì)年、月、日、星期、時(shí)、分、秒進(jìn)行計(jì)時(shí),還具
2、有閏年補(bǔ)償?shù)榷喾N功能,而且ds1302的使用壽命長(zhǎng),誤差??;數(shù)字顯示是采用的12864液晶顯示屏來顯示,可以同時(shí)顯示年、月、日、星期、時(shí)、分、秒等信息。此外,該電子時(shí)鐘還具有時(shí)間校準(zhǔn)等功能。關(guān)鍵詞:stc89c51單片機(jī),ds1302時(shí)鐘芯片,液晶12864abstract electronic clock is a very extensive daily timing tool, to the people has brought great convenience, more and more popular in the community. it can be the year, m
3、onth, date, day, hour, minute, second for a time, using intuitive digital display, can display information such as year, month, day, hour, and time alignment functions. the electronic clock is used mainly as a master stc89c52 microcontroller core, with theds1302 clock chip as a clock, lcd display128
4、64. stc89c52 scm is a shenzhen hong crystal technology has introduced, power consumption, voltage can be selected 4 6v voltage power supply; ds1302 clock chip is american dallas company launched with a fine current charging low-power real-time clock chip, it can year, month, date, day, hour, minute,
5、 second for a time, also has a leap year compensation and other functions, ds1302 and long life, small error; 12864 lcd digital display is used to display that can display year, month, date, day, hour, minute, second and so on. in addition, the electronic clock also has a time calibration function.k
6、ey words: stc89c51 microcontroller, ds1302 clock chip, lcd 12864目錄1緒論11.1時(shí)鐘發(fā)展史11.2 目前的研究現(xiàn)狀21.3研究目的及意義22 總體方案設(shè)計(jì)32.1 方案的選擇321.1設(shè)計(jì)要求321.2方案的選擇32.2總體方案組成框圖43系統(tǒng)硬件設(shè)計(jì)43. 1主芯片模塊43.1.1 中斷系統(tǒng)63.1.2常用寄存器63.2晶振和復(fù)位電路83.2.1晶振電路83.2.2復(fù)位電路93.3 ds1302時(shí)鐘芯片電路93.3.1 ds1302引腳圖93.3.2 ds1302寄存器103.3.3 ds1302外圍電路113.4 lcd12
7、864顯示模塊113.4.1 lcd12864引腳功能113.4.2 lcd12864指令說明123.4.3 lcd12864電路接線143.5 紅外遙控模塊144 系統(tǒng)軟件設(shè)計(jì)1541 主程序設(shè)計(jì)154.2 lcd12864驅(qū)動(dòng)程序174.3 ds1302驅(qū)動(dòng)程序194.4 紅外遙控程序225 調(diào)試結(jié)果245.1 正常顯示日期時(shí)間畫面245.2 進(jìn)入調(diào)整時(shí)間日期畫面245.3圖片顯示畫面256總結(jié)26致謝27參考文獻(xiàn)28附錄一29附錄二301緒論1.1時(shí)鐘發(fā)展史很早以前,人類主要是利用天文現(xiàn)象和流動(dòng)物質(zhì)的連續(xù)運(yùn)動(dòng)來計(jì)時(shí)。例如,日晷是利用日影的方位計(jì)時(shí),陰雨天和夜里沒法使用且測(cè)量誤差較大;漏壺
8、和沙漏是利用水流和沙流的流量計(jì)時(shí),雖然晚上可以使用,但是水容易結(jié)冰,誤差還是大。后來人們發(fā)明了機(jī)械鐘,以機(jī)械振動(dòng)系統(tǒng)為時(shí)間基準(zhǔn),實(shí)現(xiàn)對(duì)時(shí)間的計(jì)量,誤差達(dá)到一天一分鐘左右。而如今的數(shù)字鐘用數(shù)字電路實(shí)現(xiàn)時(shí)、分、秒,精度較高,一天的誤差不到一秒。目前精度最高的時(shí)鐘要屬原子鐘,其每天的誤差小于一億分之一秒。 隨著人們生活水平的提高和生活節(jié)奏的加快,對(duì)時(shí)間的要求越來越高,精準(zhǔn)數(shù)字計(jì)時(shí)的消費(fèi)需求也是越來越多。二十一世紀(jì)的今天,最具代表性的計(jì)時(shí)產(chǎn)品就是電子萬年歷,它是近代世界鐘表業(yè)界的第三次革命。第一次是擺和擺輪游絲的發(fā)明,相對(duì)穩(wěn)定的機(jī)械振蕩頻率源使鐘表的走時(shí)差從分級(jí)縮小到秒級(jí),代表性的產(chǎn)品就是帶有擺或擺輪
9、游絲的機(jī)械鐘或表。第二次革命是石英晶體振蕩器的應(yīng)用,發(fā)明了走時(shí)精度更高的石英電子鐘表,使鐘表的走時(shí)和月差從分級(jí)縮小到秒級(jí)。第三次革命就是單片機(jī)數(shù)碼計(jì)時(shí)技術(shù)的應(yīng)用(電子萬年歷),使計(jì)時(shí)產(chǎn)品的走時(shí)日差從分級(jí)縮小到1/600萬秒,從原有傳統(tǒng)指針計(jì)時(shí)的方式發(fā)展為人們?nèi)粘8鼮槭煜さ囊构鈹?shù)字顯示方式,直觀明了,并增加了全自動(dòng)日期、星期、溫度以及其他日常附屬信息的顯示功能,它更符合消費(fèi)者的生活需求!因此,電子萬年歷的出現(xiàn)帶來了鐘表計(jì)時(shí)業(yè)界跨躍性的進(jìn)步。1.2 目前的研究現(xiàn)狀我國(guó)生產(chǎn)的電子萬年歷有很多種,總體上來說以研究多功能電子萬年歷為主,使萬年歷除了原有的顯示時(shí)間,日期等基本功能外,還具有鬧鈴,報(bào)警等功能
10、。商家生產(chǎn)的電子萬年歷更從質(zhì)量,價(jià)格,實(shí)用上考慮,不斷的改進(jìn)電子萬年歷的設(shè)計(jì),使其更加的具有市場(chǎng)。在國(guó)內(nèi),電子鐘因lcd數(shù)字顯示效用直接有效,所以大多運(yùn)用在城市的主要營(yíng)業(yè)場(chǎng)所,以及車站、碼頭等公共場(chǎng)所。在對(duì)公共場(chǎng)所的電子鐘設(shè)定的時(shí)候,使用者還可根據(jù)周邊的氣候、溫度等對(duì)lcd屏進(jìn)行設(shè)置。同時(shí),因?yàn)閘cd的顯示耗電量很省,所以能夠保持持續(xù)的工作效果。1.3研究目的及意義電子鐘亦稱數(shù)字顯示鐘,是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械時(shí)鐘相比,直觀性為其主要顯著特點(diǎn),且因非機(jī)械驅(qū)動(dòng),具有更長(zhǎng)的使用壽命,相較石英鐘的石英機(jī)芯驅(qū)動(dòng),更具準(zhǔn)確性。電子鐘已成為人們?nèi)粘I钪斜夭豢缮俚谋匦杵?,廣泛用
11、于個(gè)人家庭以及車站、碼頭、劇院、辦公室等公共場(chǎng)所,給人們的生活、學(xué)習(xí)、工作、娛樂帶來極大地方便。相對(duì)于其他時(shí)鐘類型,它的特點(diǎn)可歸結(jié)為“兩強(qiáng)一弱 ”:比機(jī)械鐘強(qiáng)在觀時(shí)顯著,比石英鐘強(qiáng)在走時(shí)準(zhǔn)確,但是它的弱點(diǎn)為顯示較為單調(diào)。鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。除了采用集成化的時(shí)鐘芯片外,還有采用mcu的方案,利用stc89系列單片微機(jī)制成萬年
12、歷電路,采用軟件和硬件結(jié)合的方法,控制輸出,分別用來顯示年、月、日、時(shí)、分、秒,其最大特點(diǎn)是:硬件電路簡(jiǎn)單,安裝方便易于實(shí)現(xiàn),軟件設(shè)計(jì)獨(dú)特,可靠。stc89c51是由深圳宏晶科技公司推出的一種小型單片機(jī)。其主要特點(diǎn)為采用flash存貯器技術(shù),降低了制造成本,其軟件、硬件與mcs-51完全兼容,可以很快被廣大用戶接受。本文介紹了基于stc89c51單片機(jī)設(shè)計(jì)的電子時(shí)鐘??梢酝瑫r(shí)顯示年、月、日、星期、時(shí)、分、秒等信息,還具有時(shí)間紅外校準(zhǔn)等功能。2 總體方案設(shè)計(jì) 2.1 方案的選擇21.1設(shè)計(jì)要求a具有年、月、日、周、時(shí)、分、秒的顯示功能;b具有年、月、日、周、時(shí)、分、秒的校準(zhǔn)功能;c具有圖片顯示功
13、能;d具有紅外遙控功能。21.2方案的選擇本課題是基于單片機(jī)控制的電子時(shí)鐘設(shè)計(jì),mcs-51系列的單片機(jī)集成了8位cpu、4k字節(jié)rom、128字節(jié)ram、2個(gè)16位定時(shí)器/計(jì)數(shù)器和4個(gè)8位i/o口等基本功能部件,基本能滿足本課題的研究,所以主控芯片選擇stc89c51單片機(jī)。時(shí)鐘的顯示功能用128*64lcd來實(shí)現(xiàn),其顯示分辨率為12864,內(nèi)置8192個(gè)16*16點(diǎn)漢字,和128 個(gè)16*8 點(diǎn)ascii 字符集.利用該模塊靈活的接口方式和簡(jiǎn)單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面??梢燥@示84 行1616 點(diǎn) 陣的漢字,也可完成圖形顯示。低電壓低功耗是其又一顯著特點(diǎn)。由該模塊構(gòu)成
14、的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡(jiǎn)潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊。為了更精確的顯示時(shí)間,需要一時(shí)鐘芯片來進(jìn)行計(jì)時(shí)。ds1302是由美國(guó)dallas公司推出的具有涓細(xì)電流充電能力的低功耗實(shí)時(shí)時(shí)鐘芯片。它可以對(duì)年、月、日、周、時(shí)、分、秒進(jìn)行計(jì)時(shí),且具有閏年補(bǔ)償?shù)榷喾N功能。對(duì)于紅外遙控功能,主要用來調(diào)整時(shí)間和切換顯示頁(yè)面。本課題中選用通用紅外遙控器和紅外接收頭。2.2總體方案組成框圖根據(jù)以上硬件的選擇,系統(tǒng)的硬件框圖2.1所示。時(shí)鐘芯片ds1302紅外遙控stc89c51主控芯片12864lcd復(fù)位電路晶振電路圖2.1 系統(tǒng)硬件框
15、圖3系統(tǒng)硬件設(shè)計(jì) 3. 1主芯片模塊stc89c51單片的引腳功能圖如圖3.1所示,邏輯符號(hào)如圖3.2所示,它有40個(gè)引腳。圖3.1 stc89c51引腳圖 圖3.2 stc89c51邏輯圖(1) 電源引腳(a) vcc(40):電源正端,外接+5v。(b) vss(20):接地。(2) 時(shí)鐘電路引腳xtal1(18)、xtal2(19):xtal1為片內(nèi)振蕩電路的輸入端,xtal2為片內(nèi)振蕩電路的輸出端。8051的時(shí)鐘有兩種方式,一種是片內(nèi)振蕩方式,需在這兩個(gè)腳外接石英晶體和振蕩電容,振蕩電容一般取10p30p;另一種是外部時(shí)鐘方式,即將xtal 1接地,外部時(shí)鐘信號(hào)從xtal 2腳輸入。(
16、3) 控制引腳(a) ale/prog(30):地址鎖存控制信號(hào)/編程脈沖輸入端。(b) psen(29):外部程序存儲(chǔ)器的選通信號(hào)。(c) ea/vpp(31):外部程序存儲(chǔ)器地址允許輸入端/編程電壓輸入端。(d) reset/vpt(9):復(fù)位/備用電源輸入引腳。在該引腳上輸入24個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即復(fù)位。(4) 輸入/輸出引腳(a) p0.0p0.7(3932):8位雙向并行i/o口,p0口可作為通用雙向i/o口。在外接數(shù)據(jù)、程序存儲(chǔ)器時(shí),可作為低8位地址/數(shù)據(jù)總線復(fù)用引腳。(b) p1.0p1.7(18):8位雙向并行i/o口。(c) p2.0p2.7(2128):8位雙向并
17、行i/o口。p0口可作為通用雙向i/o口。在外接數(shù)據(jù)、程序存儲(chǔ)器時(shí),可作為高8位地址輸出引腳。(d) p3.0p3.7(1017):8位雙向并行i/o口。p3口除了作為通用i/o口使用外,每一個(gè)引腳都可以復(fù)用。3.1.1 中斷系統(tǒng)8051單片機(jī)允許5個(gè)中斷源:(1)外部中斷源(2個(gè))由int0(p3.2)引腳和int1(p3.3)引腳引入。這兩個(gè)中斷源的請(qǐng)求方式有兩種:低電平觸發(fā)或下降沿觸發(fā)。(2)內(nèi)部中斷源(2個(gè))t0:定時(shí)/計(jì)數(shù)器0中斷,由t0溢出引起。t1:定時(shí)/計(jì)數(shù)器1中斷,由t1溢出引起。(3)ti/ri(1個(gè))串行i/o口中斷,由一幀字符發(fā)送/接收完后引起。3.1.2常用寄存器(1
18、)定時(shí)器方式控制寄存器tmodtmod(89h)d7d6d5d4d3d2d1d0gatec/tm1m0gatec/tm1m0工作方式選擇位m1、m0定義如下:m1m0工作方式功能描述00方式0初值寄存器tl的低5位與th的8位構(gòu)成13位計(jì)數(shù)器01方式116位計(jì)數(shù)器10方式2自動(dòng)重裝初值的8位計(jì)數(shù)器11方式3僅用于t0,分為兩個(gè)8位計(jì)數(shù)器,t1停止工作gate=0:軟件啟動(dòng)定時(shí)器,使trx置“1”即可啟動(dòng)定時(shí)器;=1:軟件和硬件共同啟動(dòng)定時(shí)器,除了要使trx置“1”外,外部中斷請(qǐng)求信號(hào)輸入端intx還必須輸入高電平才能啟動(dòng)定時(shí)器。c/t=0:定時(shí)器方式工作; =1:計(jì)數(shù)器方式工作。(2)定時(shí)控制
19、寄存器tcontcon(88h)d7d6d5d4d3d2d1d0tf1tr1tf0tr0ie1it1ie0it0tf0/tf1:定時(shí)器溢出中斷申請(qǐng)標(biāo)志位(由硬件自動(dòng)置位)。tf0/tf1=0:定時(shí)器未溢出; =1:定時(shí)器溢出時(shí)硬件自動(dòng)置位,申請(qǐng)中斷。tr0/tr1:定時(shí)器啟動(dòng)/停止控制位。tr0/tr1=0:定時(shí)器停止; =1:定時(shí)器啟動(dòng)。ie0/ie1:外部中斷申請(qǐng)標(biāo)志位(由硬件自動(dòng)置位,中斷響應(yīng)后轉(zhuǎn)向中斷服務(wù)程序時(shí),由由硬件自動(dòng)清零)ie0/ie1=0:沒有外部中斷申請(qǐng); =1:有外部中斷申請(qǐng)。it0/it1:外部中斷請(qǐng)求的觸發(fā)方式控制位。it0/it1=0:在int0/int1端申請(qǐng)中斷
20、的信號(hào)低電平有效; =1:在int0/int1端申請(qǐng)中斷的信號(hào)下降沿有效。(3)中斷允許寄存器ie。ie(a8h)d7d6d5d4d3d2d1d0ea-et2eset1ex1et0ex0es串行口中斷允許位。=0:禁止中斷;=1允許中斷。et1定時(shí)/計(jì)數(shù)器t1的溢出中斷允許位。=0:禁止中斷;=1允許中斷ex1外部中斷1中斷允許位。=0:禁止中斷;=1允許中斷et0定時(shí)/計(jì)數(shù)器t0的溢出中斷允許位。=0:禁止中斷;=1允許中斷ex0外部中斷0中斷允許位。=0:禁止中斷;=1允許中斷ea總的中斷允許控制位(總開關(guān))。=0:禁止所有中斷;=1:允許中斷。3.2晶振和復(fù)位電路3.2.1晶振電路如圖3
21、.3所示,stc89c51單片機(jī)的內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,它的輸入端為xtal1引腳,輸出端為xtal2引腳,兩個(gè)跨接石英晶體及兩個(gè)電容就可以構(gòu)成穩(wěn)定的自激振蕩器。電容器通常取30pf左右。圖3.3 晶振電路 圖3.4 復(fù)位電路3.2.2復(fù)位電路往單片機(jī)的復(fù)位引腳上輸入24個(gè)時(shí)鐘周期以上的高電平,即執(zhí)行復(fù)位操作。按鍵復(fù)位是指系統(tǒng)在運(yùn)行時(shí),按下一個(gè)開關(guān),就能在rst引腳產(chǎn)生一段時(shí)間的高電平,使系統(tǒng)復(fù)位,常見的按鍵復(fù)位電路如圖3.4所示。對(duì)12mhz晶振頻率而言,電路中c取10pf,r取1k。3.3 ds1302時(shí)鐘芯片電路3.3.1 ds1302引腳圖如圖3.5為ds1302
22、的引腳圖,圖3.6為邏輯圖。圖3.5 ds1302引腳圖 圖3.6 ds1302邏輯圖各引腳的功能為:vcc1:主電源;vcc2:備用電源。當(dāng)vcc2vcc1+0.2v時(shí),由vcc2向ds1302供電,當(dāng)vcc2vcc1時(shí),由vcc1向ds1302供電。sclk:串行時(shí)鐘,輸入,控制數(shù)據(jù)的輸入與輸出; i/o:雙向數(shù)據(jù)線;x1、x2:晶振引腳;ce:輸入信號(hào),在讀、寫數(shù)據(jù)期間,必須為高。該引腳有兩個(gè)功能:第一,ce開始控制字訪問移位寄存器的控制邏輯;其次,ce提供結(jié)束單字節(jié)或多字節(jié)數(shù)據(jù)傳輸?shù)姆椒ā?.3.2 ds1302寄存器ds1302有關(guān)日歷、時(shí)間的寄存器共有12個(gè),其中有7個(gè)寄存器(讀時(shí)
23、81h8dh,寫時(shí)80h8ch),存放的數(shù)據(jù)格式為bcd碼形式,如圖3.7所示。 圖3.7 ds1302日歷、時(shí)間寄存器小時(shí)寄存器(85h、84h)的位7用于定義ds1302是運(yùn)行于12小時(shí)模式還是24小時(shí)模式。當(dāng)為高時(shí),選擇12小時(shí)模式。在12小時(shí)模式時(shí),位5是,當(dāng)為1時(shí),表示pm。在24小時(shí)模式時(shí),位5是第二個(gè)10小時(shí)位。秒寄存器(81h、80h)的位7定義為時(shí)鐘暫停標(biāo)志(ch)。當(dāng)該位置為1時(shí),時(shí)鐘振蕩器停止,ds1302處于低功耗狀態(tài);當(dāng)該位置為0時(shí),時(shí)鐘開始運(yùn)行??刂萍拇嫫鳎?fh、8eh)的位7是寫保護(hù)位(wp),其它7位均置為0。在任何的對(duì)時(shí)鐘和ram的寫操作之前,wp位必須為0
24、。當(dāng)wp位為1時(shí),寫保護(hù)位防止對(duì)任一寄存器的寫操作。3.3.3 ds1302外圍電路 圖3.8 ds1302外圍電路ds1302只有3個(gè)引腳與單片機(jī)相連,分別是rst(5)、sclk(7)和i/o(6),其2、3引腳接32768hz晶振,如圖3.8。3.4 lcd12864顯示模塊3.4.1 lcd12864引腳功能管腳號(hào)管腳名稱管腳功能1vss接地2vdd電源+5v3v0對(duì)比度調(diào)整4rsrs=h,db0-db7為數(shù)據(jù)rs=l,db0-db7為指令5r/wr/w=h,e=h,讀數(shù)據(jù)r/w=l,e=hl,寫數(shù)據(jù)6e使能端7-14db0db78位數(shù)據(jù)口15psbpsb=h,并行方式psb=l,串行
25、方式16nc空腳17rst復(fù)位端,低電平有效18voutlcd驅(qū)動(dòng)電壓輸出端19a背光源正端+520k背光源負(fù)端 表3.1 lcd12864引腳說明 圖3.9 12864引腳圖 圖3.9所示為帶中文字庫(kù)lcd12864引腳圖,表3.1為引腳說明。該液晶顯示模塊由128*64點(diǎn)陣組成,可顯示漢字及圖形,內(nèi)置8192個(gè)中文漢字(16*16點(diǎn)陣)、128個(gè)字符(8*16)點(diǎn)陣,8位并行及串行連接方式??刂埔_說明(a) rs、r/w四種模式rsr/w功能說明llmpu寫指令到指令暫存器(ir)lh讀出忙標(biāo)志(bf)及地址計(jì)數(shù)器(ac)狀態(tài)hlmpu寫入數(shù)據(jù)到數(shù)據(jù)暫存器(dr)hhmpu從數(shù)據(jù)暫存器(
26、dr)中讀出數(shù)據(jù)(b) e信號(hào)e狀態(tài)功能hl配合/w進(jìn)行寫數(shù)據(jù)或指令h配合r進(jìn)行讀數(shù)據(jù)或指令l/lh無動(dòng)作說明:bf標(biāo)志提供內(nèi)部工作情況bf=1表示模塊在進(jìn)行內(nèi)部操作,此時(shí)模塊不接受外部指令和數(shù)據(jù).bf=0時(shí),模塊為準(zhǔn)備狀態(tài),隨時(shí)可接受外部指令和數(shù)據(jù)。3.4.2 lcd12864指令說明(1)顯示開/關(guān)設(shè)置 r/wr/sdb7db6db5db4db3db2db1db0llllhhhhhh/l功能:設(shè)置屏幕顯示開/關(guān)。 db0=h,開顯示;db0=l,關(guān)顯示。(2)設(shè)置顯示起始行r/wr/sdb7db6db5db4db3db2db1db0llhh行地址(063)功能:執(zhí)行該命令后,所設(shè)置的行將顯
27、示在屏幕的第一行。顯示起始行是由z地址計(jì)數(shù)器控制的,該命令自動(dòng)將a0-a5位地址送入z地址計(jì)數(shù)器,起始地址可以是0-63范圍內(nèi)任意一行。z地址計(jì)數(shù)器具有循環(huán)計(jì)數(shù)功能,用于顯示行掃描同步,當(dāng)掃描完一行后自動(dòng)加一。(3)設(shè)置列地址r/wr/sdb7db6db5db4db3db2db1db0lllh列地址(063)功能:ddram的列地址存儲(chǔ)在y地址計(jì)數(shù)器中,讀寫數(shù)據(jù)對(duì)列地址有影響,在對(duì)ddram進(jìn)行讀寫操作后,y地址自動(dòng)加一。(4)狀態(tài)檢測(cè)r/wr/sdb7db6db5db4db3db2db1db0hlbflon/offrstllll功能:讀忙信號(hào)標(biāo)志位(bf)、復(fù)位標(biāo)志位(rst)以及顯示狀態(tài)位
28、(on/off)。bf=h:內(nèi)部正在執(zhí)行操作;bf=l:空閑狀態(tài)。rst=h:正處于復(fù)位初始化狀態(tài);rst=l:正常狀態(tài)。on/off=h:表示顯示關(guān)閉;on/off=l:表示顯示開。(5)寫顯示數(shù)據(jù)r/wr/sdb7db6db5db4db3db2db1db0lhd7d6d5d4d3d2d1d0功能:寫數(shù)據(jù)到ddram,ddram是存儲(chǔ)圖形顯示數(shù)據(jù)的,寫指令執(zhí)行后y地址計(jì)數(shù)器自動(dòng)加1。d7-d0位數(shù)據(jù)為1表示顯示,數(shù)據(jù)為0表示不顯示。(6)讀顯示數(shù)據(jù)r/wr/sdb7db6db5db4db3db2db1db0hhd7d6d5d4d3d2d1d0功能:從ddram讀數(shù)據(jù),讀指令執(zhí)行后y地址計(jì)數(shù)器
29、自動(dòng)加1。3.4.3 lcd12864電路接線單片機(jī)p2口作為指令/數(shù)據(jù)接口,右db0-db7輸入,數(shù)據(jù)命令選擇端rs接單片機(jī)p1.2,讀寫控制信號(hào)端r/w接單片機(jī)p1.1,使能端e接單片機(jī)p1.0,串/并行方式選擇端psb接p1.6,復(fù)位端rst接p1.7,16、18號(hào)引腳可以不接,如圖3.10所示。 圖3.10 lcd12864電路圖3.5 紅外遙控模塊 本課題采用紅外遙控功能對(duì)時(shí)鐘進(jìn)行校準(zhǔn),包括年、月、日、周、時(shí)、分秒的加減操作,還有切換顯示、復(fù)位的功能。紅外遙控裝置包括紅外發(fā)送(即遙控器)和紅外接收兩部分組成。發(fā)射機(jī)一般由指令按鍵、指令編碼系統(tǒng)、調(diào)制電路、驅(qū)動(dòng)電路、發(fā)射電路等幾部分組成
30、。當(dāng)按下指令鍵時(shí),指令編碼電路產(chǎn)生所需的指令編碼信號(hào),指令編碼信號(hào)對(duì)載波進(jìn)行調(diào)制,再由驅(qū)動(dòng)電路進(jìn)行功率放大后由發(fā)射電路向外發(fā)射經(jīng)調(diào)制定的指令編碼信號(hào)。接收電路一般由接收電路、放大電路、調(diào)制電路、指令譯碼電路、驅(qū)動(dòng)電路、執(zhí)行電路等幾部分組成。接收電路將發(fā)射器發(fā)出的已調(diào)制的編碼指令信號(hào)接收下來,并進(jìn)行放大后送解調(diào)電路,解調(diào)電路將已調(diào)制的指令編碼信號(hào)解調(diào)出來,即還原為編碼信號(hào)。指令譯碼器將編碼指令信號(hào)進(jìn)行譯碼,最后由驅(qū)動(dòng)電路來驅(qū)動(dòng)執(zhí)行電路實(shí)現(xiàn)各種指令的操作控制。其大致工作過程如圖3.11所示。圖3.11 紅外工作原理紅外遙控器采用通用遙控器,接收器為紅外接收頭,如圖3.11所示。圖3.12為紅外接收
31、頭電路,其信號(hào)輸出端接單片機(jī)引腳p3.2。 圖3.11 紅外遙控器和接收頭 圖3.12 紅外接收頭電路4 系統(tǒng)軟件設(shè)計(jì)41 主程序設(shè)計(jì)本課題程序編寫為c語言,編譯軟件為keil5,程序分為4個(gè)模塊,分別是主函數(shù)main.c、lcd12864程序lcd12864.h、時(shí)鐘芯片ds1302程序ds1302.h和紅外遙控程序irin.h。程序流程圖如圖4.1所示。開始判斷按鍵進(jìn)入調(diào)時(shí)模式判斷按鍵12864顯示時(shí)間ds1302寫數(shù)據(jù)12864 初始化ds1302初始化 12864顯示圖片 結(jié)束 圖4.1 程序流程圖4.2 lcd12864驅(qū)動(dòng)程序 圖4.2 12864寫操作時(shí)序根據(jù)以上寫時(shí)序,可以寫出
32、寫指令函數(shù)和寫數(shù)據(jù)函數(shù)。(1)寫指令void lcd_wcmd(uchar cmd) /寫指令函數(shù) while(lcd_busy(); /判忙 lcd_rs = 0; /rs=l lcd_rw = 0; /rw=l lcd_en = 0; /en 上升沿 _nop_(); _nop_(); p2 = cmd; delaynop(); lcd_en = 1; delaynop(); lcd_en = 0; (2)寫顯示數(shù)據(jù)void lcd_wdat(uchar dat) /寫顯示數(shù)據(jù)函數(shù) while(lcd_busy(); /判忙 lcd_rs = 1; /rs=h lcd_rw = 0; /r
33、w=l lcd_en = 0; /en 上升沿 p2 = dat; delaynop(); lcd_en = 1; delaynop(); lcd_en = 0; (3)設(shè)定顯示位置void lcd_pos(uchar x,uchar y) uchar pos; if (x=1) x=0x80; /第一行首地址 else if (x=2) x=0x90; /第二行首地址 else if (x=3) x=0x88; /第三行首地址 else if (x=4) x=0x98; /第四行首地址 pos = x+y ; lcd_wcmd(pos); /顯示地址,行地址加列地址(4)圖形顯示void p
34、hotodisplay(uchar *bmp) uchar i,j; lcd_wcmd(0x34); /寫數(shù)據(jù)時(shí),關(guān)閉圖形顯示 for(i=0;i32;i+) lcd_wcmd(0x80+i); /寫入垂直坐標(biāo)值 lcd_wcmd(0x80); /先寫入水平坐標(biāo)值 for(j=0;j16;j+) /再寫入兩個(gè)8位元的數(shù)據(jù) lcd_wdat(*bmp+); delay1(1); for(i=0;i32;i+) lcd_wcmd(0x80+i); lcd_wcmd(0x88); for(j=0;j16;j+) lcd_wdat(*bmp+); delay1(1); lcd_wcmd(0x36);
35、/寫完數(shù)據(jù),開圖形顯示 4.3 ds1302驅(qū)動(dòng)程序ds1302讀寫時(shí)序如圖所示,圖4.4為單字節(jié)讀時(shí)序,圖4.5為單字節(jié)寫時(shí)序。圖4.4 ds1302單字節(jié)讀時(shí)序 圖4.5 ds1302單字節(jié)寫時(shí)序(1)ds1302寫一個(gè)字節(jié)void write_ds1302_byte(unsigned char temp) unsigned char i; for (i=0;i=1; /右移一位 sck=1; (2)寫入ds1302void write_ds1302( unsigned char address,unsigned char dat ) rst=0; _nop_(); sck=0; _nop
36、_(); rst=1; _nop_(); /啟動(dòng) write_ds1302_byte(address); /發(fā)送地址 write_ds1302_byte(dat); /發(fā)送數(shù)據(jù) rst=0; /恢復(fù)(3)讀出ds1302數(shù)據(jù)unsigned char read_ds1302 ( unsigned char address ) unsigned char i,temp=0x00; rst=0; _nop_(); _nop_(); sck=0; _nop_(); _nop_(); rst=1; _nop_(); _nop_(); write_ds1302_byte(address); for (i
37、=0;i=1; /右移一位 _nop_(); _nop_(); _nop_(); sck=1; rst=0; return (temp); /返回4.4 紅外遙控程序紅外遙控結(jié)合單片機(jī)p3.2口外部中斷int0來執(zhí)行命令,紅外遙控器共21個(gè)按鍵,其鍵值分別為45 46 4744 40 4307 15 0916 19 0d0c 18 5e08 1c 5a42 52 4avoid ir_in(void) interrupt 0 / 外部中斷0 unsigned char j,k,n=0; ex0 = 0; irdelay(15);if (irin=1) ex0 =1;return; /確認(rèn)ir信號(hào)
38、出現(xiàn) while (!irin) /等ir變?yōu)楦唠娖?,跳過9ms的前導(dǎo)低電平信號(hào)。 irdelay(1); for (j=0;j4;j+) /收集四組數(shù)據(jù) for (k=0;k=50) ex0=1;return; /0.14ms計(jì)數(shù)過長(zhǎng)自動(dòng)離開。 /高電平計(jì)數(shù)完畢 ircomj=ircomj 1; /數(shù)據(jù)最高位補(bǔ)“0” if (n=8) ircomj = ircomj | 0x80; /數(shù)據(jù)最高位補(bǔ)“1” n=0; 5 調(diào)試結(jié)果5.1 正常顯示日期時(shí)間畫面5.2 進(jìn)入調(diào)整時(shí)間日期畫面5.3圖片顯示畫面6總結(jié)本課題研究的主要內(nèi)容是以stc89c51單片機(jī)為核心、ds1302為計(jì)時(shí)芯片、lcd12864液晶為顯示部分的一個(gè)電子日歷,可顯示年、月、日、周、時(shí)、分、秒及圖形顯示,并采用紅外遙控技術(shù),來實(shí)現(xiàn)對(duì)日期和時(shí)間的調(diào)整。本次畢業(yè)設(shè)計(jì)的制作,從最初的方案設(shè)計(jì),材料選擇,板子焊接到最終的程序編寫及調(diào)試,這一連串的過程讓我從中學(xué)到了很多知識(shí)。再一次熟悉了單片機(jī)的內(nèi)部結(jié)構(gòu)和工作原理,熟練運(yùn)用單片機(jī)的中斷系統(tǒng)和定時(shí)器的使用,掌握了
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)環(huán)保志愿者組織參與承諾書
- 皮革制品會(huì)計(jì)招聘合同模板
- 影劇院防水工程協(xié)議
- 醫(yī)院電氣工程師招聘協(xié)議
- 印刷出版授權(quán)操作指南
- 大型超市污水管網(wǎng)建設(shè)合同
- 旅游行業(yè)會(huì)計(jì)操作指南
- 火車通道安全窗施工合同
- 信息科學(xué)計(jì)量管理方法
- 建筑公司項(xiàng)目經(jīng)理聘用合同樣本
- 云南白族課件
- 消防應(yīng)急預(yù)案組織結(jié)構(gòu)圖
- 肝衰竭肝功能衰竭
- 油站使用說明書
- 小學(xué)班主任工作經(jīng)驗(yàn)交流ppt
- 如何識(shí)別真假幣(共34張PPT)
- 2023屆高考數(shù)學(xué)復(fù)習(xí)微難點(diǎn)7 三角函數(shù)中ω的范圍問題(共11張PPT)
- 幼兒園講解海軍知識(shí)新版ppt
- 蘇教版 四年級(jí)上冊(cè)數(shù)學(xué) 7.3 含有中括號(hào)的混合運(yùn)算課件共14張PPT
- 奧克斯中央空調(diào)故障代碼小手冊(cè)(2011兔年版內(nèi)部資料)-
- 提高定向鉆水平穿越質(zhì)量QC活動(dòng)成果
評(píng)論
0/150
提交評(píng)論