基于mcs51單片機(jī)的電子萬(wàn)年歷設(shè)計(jì)-畢業(yè)匯編(完整版)資料_第1頁(yè)
基于mcs51單片機(jī)的電子萬(wàn)年歷設(shè)計(jì)-畢業(yè)匯編(完整版)資料_第2頁(yè)
基于mcs51單片機(jī)的電子萬(wàn)年歷設(shè)計(jì)-畢業(yè)匯編(完整版)資料_第3頁(yè)
基于mcs51單片機(jī)的電子萬(wàn)年歷設(shè)計(jì)-畢業(yè)匯編(完整版)資料_第4頁(yè)
基于mcs51單片機(jī)的電子萬(wàn)年歷設(shè)計(jì)-畢業(yè)匯編(完整版)資料_第5頁(yè)
已閱讀5頁(yè),還剩82頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基于mcs51單片機(jī)的電子萬(wàn)年歷設(shè)計(jì)畢業(yè)匯編(完整版)資料(可以直接使用,可編輯優(yōu)秀版資料,歡迎下載)

基于mcs51單片機(jī)的電子萬(wàn)年歷設(shè)計(jì)畢業(yè)匯編(完整版)資料(可以直接使用,可編輯優(yōu)秀版資料,歡迎下載)成績(jī):成績(jī):江西科技師范大學(xué)畢業(yè)設(shè)計(jì)(論文)題目(中文):基于MCS51的電子萬(wàn)年歷的設(shè)計(jì)(英文):ThedesignoftheelectroniccalendarbasedonMCS51院(系):通信與電子學(xué)院專業(yè):電子信息工程姓名:蘭小玲學(xué)號(hào):20212623指導(dǎo)教師:宗文軍2021年4月22日目錄基于MCS51的電子萬(wàn)年歷的設(shè)計(jì)摘要:隨著現(xiàn)今世界信息化時(shí)代和經(jīng)濟(jì)的快速發(fā)展的來(lái)臨,各式各樣的小型智能家電產(chǎn)物陸續(xù)出現(xiàn)在我們的生活中。日歷是人們不可或缺的日常用品。但一般日歷都是紙制的,使用不便,壽命不長(zhǎng)。電子萬(wàn)年歷采用智能電子控制和顯示技術(shù),改善了紙制日歷的缺陷。本設(shè)計(jì)以AT89C51單片機(jī)為核心,構(gòu)成單片機(jī)主控制電路,結(jié)合DS1302時(shí)鐘芯片和DS18B20溫度芯片,完成時(shí)間的自動(dòng)調(diào)整和掉電保護(hù),全部信息用液晶顯示。時(shí)間、日期調(diào)整由三個(gè)按鍵來(lái)實(shí)現(xiàn),并可對(duì)鬧鈴開(kāi)關(guān)進(jìn)行設(shè)置。日歷能顯示年、月、日以及星期、時(shí)、分、秒。關(guān)鍵詞:電子萬(wàn)年歷

51單片機(jī)

時(shí)鐘芯片

溫度芯片

液晶顯示器

第一章引言跟著微電子技術(shù)和超大范圍集成電路技術(shù)的不停進(jìn)步,家用電子產(chǎn)物不光種類日益豐碩,還變得加倍經(jīng)濟(jì)實(shí)用,單片微型計(jì)算機(jī)體積小、性價(jià)比高、功能強(qiáng)、可靠性高等獨(dú)有的特點(diǎn),在各個(gè)范疇得到了廣泛普遍。電子萬(wàn)年歷是一種非常廣泛的日常計(jì)時(shí)工具,數(shù)字電子鐘已經(jīng)越來(lái)越流行,特別適用于車站、廣場(chǎng)以及辦公,還可用于家庭居室。LED數(shù)字顯示的電子鐘顯示清晰直觀、走時(shí)精準(zhǔn)、能夜視,還能夠延伸出其他功能。功能也越來(lái)越齊全,除了公歷年、月份、日期、時(shí)分秒、禮拜顯示及鬧鈴。但通過(guò)我們對(duì)各類電子鐘的不停觀察,總結(jié)發(fā)現(xiàn)目前市場(chǎng)的電子鐘都出現(xiàn)一些不足之處,例如:時(shí)鐘不精確、產(chǎn)物本錢(qián)太高、無(wú)環(huán)境溫度顯示等,這都給人們的使用帶來(lái)了一些不便。為此設(shè)計(jì)了一種功能周全、計(jì)時(shí)精確、本錢(qián)便宜的基于MSC51的電子萬(wàn)年歷。1.1研究背景與意義當(dāng)今社會(huì)的電子技術(shù)可謂是發(fā)展迅速,特別是隨著大規(guī)?;蛘叱蠹呻娐返某霈F(xiàn),給人類學(xué)習(xí)、工作、娛樂(lè)、以及生活、都帶來(lái)了本質(zhì)性的改變。尤其是單片機(jī)的應(yīng)用產(chǎn)物已經(jīng)進(jìn)入了每家每戶。電子萬(wàn)年歷給人類帶來(lái)了許多方便。利用單片機(jī)制作的的電子萬(wàn)年歷其編程靈活,便于功能擴(kuò)展,高精度等特點(diǎn),而且它走時(shí)精準(zhǔn)、顯示清晰,很是受大眾歡迎。通過(guò)單片機(jī)設(shè)計(jì)的電子萬(wàn)年歷,能夠用軟件編程進(jìn)行功能的調(diào)整和改進(jìn),促使其可以精準(zhǔn)顯示年、月、日、時(shí)辰、禮拜的同時(shí),還可以有許多其他功能。例如:設(shè)置鬧鐘、語(yǔ)音報(bào)時(shí)、顯示溫度等有一定的實(shí)用性,同時(shí)體積小、方便使用、方便攜帶,當(dāng)然,還有其成本不高、計(jì)時(shí)準(zhǔn)確、性能穩(wěn)定、更新周期也短,維護(hù)方便等優(yōu)點(diǎn),至此、探索電子萬(wàn)年歷有著非?,F(xiàn)實(shí)的意義,同時(shí)也具有很大的實(shí)用價(jià)值。1.2電子萬(wàn)年歷的發(fā)展現(xiàn)狀現(xiàn)今,電子萬(wàn)年歷技術(shù)已經(jīng)進(jìn)入了優(yōu)化-家庭-環(huán)境的團(tuán)隊(duì)關(guān)系的階段之間,它向著超微型、超高效以及集成電路的微型化方向成長(zhǎng),并為電子萬(wàn)年歷上的集中控制奠基了根本。目前,市場(chǎng)上出售的電子萬(wàn)年歷類別繁多,其中大致是基于單片機(jī)技術(shù)的電子系統(tǒng)。它們通常包括輸入脈沖電路、單片機(jī)、晶振和復(fù)位電路、外部存儲(chǔ)器電路和LED顯示電路等構(gòu)成。現(xiàn)今,電子萬(wàn)年歷基本上是用于計(jì)時(shí)、自動(dòng)報(bào)警、定時(shí)、時(shí)間查詢以及自動(dòng)控制。由于單片機(jī)技術(shù)以及數(shù)字集成電路技術(shù)的成長(zhǎng)和高端的石英技術(shù),使得如今的電子萬(wàn)年歷系統(tǒng)具有體積小、耗電少、計(jì)時(shí)精確、機(jī)能穩(wěn)定、維護(hù)方便、走時(shí)精準(zhǔn)、攜帶方便等長(zhǎng)處。其他,現(xiàn)今的市場(chǎng)上也有現(xiàn)成的數(shù)字萬(wàn)年歷集成電路芯片買(mǎi),而且價(jià)格實(shí)惠、用起來(lái)也很方便。1.3電子萬(wàn)年歷的優(yōu)勢(shì)它是一種非常普遍的平常計(jì)時(shí)工具,它可以對(duì)年、月份、日期、時(shí)、分、秒來(lái)計(jì)時(shí)。它是采用數(shù)字電路設(shè)計(jì)的,以51系列單片機(jī)為核心,通過(guò)LCD液晶顯示器來(lái)進(jìn)行顯示,能夠同時(shí)顯示陽(yáng)歷或是農(nóng)歷、年、月份、日刻、時(shí)、分、秒、禮拜、溫度等內(nèi)容。而且有可調(diào)整日期和時(shí)間的功能。像定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)響鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)開(kāi)閉路燈、定時(shí)開(kāi)關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至種種定時(shí)電器的自動(dòng)應(yīng)用等,但是所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。所以,探索萬(wàn)年歷以及擴(kuò)大它的應(yīng)用,有著非常重要的現(xiàn)實(shí)意義。第二章、系統(tǒng)中主要芯片介紹2.1工作原理和電路設(shè)計(jì)框圖電子萬(wàn)年歷電路,它的內(nèi)部是由主控制芯片AT89C51、時(shí)鐘器件DS1302、溫度傳感器DS18B20、LCD12864液晶顯示屏及鍵盤(pán)掃描電路組成。電子萬(wàn)年歷配鬧鐘就是運(yùn)用單片機(jī)加上一個(gè)時(shí)鐘元件DS1302以及數(shù)個(gè)與門(mén)芯片組成一個(gè)可調(diào)整年、月份、日期、時(shí)刻、分秒,以及能夠獲取當(dāng)前時(shí)刻的一個(gè)電路和鬧鐘功能。實(shí)現(xiàn)我們平常生活中的日歷的作用。由于電路的硬件設(shè)計(jì)程序復(fù)雜,本電路采用89c51單片機(jī)作為控制核心,它具有在線編程功能,低功耗,可以在3V超低壓工作;時(shí)鐘電路由DS1302提供,它是一種高機(jī)能、低損耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月份、日刻、時(shí)、分、秒等來(lái)計(jì)時(shí),還有閏年補(bǔ)償特點(diǎn),工作電壓為2.5V-5.5V。通過(guò)三線接口與CPU進(jìn)行同步通信,并可通過(guò)突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)用來(lái)臨時(shí)存放數(shù)據(jù)的RAM寄存器??僧a(chǎn)生年、月份、日期、時(shí)刻、分、秒。以及通過(guò)與門(mén)芯片和按鍵開(kāi)關(guān)來(lái)實(shí)現(xiàn)年、月、日、時(shí)、分、秒的調(diào)節(jié)。具體框架結(jié)構(gòu)圖如下:2.2系統(tǒng)概述

本次設(shè)計(jì)電路是以AT89C51的最小系統(tǒng)為控制核心,時(shí)鐘電路由高精度低功耗的DS1302提供,采用了三線接口與CPU進(jìn)行同步通信,輸入部分就是采用的4個(gè)獨(dú)立按鍵S1、S2S3、S4。顯示部分采用的是LCD12864液晶顯示器,D0~D7口與單片機(jī)P0口相連。2.3主要器件的結(jié)構(gòu)及其特性AT89C51的管腳說(shuō)明AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低電壓、高性能CMOS8位微處理器,俗稱單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃速存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C51是它的一種精簡(jiǎn)版本。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。外形及引腳排列如圖所示。

特性概述:AT89C51提供以下標(biāo)準(zhǔn)功能:4k

字節(jié)Flash

閃速存儲(chǔ)器,128字節(jié)內(nèi)部RAM,32個(gè)I/O口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。管腳說(shuō)明:VCC:供電電壓。GND:接地。P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門(mén)電流。當(dāng)P0口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的低八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須接上拉電阻。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門(mén)電流。P1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為低八位地址接收。P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門(mén)電流,當(dāng)P2口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門(mén)電流。當(dāng)P3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。/EA:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來(lái)自反向振蕩器的輸出。ds1302的管腳說(shuō)明

VCC1是后備電源,而VCC2是主電源。當(dāng)主電源關(guān)閉時(shí),還可以維持時(shí)鐘繼續(xù)工作。ds1302是通過(guò)VCC1或VCC2之間更大的一方來(lái)提供電源。當(dāng)VCC2≥VCC1+0.2V時(shí),VCC2給ds1302提供電源。當(dāng)VCC2小于VCC1時(shí),VCC1給ds1302提供電源。X1和X2是振蕩源,需要再接一個(gè)32.768kHz的晶振。RST是復(fù)位/片選端,通過(guò)把RST輸入驅(qū)動(dòng)置“1”來(lái)開(kāi)啟全部數(shù)據(jù)的接送。RST輸入2種特點(diǎn):第一,RST接通控制邏輯,允許地址/命令序列送到移位寄存器;第二,RST提供中止單字節(jié)或者是多字節(jié)數(shù)據(jù)的輸送方法。當(dāng)RST為“1”時(shí),所有的數(shù)據(jù)輸送便會(huì)被初始化,可以對(duì)ds1302執(zhí)行操作。若在輸送過(guò)程中RST置為“0”,就會(huì)中止這次數(shù)據(jù)輸送,I/O管腳改為高阻態(tài)。上電工作后,在VCC≥2.5V之前,RST必須保持“0”。僅當(dāng)在SCLK為“0”時(shí),才能夠把RST置為“1”。I/O是串行數(shù)據(jù)輸入輸出端(雙向),SCLK是時(shí)鐘輸入端。ds1302的寄存器:ds1302包括了12個(gè)寄存器,當(dāng)中有7個(gè)寄存器與日歷、時(shí)鐘有聯(lián)系,存放的數(shù)據(jù)位是BCD碼形式。而且,ds1302也有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器以及跟RAM相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器能夠一次性順序讀寫(xiě),除充電寄存器之外的所有寄存器內(nèi)容。5、ds1302的管腳特點(diǎn):5.ds1302的控制字:6、ds1302的控制字節(jié)控制字節(jié)的最高有效位(位7)必須是邏輯1,若它為0,就無(wú)法把數(shù)據(jù)寫(xiě)到ds1302中,位6為1時(shí)說(shuō)明存取RAM數(shù)據(jù)\若為0,就說(shuō)明存取日歷時(shí)鐘數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)若為0,說(shuō)明要執(zhí)行寫(xiě)操作,為1說(shuō)明要執(zhí)行讀操作,控制字節(jié)都是從最低位開(kāi)始輸出。當(dāng)控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫(xiě)入ds1302,數(shù)據(jù)輸入從低位開(kāi)始。同理,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出ds1302的數(shù)據(jù),讀數(shù)據(jù)時(shí)也是從低位0至高位7。ds18b20的管腳說(shuō)明

ds18b20是普遍使用的溫度傳感器,其傳感器的體積小,而且成本低,抗干擾性強(qiáng),精度也高的特點(diǎn)。ds18b20的存儲(chǔ)器、含有高速暫存器RAM跟可電擦除RAM,可電擦除RAM里又含有溫度觸發(fā)器TH與TL,以及一個(gè)配置寄存器。ds18b20能夠用外部電源VDD,或者是使用芯片里面的寄生電源。1、ds18b20的基本特性通用電壓范疇較廣,電壓范疇:3.0到5.5V,在寄生電源模式下,能夠用數(shù)據(jù)線供電。特別的單線接口方式,ds18b20在跟微處理器連接時(shí)、只需要一條口線就能實(shí)現(xiàn)微處理器與ds18b20的兩向通訊。溫度范疇是-55攝氏度到+125攝氏度,當(dāng)溫度是-10到+85攝氏度時(shí)精度是±0.5攝氏度可編程的分辨率是9~12位,其相對(duì)應(yīng)的可分辨溫度有:0.5攝氏度、0.25攝氏度、0.125攝氏度以及0.0625攝氏度,能夠進(jìn)行高精度測(cè)溫。負(fù)壓特性:當(dāng)電源極性接反,芯片并不會(huì)由于發(fā)熱而有所損壞,卻無(wú)法正常使用。2、ds18b20的外觀與內(nèi)部構(gòu)造它包括四部分:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。ds18b20管腳有:(1)DQ是數(shù)字信號(hào)輸入/輸出端;(2)GND是地;(3)VDD是外接供電電源其輸入端(當(dāng)接寄生電源時(shí),VDD接地)。LCD12864液晶顯示屏帶中文字庫(kù)的128X64是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國(guó)標(biāo)一級(jí)、二級(jí)簡(jiǎn)體中文字庫(kù)的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為128×64,內(nèi)置8192個(gè)16*16點(diǎn)漢字,和128個(gè)16*8點(diǎn)ASCII字符集.利用該模塊靈活的接口方式和簡(jiǎn)單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面??梢燥@示8×4行16×16點(diǎn)陣的漢字.也可完成圖形顯示.低電壓低功耗是其又一顯著特點(diǎn)。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡(jiǎn)潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊。

基本參數(shù)(1)低電源電壓(VDD:+3.0--+5.5V)(2)顯示分辨率:128×64點(diǎn)(3)內(nèi)置漢字字庫(kù),提供8192個(gè)16×16點(diǎn)陣漢字(簡(jiǎn)繁體可選)(4)內(nèi)置128個(gè)16×8點(diǎn)陣字符(5)2MHZ時(shí)鐘頻率(6)顯示方式:STN、半透、正顯(7)驅(qū)動(dòng)方式:1/32DUTY,1/5BIAS(8)視角方向:6點(diǎn)(9)背光方式:側(cè)部高亮白色LED,功耗僅為普通LED的1/5—1/10(10)通訊方式:串行、并口可選(11)內(nèi)置DC-DC轉(zhuǎn)換電路,無(wú)需外加負(fù)壓(12)無(wú)需片選信號(hào),簡(jiǎn)化軟件設(shè)計(jì)(13)工作溫度:0℃-+55℃,存儲(chǔ)溫度:-20℃-+60℃管腳號(hào)管腳名稱電平管腳功能描述1VSS0V電源地2VCC3~5V電源正3VO-對(duì)比度(亮度)調(diào)整4RS(CS)H/LRS=”H”,表示DB7~DB0為顯示指令;RS=”L”,表示DB7~DB0為顯示數(shù)據(jù);5R/W(SID)H/LR/W=”H”,E=”H”,數(shù)據(jù)讀到DB7~DB0;R/W=”L”,E=”H到L”,DB7~DB0的數(shù)據(jù)寫(xiě)到IR或DR;6E(SCLK)H/L使能信號(hào)7~14DB0~DB7H/L均是三態(tài)數(shù)據(jù)線15PSBH/LH:8位或4位并口方式;L:串口方式16NC-空腳17RESETH/L復(fù)位端,低電平有效;18VOUT-LCD驅(qū)動(dòng)電壓輸出端19AVDD背光源正端(+5V)20KVSS背光源負(fù)端模塊接口說(shuō)明:

*注釋1:如在實(shí)際應(yīng)用中僅使用串口通訊模式,可將PSB接固定低電平,也可以將模塊上的J8和“GND”用焊錫短接。

*注釋2:模塊內(nèi)部接有上電復(fù)位電路,因此在不需要經(jīng)常復(fù)位的場(chǎng)合可將該端懸空。

*注釋3:如背光和模塊共用一個(gè)電源,可以將模塊上的JA、JK用焊錫短接。模塊有并行和串行兩種連接方法(時(shí)序如下):

1、8位并行連接時(shí)序圖

MPU寫(xiě)資料到模塊MPU從模塊讀出資料由于此設(shè)計(jì)是并行連接,所以串行連接時(shí)序圖不作介紹。用戶指令集(指令表如下:)指令指令碼說(shuō)明執(zhí)行時(shí)間(540kHz)RSRWDB7DB6DB5DB4DB3DB2DB1DB0消除顯示0000000001將DDRAM填滿“20H”,并且設(shè)定DDRAM的地址計(jì)數(shù)器(AC)到“00H”4.6ms地址歸位000000001X設(shè)定DDRAM的地址計(jì)數(shù)器(AC)到“00H”,并且將游標(biāo)移到開(kāi)頭原點(diǎn)位置;這個(gè)指令并不改變DDRAM的內(nèi)容4.6ms進(jìn)入點(diǎn)設(shè)定00000001I/DS指定在資料的讀取與寫(xiě)入時(shí),設(shè)定游標(biāo)移動(dòng)方向及指定顯示的移位72us進(jìn)入點(diǎn)設(shè)定:執(zhí)行該命令后,所設(shè)置的行將顯示在屏幕的第一行。顯示起始行是由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)加一。顯示狀態(tài)開(kāi)/關(guān)0000001DCBD=1;整體顯示ONC=1;游標(biāo)ONB=1;游標(biāo)位置ON72us游標(biāo)或移位控制000001S/CR/LXX設(shè)定游標(biāo)的移動(dòng)與顯示的移動(dòng)控制位元;這個(gè)指令并不改變DDRAM的內(nèi)容;72us功能設(shè)定00001DLX0REXXDL=1;(必須設(shè)為1)RE=1;擴(kuò)充指令集動(dòng)作RE=0;基本指令集動(dòng)作72us備注:

當(dāng)模塊在接受指令前,微處理順必須先確認(rèn)模塊內(nèi)部處于非忙碌狀態(tài),即讀取BF標(biāo)志時(shí)BF需為0,方可接受新的指令;如果在送出一個(gè)指令前并不檢查BF標(biāo)志,那么在前一個(gè)指令和這個(gè)指令中間必須延遲一段較長(zhǎng)的時(shí)間,即要等待前一個(gè)指令確實(shí)執(zhí)行完成。2“RE”為基本指令集與擴(kuò)充指令集的選擇控制位,當(dāng)變更“RE”位后,往后的指令集將維持在最后的狀態(tài),除非再次變更“RE”位,否則使用相同指令集時(shí),不需每次重設(shè)“RE”位。主要單元電路設(shè)計(jì)3.1單片機(jī)主控制模塊、采用AT89C51芯片,它能以3V的超低電壓工作,同時(shí)也與MCS-51系列單片機(jī)完全兼容,該芯片內(nèi)部存儲(chǔ)器為8KBROM存儲(chǔ)空間,同時(shí)具有89C51的功能,且具有在線編程可擦除技術(shù)。其主要工作原理:P1口有兩個(gè)作用,一個(gè)接上DS1302的AD0-AD7(雙向地址/數(shù)據(jù)復(fù)用總線),控制著DS1302的8位并行數(shù)據(jù)的地址和數(shù)據(jù)的傳輸,另接上液晶的DB0-DB7(數(shù)據(jù)總線)控制著向液晶發(fā)送8位并行數(shù)據(jù)。P1.1接上DS1302的單數(shù)據(jù)線,發(fā)送并接受數(shù)據(jù),地址的操作。0為命令,P2.3口控制液晶讀/寫(xiě)選擇端,1為讀命令,0為寫(xiě)操作,P2.2口控制液晶使能信號(hào)。對(duì)DS1302、P2.0口控制DS1302的片選信號(hào)的輸入(CS1),P2.1口控制DS1302的片選信號(hào)的輸入(CS2),P1.4接入鬧鐘,到設(shè)置時(shí)間到了,buzzer響應(yīng)。復(fù)位電路:由按鍵復(fù)位和上電復(fù)位兩部分組成。通常在復(fù)位引腳RST上連接一個(gè)電容到VCC,再連接一個(gè)電阻到GND,由此形成一個(gè)RC充放電回路、保證單片機(jī)在上電時(shí)RST腳上有足夠時(shí)間的高電平進(jìn)行復(fù)位,隨后回歸到低電平進(jìn)入正常工作狀態(tài)。按鍵復(fù)位就是在復(fù)位電容上并聯(lián)一個(gè)開(kāi)關(guān),當(dāng)開(kāi)關(guān)按下時(shí)電容被放電、RST也被拉到高電平,而且由于電容的充電,會(huì)保持一段時(shí)間的高電平來(lái)使單片機(jī)復(fù)位。此次設(shè)計(jì)采用12MHz的晶體振蕩器作為振蕩源,由于單片機(jī)內(nèi)部帶有振蕩電路,所以外部只要連接一個(gè)晶振和兩個(gè)電容即可。3.2時(shí)鐘電路模塊的設(shè)計(jì)圖示為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í)候VCC1供電。X1和X2是振蕩源,外接32.768KHz晶振,RST是復(fù)位片選線,通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段,當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作,如果在傳送過(guò)程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O管腳變?yōu)楦咦钁B(tài),上電運(yùn)行時(shí),在VCC大于等于2.5V之前,RST必須保持低電平,中有在SCLK為低電平時(shí),才能將RST置為高電平,I/O為串行數(shù)據(jù)輸入端,SCLK始終是輸入端。3.3溫度采集模塊溫度采集部分是使用了數(shù)字式溫度傳感器DS18B20,接地和接電源的部分完成后,就是其中的第二腳連接到單片機(jī)的P2.6腳,并且接上一個(gè)上拉電阻。3.4顯示部分模塊帶中文字庫(kù)的128X64是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國(guó)標(biāo)一級(jí)、二級(jí)簡(jiǎn)體中文字庫(kù)的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為128×64,內(nèi)置8192個(gè)16*16點(diǎn)漢字,和128個(gè)16*8點(diǎn)ASCII字符集.利用該模塊靈活的接口方式和簡(jiǎn)單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面。3.5按鍵部分按鍵部分如上圖所示,本設(shè)計(jì)總的用了4個(gè)按扭開(kāi)關(guān)作為鍵盤(pán),其中一個(gè)是切換界面鍵,(一共三個(gè)界面、一是主界面;顯示當(dāng)前時(shí)間以及溫度。二是鬧鐘設(shè)置;三是生日提醒。)第二個(gè)是Next鍵;第三個(gè)是調(diào)整加鍵(可調(diào)整年、月、周、日、時(shí)、分、秒等等)、第三個(gè)也是是鬧鐘開(kāi)關(guān)切換鍵。3.6鬧鐘模塊鬧鐘模塊的接線如下圖所示。以下蜂鳴器電路中,使用PNP三極管進(jìn)行驅(qū)動(dòng)控制,設(shè)計(jì)中使用的是直流蜂鳴器,當(dāng)P1.4輸出低電平時(shí),蜂鳴器鳴叫。(由于蜂鳴器為感性原件,可以在兩端并接一個(gè)二極管來(lái)起到泄放作用。)、單片機(jī)程序部分初始化初始化LCD12864、DS1302、DS18B20允許LCD顯示?允許LCD顯示?關(guān)閉LCD顯示讀DS18B20的溫度值和DS1302的時(shí)間值YesNO關(guān)閉LCD顯示讀DS18B20的溫度值和DS1302的時(shí)間值將讀出的值顯示到將讀出的值顯示到LCD12864上掃描按鍵掃描按鍵生日設(shè)定鬧鐘設(shè)定時(shí)間設(shè)定生日設(shè)定鬧鐘設(shè)定時(shí)間設(shè)定4.1系統(tǒng)主程序流程圖開(kāi)始DS1302初始化DS1302初始化從DS1302讀出數(shù)據(jù),放入RAM從DS1302讀出數(shù)據(jù),放入RAM調(diào)用顯示子程序調(diào)用顯示子程序LCD12864顯示時(shí)間LCD12864顯示時(shí)間掃描按鍵掃描按鍵設(shè)置時(shí)間設(shè)置時(shí)間數(shù)據(jù)寫(xiě)回DS1302保存數(shù)據(jù)寫(xiě)回DS1302保存返回主菜單返回主菜單4.2顯示時(shí)間子程序流程圖開(kāi)始DS18B20初始化DS18B20初始化從從DS18B20中讀出數(shù)據(jù),放入RAMLCD模塊顯示溫度LCD模塊顯示溫度返回主菜單返回主菜單4.3溫度子程序流程圖開(kāi)始開(kāi)始AT89C51初始化AT89C51初始化選擇鬧鐘、生日選擇鬧鐘、生日從從AT89C51中讀出數(shù)據(jù),放入RAMLCD12864顯示鬧鐘、生日LCD12864顯示鬧鐘、生日按鍵掃描設(shè)置鬧鐘、生日設(shè)置鬧鐘、生日數(shù)據(jù)寫(xiě)入數(shù)據(jù)寫(xiě)入AT89C51保存返回主界面返回主界面4.4設(shè)置鬧鐘、設(shè)定生日的子程序流程圖4.5程序編寫(xiě)#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#defineportP0//DB0~DB7數(shù)據(jù)口/*********12864IO************/sbite=P2^2;//使能sbitrw=P2^3;//讀寫(xiě)sbitrs=P2^4;//數(shù)據(jù)/命令sbitcs2=P2^1;//片選sbitcs1=P2^0;sbitbusy=P0^7;//檢測(cè)忙/*********DS18B20IO********/sbitDQ=P2^5;sbitbuzz=P1^4;//定義ds1302使用的IO口//sbitDSIO=P1^0;sbitRST=P1^2;sbitSCLK=P1^1;//定義按鍵IO//sbitmenu=P3^0;sbitnext=P3^1;sbitup=P1^6;sbitdown=P1^7;//DS1302時(shí)鐘初始化2021年1月23日星期五2點(diǎn)00分00秒。////存儲(chǔ)順序是秒分時(shí)日月周年,存儲(chǔ)格式是用BCD碼//ucharTIME[7]={0,0,0x14,0x23,0x01,0x05,0x15};ucharcodeREAD_RTC_ADDR[7]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d};ucharcodeWRITE_RTC_ADDR[7]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c};ucharalram_set1[]={0,0,0};ucharalram_set2[]={0,0,0};ucharalram_set3[]={0,0,0};ucharbirthday_set[]={0,0,0,0,0};uchardatadisdata[5];ucharmin,hour,day,mon;uinttvalue;//溫度值uchartflag;//溫度正負(fù)標(biāo)志uchardisplay_type;ucharalram_operate;ucharbirthday_operate;ucharmenu_num=0;uinttimer=0,S=0;ucharq_data,bai_data,shi_data,ge_data;ucharcodehz[][32]={/*--文字:年--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x20,0x18,0xC7,0x44,0x44,0x44,0x44,0xFC,0x44,0x44,0x44,0x44,0x04,0x00,0x00,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00},/*--文字:月--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0xFE,0x00,0x00,0x00,0x80,0x40,0x30,0x0F,0x02,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x00,0x00,0x00},/*--文字:日--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x00,0x00,0xFE,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xFF,0x00,0x00,0x00,0x00},/*--文字:星--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x00,0x00,0xBE,0x2A,0x2A,0x2A,0xEA,0x2A,0x2A,0x2A,0x3E,0x00,0x00,0x00,0x00,0x00,0x44,0x42,0x49,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x49,0x41,0x40,0x00,0x00},/*--文字:期--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x04,0xFF,0x24,0x24,0x24,0xFF,0x04,0x00,0xFE,0x22,0x22,0x22,0xFE,0x00,0x00,0x88,0x48,0x2F,0x09,0x09,0x19,0xAF,0x48,0x30,0x0F,0x02,0x42,0x82,0x7F,0x00,0x00},/*--文字:當(dāng)--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x40,0x42,0x44,0x58,0x40,0x40,0x7F,0x40,0x40,0x50,0x48,0xC6,0x00,0x00,0x00,0x00,0x40,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFF,0x00,0x00,0x00},/*--文字:前--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x08,0x08,0xE8,0x29,0x2E,0x28,0xE8,0x08,0x08,0xC8,0x0C,0x0B,0xE8,0x08,0x08,0x00,0x00,0x00,0xFF,0x09,0x49,0x89,0x7F,0x00,0x00,0x0F,0x40,0x80,0x7F,0x00,0x00,0x00},/*--文字:溫--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x10,0x60,0x02,0x8C,0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,0x04,0x04,0x7E,0x01,0x40,0x7E,0x42,0x42,0x7E,0x42,0x7E,0x42,0x42,0x7E,0x40,0x00},/*--文字:度--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0x25,0x26,0x24,0xFC,0x24,0x24,0x24,0x04,0x00,0x40,0x30,0x8F,0x80,0x84,0x4C,0x55,0x25,0x25,0x25,0x55,0x4C,0x80,0x80,0x80,0x00}};ucharcodeweek[][32]={/*--文字:日--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x00,0x00,0xFE,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xFF,0x00,0x00,0x00,0x00},/*--文字:一--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*--文字:二--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00},/*--文字:三--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x04,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00},/*--文字:四--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0xFC,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0xFC,0x00,0x00,0x00,0x7F,0x28,0x24,0x23,0x20,0x20,0x20,0x20,0x21,0x22,0x22,0x22,0x7F,0x00,0x00},/*--文字:五--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x02,0x42,0x42,0x42,0xC2,0x7E,0x42,0x42,0x42,0x42,0xC2,0x02,0x02,0x00,0x00,0x40,0x40,0x40,0x40,0x78,0x47,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x00},/*--文字:六--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x22,0x2C,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x01,0x02,0x04,0x18,0x60,0x00,0x00}};ucharcodealram[][32]={/*--文字:鬧--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0xF8,0x01,0x22,0x20,0x22,0x2A,0xF2,0x22,0x22,0x22,0x22,0x02,0xFE,0x00,0x00,0x00,0xFF,0x00,0x00,0x1F,0x01,0x01,0x7F,0x09,0x11,0x0F,0x40,0x80,0x7F,0x00,0x00},/*--文字:鐘--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x20,0x10,0x2C,0xE7,0x24,0x24,0x00,0xF0,0x10,0x10,0xFF,0x10,0x10,0xF0,0x00,0x00,0x01,0x01,0x01,0x7F,0x21,0x11,0x00,0x07,0x02,0x02,0xFF,0x02,0x02,0x07,0x00,0x00},/*--文字:開(kāi)--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x80,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x80,0x00,0x00,0x80,0x40,0x30,0x0F,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00},/*--文字:關(guān)--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x00,0x10,0x11,0x16,0x10,0x10,0xF0,0x10,0x10,0x14,0x13,0x10,0x00,0x00,0x00,0x81,0x81,0x41,0x41,0x21,0x11,0x0D,0x03,0x0D,0x11,0x21,0x41,0x41,0x81,0x81,0x00},/*--文字:設(shè)--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x40,0x40,0x42,0xCC,0x00,0x40,0xA0,0x9E,0x82,0x82,0x82,0x9E,0xA0,0x20,0x20,0x00,0x00,0x00,0x00,0x3F,0x90,0x88,0x40,0x43,0x2C,0x10,0x28,0x46,0x41,0x80,0x80,0x00},/*--文字:置--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x17,0x15,0xD5,0x55,0x57,0x55,0x7D,0x55,0x57,0x55,0xD5,0x15,0x17,0x00,0x00,0x40,0x40,0x40,0x7F,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0x40,0x40,0x40,0x00}};ucharcodebirthday[][32]={/*--文字:生--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x80,0x40,0x30,0x1E,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x40,0x40,0x42,0x42,0x42,0x42,0x42,0x7F,0x42,0x42,0x42,0x42,0x42,0x40,0x40,0x00},/*--文字:日--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x00,0x00,0xFE,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xFF,0x00,0x00,0x00,0x00},/*--文字:提--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x10,0x10,0x10,0xFF,0x10,0x90,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x04,0x44,0x82,0x7F,0x01,0x80,0x42,0x3A,0x42,0x82,0xFE,0x92,0x92,0x92,0x82,0x00},/*--文字:醒--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0xF2,0x12,0xFE,0x12,0xFE,0x12,0xF2,0x00,0x00,0xBE,0x2A,0xEA,0x2A,0x3E,0x00,0x00,0xFF,0x4A,0x49,0x48,0x49,0x49,0xFF,0x00,0x42,0x49,0x49,0x7F,0x49,0x49,0x40,0x00},/*--文字:祝--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x08,0x08,0x89,0xEE,0x98,0x00,0x7E,0x42,0xC2,0x42,0x42,0xC2,0x42,0x7E,0x00,0x00,0x02,0x01,0x00,0xFF,0x80,0x43,0x20,0x18,0x07,0x00,0x00,0x3F,0x40,0x40,0x78,0x00},/*--文字:您--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x20,0x10,0x08,0xFC,0x23,0x10,0x88,0x67,0x04,0xF4,0x04,0x24,0x54,0x8C,0x00,0x00,0x40,0x30,0x00,0x77,0x80,0x81,0x88,0xB2,0x84,0x83,0x80,0xE0,0x00,0x11,0x60,0x00},/*--文字:快--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0xE0,0x00,0xFF,0x10,0x20,0x08,0x08,0x08,0xFF,0x08,0x08,0xF8,0x00,0x00,0x00,0x01,0x00,0x00,0xFF,0x00,0x81,0x41,0x31,0x0D,0x03,0x0D,0x31,0x41,0x81,0x81,0x00},/*--文字:樂(lè)--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x00,0xE0,0x9C,0x84,0x84,0x84,0xF4,0x82,0x82,0x83,0x82,0x80,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x06,0x40,0x80,0x7F,0x00,0x00,0x02,0x04,0x08,0x30,0x00,0x00}};ucharcodewelcome[][32]={/*--文字:歡--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x04,0x24,0x44,0x84,0x64,0x9C,0x40,0x30,0x0F,0xC8,0x08,0x08,0x28,0x18,0x00,0x00,0x10,0x08,0x06,0x01,0x82,0x4C,0x20,0x18,0x06,0x01,0x06,0x18,0x20,0x40,0x80,0x00},/*--文字:迎--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x40,0x40,0x42,0xCC,0x00,0x00,0xFC,0x04,0x02,0x00,0xFC,0x04,0x04,0xFC,0x00,0x00,0x00,0x40,0x20,0x1F,0x20,0x40,0x4F,0x44,0x42,0x40,0x7F,0x42,0x44,0x43,0x40,0x00},/*--文字:使--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x80,0x60,0xF8,0x07,0x04,0xE4,0x24,0x24,0x24,0xFF,0x24,0x24,0x24,0xE4,0x04,0x00,0x00,0x00,0xFF,0x00,0x80,0x81,0x45,0x29,0x11,0x2F,0x41,0x41,0x81,0x81,0x80,0x00},/*--文字:用--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0xFE,0x00,0x00,0x00,0x80,0x60,0x1F,0x02,0x02,0x02,0x02,0x7F,0x02,0x02,0x42,0x82,0x7F,0x00,0x00,0x00},/*--文字:萬(wàn)--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x04,0x04,0x04,0x04,0x04,0xFC,0x44,0x44,0x44,0x44,0x44,0xC4,0x04,0x04,0x04,0x00,0x80,0x40,0x20,0x18,0x06,0x01,0x00,0x00,0x40,0x80,0x40,0x3F,0x00,0x00,0x00,0x00},/*--文字:年--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x20,0x18,0xC7,0x44,0x44,0x44,0x44,0xFC,0x44,0x44,0x44,0x44,0x04,0x00,0x00,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00},/*--文字:歷--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x00,0xFE,0x02,0x42,0x42,0x42,0x42,0xFA,0x42,0x42,0x42,0x42,0xC2,0x02,0x00,0x80,0x60,0x1F,0x80,0x40,0x20,0x18,0x06,0x01,0x00,0x40,0x80,0x40,0x3F,0x00,0x00},/*--文字:制--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x40,0x50,0x4E,0x48,0x48,0xFF,0x48,0x48,0x48,0x40,0xF8,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x3E,0x02,0x02,0xFF,0x12,0x22,0x1E,0x00,0x0F,0x40,0x80,0x7F,0x00,0x00},/*--文字:作--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x80,0x60,0xF8,0x07,0x40,0x30,0x0F,0xF8,0x88,0x88,0x88,0x88,0x08,0x08,0x00,0x01,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0xFF,0x08,0x08,0x08,0x08,0x08,0x00,0x00},/*--文字:人--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x00},/*--文字:蘭--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x20,0x20,0x21,0x22,0x2C,0x20,0x20,0x20,0x28,0x24,0x23,0x20,0x20,0x00,0x00,0x40,0x40,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x40,0x40,0x00},/*--文字:小--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x20,0x40,0x80,0x00,0x00,0x08,0x04,0x03,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x01,0x0E,0x00},/*--文字:玲--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x04,0x84,0x84,0xFC,0x84,0x84,0x40,0x20,0x10,0x0C,0x23,0xCC,0x10,0x20,0x40,0x00,0x20,0x60,0x20,0x1F,0x10,0x10,0x00,0x01,0x09,0x11,0x21,0xD1,0x0D,0x03,0x00,0x00},/*--文字:祝--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x08,0x08,0x89,0xEE,0x98,0x00,0x7E,0x42,0xC2,0x42,0x42,0xC2,0x42,0x7E,0x00,0x00,0x02,0x01,0x00,0xFF,0x80,0x43,0x20,0x18,0x07,0x00,0x00,0x3F,0x40,0x40,0x78,0x00},/*--文字:您--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x20,0x10,0x08,0xFC,0x23,0x10,0x88,0x67,0x04,0xF4,0x04,0x24,0x54,0x8C,0x00,0x00,0x40,0x30,0x00,0x77,0x80,0x81,0x88,0xB2,0x84,0x83,0x80,0xE0,0x00,0x11,0x60,0x00},/*--文字:生--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x80,0x40,0x30,0x1E,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x40,0x40,0x42,0x42,0x42,0x42,0x42,0x7F,0x42,0x42,0x42,0x42,0x42,0x40,0x40,0x00},/*--文字:活--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x10,0x60,0x02,0x8C,0x00,0x20,0x24,0x24,0x24,0xFE,0x22,0x23,0x22,0x20,0x20,0x00,0x04,0x04,0x7E,0x01,0x00,0x00,0xFE,0x42,0x42,0x43,0x42,0x42,0xFE,0x00,0x00,0x00},/*--文字:愉--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0xE0,0x00,0xFF,0x10,0x30,0xC8,0x54,0x52,0xD1,0x12,0x94,0x08,0xD0,0x10,0x00,0x01,0x00,0x00,0xFF,0x00,0x00,0xFF,0x12,0x92,0xFF,0x00,0x5F,0x80,0x7F,0x00,0x00},/*--文字:快--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/{0x00,0xE0,0x00,0xFF,0x10,0x20,0x08,0x08,0x08,0xFF,0x08,0x08,0xF8,0x00,0x00,0x00,0x01,0x00,0x00,0xFF,0x00,0x81,0x41,0x31,0x0D,0x03,0x0D,0x31,0x41,0x81,0x81,0x00}};ucharcodenum[][16]={{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00},//"0",0{0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},//"1",1{0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00},//"2",2{0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00},//"3",3{0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00},//"4",4{0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00},//"5",5{0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00},//"6",6{0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00},//"7",7{0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00},//"8",8{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00}//"9",9};ucharcodesign[][16]={{0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00},//"!",0{0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00},//":",1{0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00},//"Q",2/*--文字:---*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16--*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01},//-//3{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},////4{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00}//.//5};voidnormal_display();voidalram_set();voidbirthday_display();voiddelay_ms();voiddelay_ms(ucharx){ uchari; while(x--)for(i=0;i<120;i++);}/***********12864程序部分******************///判斷是否忙voidcheck(){rs=0; rw=1; //讀e=1; port=0x00; e=1; while(busy); e=0;}//寫(xiě)指令voidsendcommand(ucharcommand){check(); rs=0; //指令 rw=0; //寫(xiě)e=0; port=command; e=1; e=0; //寫(xiě)入指令}//寫(xiě)數(shù)據(jù)voidwritedata(uchardat){check(); rs=1; //數(shù)據(jù) rw=0; port=dat; e=1; e=0;}//選屏幕0--全屏,1--左屏,2--右屏;voidselect(uintn){switch(n) { case0:cs1=0;cs2=0;break; //低電平選中case1:cs1=0;cs2=1;break; //cs1左屏 case2:cs1=1;cs2=0;break; //cs2右屏 }}//頁(yè)voidsetpage(ucharpage){page=page&0x07;page=page|0xb8;sendcommand(page);}//列voidsetcolumn(ucharcolumn){column=column&0x3f;column=column|0x40;sendcommand(column);}//起始行voidsetline(ucharline){line=line&0x3f; line=line|0xc0; sendcommand(line);}//屏幕開(kāi)關(guān)顯示0--關(guān),1--開(kāi);voidseton(uintn){n=n|0x3e;sendcommand(n);}//清屏0--全屏,1--左屏,2--右屏;voidclear(uintn){uchari,j;select(n);for(i=0;i<8;i++){setpage(i); setcolumn(0); for(j=0;j<64;j++) writedata(0); //置0清空}}//初始化voidinit(){check();seton(1);clear(0);setline(0);}//顯示漢字16*16顯示voidshow16(ucharpage,ucharcolumn,ucharscreen,ucharmethod,uchar*str){uchari,j;select(screen);j=0;setpage(page);setcolumn(column);for(i=0;i<16;i++){if(method==1)writedata(~str[j++]); //method為顯示方式。當(dāng)?shù)扔?時(shí),反白。elsewritedata(str[j++]); }setpage(page+1);setcolumn(column);for(i=0;i<16;i++){if(method==1)writedata(~str[j++]);elsewritedata(str[j++]); }} //顯示數(shù)字8*8顯示voidshow8(ucharpage,ucharcolumn,ucharscreen,ucharmethod,uchar*str){uchari,j;select(screen);j=0;setpage(page);setcolumn(column);for(i=0;i<8;i++){if(method==1)writedata(~str[j++]);elsewritedata(str[j++]); }setpage(page+1);setcolumn(column);for(i=0;i<8;i++){if(method==1)writedata(~str[j++]);elsewritedata(str[j++]); }}voidwelcome_display(){show16(0,0,1,0,welcome[0]);show16(0,16,1,0,welcome[1]);show16(0,32,1,0,welcome[2]);show16(0,48,1,0,welcome[3]);show16(0,0,2,0,welcome[4]);show16(0,16,2,0,welcome[5]);show16(0,32,2,0,welcome[6]);show16(2,0,1,0,welcome[7]);show16(2,16,1,0,welcome[8]);show16(2,32,1,0,welcome[9]);show8(2,48,1,0,sign[1]);show16(2,0,2,0,welcome[10]);show16(2,16,2,0,welcome[11]);show16(2,32,2,0,welcome[12]);show8(4,0,1,0,sign[2]);show8(4,8,1,0,sign[2]);show8(4,16,1,0,sign[1]);show8(4,24,1,0,num[2]);show8(4,32,1,0,num[0]);show8(4,40,1,0,num[1]);show8(4,48,1,0,num[2]);show8(4,56,1,0,num[2]);show8(4,0,2,0,num[6]);show8(4,8,2,0,num[2]);show8(4,16,2,0,num[3]);show16(6,0,1,0,welcome[13]);show16(6,16,1,0,welcome[14]);show16(6,32,1,0,welcome[15]);show16(6,48,1,0,welcome[16]);show16(6,0,2,0,welcome[17]);show16(6,16,2,0,welcome[18]);show8(6,32,2,0,sign[0]);}voiddisplayinit(){show8(0,0,1,0,num[2]);show8(0,8,1,0,num[0]);show16(0,32,1,0,hz[0]);show16(0,0,2,0,hz[1]);show16(0,32,2,0,hz[2]);show8(2,16,1,0,sign[1]);show8(2,40,1,0,sign[1]);show16(2,8,2,0,hz[3]);show16(2,24,2,0,hz[4]);show16(4,0,1,0,hz[5]);show16(4,16,1,0,hz[6]);show16(4,32,1,0,hz[7]);show16(4,48,1,0,hz[8]);show8(4,0,2,0,sign[1]);//以下數(shù)字均為反白顯示。}/***********DS1302程序部分*****************/voidDs1302Write(ucharaddr,uchardat){ ucharn; RST=0; _nop_(); SCLK=0;//先將SCLK置低電平。 _nop_(); RST=1;//然后將RST(CE)置高電平。 _nop_(); for(n=0;n<8;n++)//開(kāi)始傳送八位地址命令 { DSIO=addr&0x01;//數(shù)據(jù)從低位開(kāi)始傳送 addr>>=1; SCLK=1;//數(shù)據(jù)在上升沿時(shí),DS1302讀取數(shù)據(jù) _nop_(); SCLK=0; _nop

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論