版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、沈陽理工大學(xué)課程設(shè)計專用紙no7目錄1 .題目設(shè)計要求 12 .開發(fā)平臺簡介 13 .系統(tǒng)硬件設(shè)計 23.1 設(shè)計原理 23.2 器件的功能與作用 23.2.1 mcs51 單片機 at89c51 23.2.2 復(fù)位電路 33.2.3 晶振電路 43.2.4 ds1302 時鐘模塊 43.2.5 引腳功能及結(jié)構(gòu) 43.2.6 ds1302的控制字節(jié) 53.2.7 數(shù)據(jù)輸入輸出(i/o) 53.2.8 ds1302 的寄存器 63.2.9 液晶顯示 lcd1602 63.2.10 串行時鐘日歷片 ds1302 84 .系統(tǒng)軟件設(shè)計 104.1 程序流程 104.2 程序代碼 105 .系統(tǒng)仿真調(diào)
2、試 205.1 仿真原理圖設(shè)計 205.2 仿真運行過程 215.3 仿真運行結(jié)果 216 .總結(jié) 217 .參考文獻 221 .題目設(shè)計要求通過串行日歷時鐘芯片 ds1302生成當(dāng)前日期和是時間,通過io 口傳輸?shù)絘t89c52芯片中,然后再將at89c52接收到的數(shù)據(jù)輸出到 lcd上。要求lcd上顯示的日期和時間與當(dāng)前系統(tǒng)時間保持一2 .開發(fā)平臺簡介2.1 系統(tǒng)仿真平臺proteusproteus 軟件是由英國 labcenter electronics 公司開發(fā)的eda工具軟件,已有近20年的歷史,在全球得到了廣泛應(yīng)用。proteus軟件的功能強大,它集電路設(shè)計、制版及仿真等多種功能于一
3、身,不僅能夠?qū)﹄姽?、電子技術(shù)學(xué)科涉及的電路進行設(shè)計,還能夠?qū)ξ⑻幚砥鬟M行設(shè)計和仿真,并且功能齊全,界面多彩。和我們手頭其他的電路設(shè)計仿真軟件,他最大的不同即它的功能不是單一的。另外,它獨特的單片機仿真功能是任何其他仿真軟件都不具備的。2.2 軟件開發(fā)平臺keil ckeil c51是美國keil software 公司出品的51系列兼容單片機 c語言軟件開發(fā)系統(tǒng),與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。keil提供了包括c編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案, 通過一個集成開發(fā)環(huán)境(uvision )將這些部分組
4、合在一起。keil c51 生成的目標(biāo)代碼效率之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。3 .系統(tǒng)硬件設(shè)計3.1 設(shè)計原理匚二i x2xtal2r$tr1口加制2sclk i限p1.o/t2pi 1/t2bcp1.2p1.3pl.4 pl.fi p1 6 p1.7ale fa 4-1 x1口'12'wtlz6nt03vc c l0 c?tktalir3.dwrx0p3,inp3.2/intdp3.34ttttp3.4xtd pj.gnip3 d>wrp3.7/rd. . imx16l85rirv1spo.q/ado po.1/a
5、d1 to.2/ad2 pa.hads pq.4/ad4 po .5/ad5 po.9/ad6 po.7/ad7p2d/«p2j/aj0 f2.3/a1if2.4/a12p2,ai3f2 腳ai4p2j/a15圖3.1電路原理圖3.2 器件的功能與作用3.2.1 mcs51 單片機 at89c51at89c51 是一種帶 4k 字節(jié) flash存儲器(fperomh flash programmable and erasable read onlymemory )的低電壓、高性能 cmos 8位微處理器,俗稱單片機。at89c2051是一種帶2k字節(jié)閃存可編程可擦除只讀存儲器的單片機
6、。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用atmel高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲器組合在單個芯片中,atmel的at89c51是一種高效微控制器。at89c51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。at89s51系列單片機中有 pdip, plcc tqfp多種封裝形式。本設(shè)計采用的是pdip封裝40管腳的單片機。圖3.2主控制模塊at89c523.2.2 復(fù)位電路復(fù)位是單片機的初始化操作。單片機啟運運行時,都需要先復(fù)位,其作用是使cpu和系統(tǒng)中其他部件處于一個確定的初始狀
7、態(tài),并從這個狀態(tài)開始工作。因而,復(fù)位是一個很重要的操作方式。但單片機本身是不能自動進行復(fù)位的,必須配合相應(yīng)的外部電路才能實現(xiàn)。復(fù)位電路的基本功能是:系統(tǒng)上電時提供復(fù)位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時才撤銷復(fù)位信號,以防電源開關(guān)或電源插頭分-合過程中引起的抖動而影響復(fù)位。3.2.3 晶振電路圖3.4晶振電路晶體振蕩器電路給數(shù)字鐘提供一個頻率穩(wěn)定準(zhǔn)確的32768hz的方波信號,可保證數(shù)字鐘的走時準(zhǔn)確及穩(wěn)定。3.2.4 ds1302時鐘模塊ds1302是美國dalla然司推出的一種高性能、低功耗、帶ram勺實時時鐘電路,它可以對年、月、日、周日、時、分、
8、秒進行計時,具有閏年補償功能,工作電壓為2.5v5.5v。采用三線接口與cpus行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或ram據(jù)。ds130汕部有一個31x8的用于臨時性存放數(shù)據(jù)的 ram!存器。ds130愛ds120對升級產(chǎn)品,與 ds120嫌容,但 增加了主電源/后備電源雙電源引腳,同時提供了對后備電源進行涓細電流充電的能力。3.2.5 引腳功能及結(jié)構(gòu)ds1302勺弓i腳排列,其中vcc1為后備電源,vcc為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。ds1302由vcc1或vcc2兩者中的較大者供電。當(dāng)vcc2大于vcc1+0.2v時,vcc2給ds130跳電。
9、當(dāng) vcc2小于vcc1時,ds1302由vcc1供電。x1和x溫振蕩源,外接 32.768khz晶振。rst是復(fù)位/片選線,通過把 rst輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。rst輸入有兩種功能:首先,rst接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,rs現(xiàn)供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng) rst為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對ds1302s行操作。如果在傳送過程中rst置為低電平,則會終止此次數(shù)據(jù)傳送,i/o引腳變?yōu)楦咦钁B(tài)。上電運行時,在vcc>2.0v之前,rst必須保持低電平。只有在 sclk為低電平時,才能將 rst置為高電平。i/o為串 行數(shù)據(jù)輸入
10、輸出端(雙向),后面有詳細說明。sclk為時鐘輸入端。vcc2 ex1匚x2匚gnd匚 i卜圖為ds1302勺引腳功能圖:vcg1 sclk fo rst圖3.5 ds1302封裝圖3.2.6 ds1302的控制字節(jié)ds1302的控制字節(jié)如下圖所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入 ds130",位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取ra微據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為昧示要進行寫操作,為1表示進行讀操作,控制字節(jié)總 是從最低位開始輸出。3.2.7 數(shù)據(jù)輸入輸出(i/o)在控制指令字輸入后的下一個 sclk時
11、鐘的上升沿時,數(shù)據(jù)被寫入 ds1302數(shù)據(jù)輸入從低位即 位0開始。同樣,在緊跟8位的控制指令字后的下一個 sclkb沖的下降沿讀出 ds130前數(shù)據(jù),讀出 數(shù)據(jù)時從低位0位到高位7。圖3.6 ds1302的寄存器3.2.8 ds1302i勺寄存器ds1302t 12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為bc加形式,其日歷、時間寄存器及其控制字見表1。此外,ds1302還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與 ram1關(guān)的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。ds1302與ram1關(guān)的寄存器分為兩類:一類是單個rami元,共
12、31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為 c0h- fdh其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的ramt存器,此方式下可一次性讀寫所有的ram31個字節(jié),命令控制字為 feh(寫)、ffh(讀)。圖3.7 ds1302的寄存器3.2.9 液晶顯示lcd16021602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶 模塊。它由若干個 5x7或者5x11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每 位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此 所以它不能很好地顯示圖形(用自定義cgram,顯示
13、效果也不好)。1602lcd是指顯示的內(nèi)容為16x2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)目前市面上字符液晶絕大多數(shù)是基于hd44780液晶芯片的,控制原理是完全相同的,因此基于hd44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。管腳功能lzo10:5n卡i v" 二仁 父 一工三*£色色恚獸考三三圖3.8 lcd1602引腳圖rt-1602采用表中的16腳接口:第一腳:vss,電源地。第二腳:vdd +5v電源。第三腳:vl,液晶顯示偏壓信號。第四腳:r§數(shù)據(jù)/命令選擇端,高電平時選擇數(shù)據(jù)寄存器,低電平時選擇指令寄存器。第五
14、腳:r/w,讀/寫選擇端。第六腳:e,使能端,當(dāng)e端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第七14腳:d0d7,為8位雙向數(shù)據(jù)線。第15腳:bla,背光源正極。第16腳:blk,背光源負極。圖3.9模塊顯示沈陽理工大學(xué)課程設(shè)計專用紙no3.2.10 申行時鐘日歷片 ds1302系統(tǒng)的組成與工作原理:系統(tǒng)由單片機 at89c5?串行日歷時鐘片 ds1302,液晶顯示模組lcd1602ds1302 的 clock! at89c52的 p1.6 相連,rst與 p1.5 相連,io 與 p1.7 相連。lcd1602的 d0d7與 at89c51 的 p0.0p.7 相連,并接上拉電阻,rs與
15、p2.0 相連,rww p2.1相連,e與p2.2相連。ds1302是dallas公司拖出的涓流充電時鐘芯片,內(nèi)含有一個實時時鐘/日歷和31個季節(jié)靜態(tài)ram通過簡單地串行接口與單片機進行通信,實時時鐘/日歷電路提供秒、分、時、日、日期、月、年的信息,每月的天數(shù)和閏年的天數(shù)可自動調(diào)整,時鐘操作可通過am/pm指示決定采用 24小時或12小時格式,ds1302與單片機之間能簡單地采用同步串行方式進行通信,僅需用到res復(fù)位、i/o數(shù)據(jù)線、sclk串行時鐘3個口線。對時鐘、ram勺讀/寫,可以改用單字節(jié)方式或多達 31個字節(jié)的 字符組方式。ds1302工作時功耗很低,保持數(shù)據(jù)和時鐘信息是功率小于1m
16、w ds1302廣泛應(yīng)用于電話傳真、便攜式儀器及電池供電的儀器儀表等產(chǎn)品領(lǐng)域中。rt-1602字符型液晶模塊是以兩行 16個子的5*7點陣吐信來顯示字符的液晶顯示器。ds1302有8個引腳:x1、x2: 32.768khz晶振介入引腳。gnd 地。rst復(fù)位引腳,低電平有效。i/o :數(shù)據(jù)輸入/輸出引腳,具有三態(tài)功能。sclk串行時鐘輸入弓i腳。vcc1:工作電源引腳。vcc2:備用電源引腳。ds1302有一個控制寄存器,12個日歷,時鐘寄存器和 31個ram。控制寄存器控制寄存器用于存放 ds1302的控制命令字,ds1302的rst引腳回到高電平后寫入的第一個字就為控制命令。它用于對ds1
17、302讀寫過程進行控制,它的格式如下:表3.1控制寄存器的格式d7 d6 d5 d4 d3d2d1d01ram/cka4a3a2a1a0rd/w各項功能說明如下。沈陽理工大學(xué)課程設(shè)計專用紙no9d7:固定為1d6: ram/ck位,片內(nèi)ram或日歷、時鐘寄存器選擇位,當(dāng) ram/ck=1時,對片內(nèi)ram進行讀 寫,當(dāng)ram/ck=0時,對日歷、時鐘寄存器進行讀寫。d5d1:地址位,用于選擇進行讀寫的日歷、時鐘寄存器或片內(nèi)ram。對日歷、時鐘寄存器或片內(nèi)ram的選擇。d0:讀寫位,當(dāng)rd/w=1時,對日歷、時鐘寄存器或片內(nèi)ram進行讀操作,當(dāng) rd/w=0時,對日歷、時鐘寄存器或片內(nèi)ram進行寫
18、操作。日歷、時鐘寄存器ds1302共有12個寄存器,其中有 7個與日歷、時鐘相關(guān),存放的數(shù)據(jù)為bcd碼形式。日歷、時鐘寄存器的格式。說明:數(shù)據(jù)都以bcd碼形式表示。小時寄存器的d7位為12小時制/24小時制的選擇位, 當(dāng)為1時選擇12小時制,當(dāng)為0時選24 小時制。當(dāng)12小時制時,d5位為1是上午,d5位為。是下午,d4位小時的十位。當(dāng) 24小時制時, d5、d4位為小時的十位。秒寄存器中的ch位為時鐘暫停位,當(dāng)為1時,時鐘暫停,為 。時,時鐘開始啟動。寫保護寄存器中的 wp為寫保護位,wp=1時,寫保護,當(dāng) wp=0時,未寫保護,當(dāng)對日歷、時 鐘寄存器或片內(nèi) ram進行寫時,wp應(yīng)清零,當(dāng)對
19、日歷、時鐘寄存器或片內(nèi)ram進行讀時,wp 般置1.慢充電寄存器的tcs位為控制慢充電的選擇,當(dāng)它為 1010時才能是慢充電工作。ds為二極管選擇位。ds為01選擇一個二極管,ds為10選擇兩個二極管,ds為11或00充電器被禁止,與tcs 無關(guān)。rs用于選擇連接在 vcc2與vcc1之間的電阻,rs為00,充電器被禁止,與 tcs無關(guān)。沈陽理工大學(xué)課程設(shè)計專用紙nol04 .系統(tǒng)軟件設(shè)計4.1 程序流程( 開始lcd初始化函數(shù) lcdlnitiate ();寫數(shù)據(jù)的顯示地址函數(shù)writeaddress顯示 date和time調(diào)用 readset1302 (unsigned char cmd)
20、調(diào)用 display(), 分別顯示年、 月、日、時、分、秒t(結(jié)束圖4.1 程序流程圖4.2 程序代碼#include<reg51.h> /包含單片機寄存器的頭文件#include<intrins.h> /包含_nop_()函數(shù)定義的頭文件*以下是ds1302芯片的操作程序*/ unsigned char code digit10="0123456789" 定義字符數(shù)組顯示數(shù)字sbit data=p1£/位定義1302芯片的接口,數(shù)據(jù)輸出端定義在p1.7引腳 sbit rst=p15;/位定義1302芯片的接口,復(fù)位端口定義在 p1.5弓
21、i腳sbit sclk=p1 位定義1302芯片的接口,時鐘輸出端口定義在p1.6弓i腳 /*函數(shù)功能:延時若干微秒*/ void delaynus(unsigned char n) unsigned char i;for(i=0;i<n;i+);/*函數(shù)功能:向1302寫一個字節(jié)數(shù)據(jù)*/ void write1302(unsigned char dat) unsigned char i;sclk=0; /股低sclk為脈沖上升沿寫入數(shù)據(jù)做好準(zhǔn)備 delaynus(2); 稍微等待,使硬件做好準(zhǔn)備for(i=0;i<8;i+) 連續(xù)寫8個二進制位數(shù)據(jù)data=dat&0x0
22、1;/取出dat的第0位數(shù)據(jù)寫入 1302 delaynus(2); 稍微等待,使硬件做好準(zhǔn)備sclk=1;/±升沿寫入數(shù)據(jù) delaynus(2); 稍微等待,使硬件做好準(zhǔn)備sclk=0; /重新拉低sclk形成脈沖沈陽理工大學(xué)課程設(shè)計專用紙no22dat>>=1; 將dat的各數(shù)據(jù)位右移1位,準(zhǔn)備寫入下一個數(shù)據(jù)位/*函數(shù)功能:根據(jù)命令字,向1302寫一個字節(jié)數(shù)據(jù)入口參數(shù):cmd,儲存命令字;dat,儲存待寫的數(shù)據(jù)*/ void writeset1302(unsigned char cmd,unsigned char dat)rst=0; /禁止數(shù)據(jù)傳遞sclk=0;硼
23、保寫數(shù)居前scl蹴拉低rst=1;/啟動數(shù)據(jù)傳輸 delaynus(2); 稍微等待,使硬件做好準(zhǔn)備write1302(cmd);/ 寫入命令字write1302(dat);/ 寫數(shù)據(jù)sclk=1; /解時鐘電平置于已知狀態(tài)rst=0; /禁止數(shù)據(jù)傳遞/*函數(shù)功能:從1302讀一個字節(jié)數(shù)據(jù)*/ unsigned char read1302(void) unsigned char i,dat;delaynus(2); 稍微等待,使硬件做好準(zhǔn)備for(i=0;i<8;i+) 連續(xù)讀8個二進制位數(shù)據(jù)dat>>=1; /將dat的各數(shù)據(jù)位右移1位,因為先讀出的是字節(jié)的最低位 if(d
24、ata=1) /如果讀出的數(shù)據(jù)是 1 dat|=0x80; /將1取出,寫在 dat的最高位sclk=1; /8各sclkm于高電平,為下降沿讀出 delaynus(2); / 稍微等待sclk=0; /股低sclk形成脈沖下降沿 delaynus(2); / 稍微等待return dat;/將讀出的數(shù)據(jù)返回/*函數(shù)功能:根據(jù)命令字,從1302讀取一個字節(jié)數(shù)據(jù)入口參數(shù):cmd*/ unsigned char readset1302(unsigned char cmd) unsigned char dat;rst=0;砒低 rstsclk=0;硼保寫數(shù)居前scl蹴拉低rst=1;/啟動數(shù)據(jù)傳輸w
25、rite1302(cmd);/ 寫入命令字dat=read1302(); / 讀出數(shù)據(jù)sclk=1; /解時鐘電平置于已知狀態(tài)rst=0; /禁止數(shù)據(jù)傳遞 return dat;/將讀出的數(shù)據(jù)返回/*以下是對液晶模塊的操作程序*/ sbit rs=p2a0; 寄存器選擇位,將 rs位定義為p2.0弓i腳 sbit rw=p2a1; 讀寫選擇位,將 rw位定義為p2.1引腳 sbit e=p2a2;/使能信號位,將 e位定義為p2.2引腳 sbit bf=p0a7; 忙碌標(biāo)志位,將bf位定義為p0.7引腳*函數(shù)功能:延時1ms(3j+2)*i=(3 x 33+2)x10=1010(微秒),可以認
26、為是 1 毫秒*/ void delay1ms() unsigned char i,j;for(i=0;i<10;i+) for(j=0;j<33;j+)/*函數(shù)功能:延時若干毫秒*/ void delaynms(unsigned char n) unsigned char i;for(i=0;i<n;i+) delay1ms();/*函數(shù)功能:判斷液晶模塊的忙碌狀態(tài) 返回值:result。result=1 ,忙碌;result=0,不忙 */ bit busytest(void) bit result;rs=0;/根據(jù)規(guī)定,rs為低電平,rw為高電平時,可以讀狀態(tài)rw=1;
27、e=1; e=1,才允許讀寫_nop_(); 空操作_nop_();_nop_();_nop_(); 空操作四個機器周期,給硬件反應(yīng)時間result=bf; 將忙碌標(biāo)志電平賦給resulte=0; 將e恢復(fù)低電平return result;/*函數(shù)功能:將模式設(shè)置指令或顯示地址寫入液晶模塊入口參數(shù):dictate*/void writeinstruction (unsigned char dictate)while(busytest()=1); 如果忙就等待rs=0; 根據(jù)規(guī)定,rs和r/w同時為低電平時,可以寫入指令rw=0;e=0;/e置低電平/就是讓e從0到1發(fā)生正跳變,所以應(yīng)先置&qu
28、ot;0"_nop_();_nop_(); 空操作兩個機器周期,給硬件反應(yīng)時間p0=dictate; 將數(shù)據(jù)送入 p0 口,即寫入指令或地址_nop_();_nop_();_nop_();_nop_(); 空操作四個機器周期,給硬件反應(yīng)時間e=1;/e置高電平_nop_();_nop_();_nop_();_nop_(); 空操作四個機器周期,給硬件反應(yīng)時間e=0;/當(dāng)e由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令/*函數(shù)功能:指定字符顯示的實際地址*/ void writeaddress(unsigned char x)writeinstruction(x|0x80);/ 顯示位置
29、的確定方法規(guī)定為"80h+地址碼x"/*函數(shù)功能:將數(shù)據(jù)(字符的標(biāo)準(zhǔn)ascii碼)寫入液晶模塊 入口參數(shù):y(為字符常量)*/ void writedata(unsigned char y)while(busytest()=1);rs=1;/rs為高電平,rw為低電平時,可以寫入數(shù)據(jù)rw=0;e=0;/就是讓e從0到1發(fā)生正跳變,所以應(yīng)先置 "0"p0=y; 將數(shù)據(jù)送入p0 口,即將數(shù)據(jù)寫入液晶模塊_nop_();_nop_();_nop_();_nop_(); 空操作四個機器周期,給硬件反應(yīng)時間e=1; /e置高電平_nop_();_nop_();_n
30、op_();_nop_(); 空操作四個機器周期,給硬件反應(yīng)時間e=0;/當(dāng)e由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令/*函數(shù)功能:對lcd的顯示模式進行初始化設(shè)置*/void lcdlnitiate(void)delaynms(15); 延時15ms,首次寫指令時應(yīng)給lcd一段較長的反應(yīng)時間writeinstruction(0x38);/顯示模式設(shè)置:16x2顯示,5x7點陣,8位數(shù)據(jù)接口delaynms(5); /延時5ms ,給硬件一點反應(yīng)時間writeinstruction(0x38);delaynms(5); /延時5ms ,給硬件一點反應(yīng)時間writeinstruction(0
31、x38);/連續(xù)三次,確保初始化成功delaynms(5); /延時5ms ,給硬件一點反應(yīng)時間writeinstruction(0x0c); 顯示模式設(shè)置:顯示開,無光標(biāo),光標(biāo)不閃爍delaynms(5); /延時5ms ,給硬件一點反應(yīng)時間writeinstruction(0x06);/顯示模式設(shè)置:光標(biāo)右移,字符不移delaynms(5); /延時5ms ,給硬件一點反應(yīng)時間writeinstruction(0x01);/清屏幕指令,將以前的顯示內(nèi)容清除delaynms(5); /延時5ms ,給硬件一點反應(yīng)時間/*以下是1302數(shù)據(jù)的顯示程序*/void display(unsigne
32、d char x,unsigned char y)unsigned char i,j;i=x/10;j=x%10;writeaddress(y);writedata(digiti);writedata(digitj);delaynms(50); 延時1ms給硬件一點反應(yīng)時間/*函數(shù)功能:主函數(shù)*/void main(void)unsigned char second,minute,hour,day,month,year;/分別儲存秒、分、小時,日,月,年unsigned char readvalue; / 儲存從 1302 讀取的數(shù)據(jù)lcdinitiate(); 將液晶初始化writeaddr
33、ess(0x00); /寫date的顯示地址,將在第1行第1列開始顯示writedata('d'); 將字符常量寫入 lcdwriteaddress(0x01);writedata('a');/將字符常量寫入 lcdwriteaddress(0x02);writedata('t'); /將字符常量寫入 lcdwriteaddress(0x03);writedata('e');/將字符常量寫入 lcdwriteaddress(0x04);writedata(':');/將字符常量寫入 lcdwriteaddress(
34、0x08);/寫年月分隔符的顯示地址,顯示在第1行第9歹uwritedata('-'); 將字符常量寫入 lcdwriteaddress(0x0b); 寫月日分隔符的顯示地址,顯示在第1行第12歹uwritedata('-'); 將字符常量寫入 lcdwriteaddress(0x40);writedata('t');writeaddress(0x41);writedata('i');writeaddress(0x42);writedata('m');writeaddress(0x43);writedata(
35、9;e');writeaddress(0x44);writedata(':');writeaddress(0x48);writedata(':');/將字符常量寫入 lcdwriteaddress(0x4b);writedata(':');/將字符常量寫入 lcdwhile(1)readvalue = readset1302(0x81); /從秒寄存器讀數(shù)據(jù)second=(readvalue&0x70)>>4)*10 + (readvalue&0x0f);/ 將讀出數(shù)據(jù)轉(zhuǎn)化display(second,0x4c
36、); / 顯示秒readvalue = readset1302(0x83); /從分寄存器讀minute=(readvalue&0x70)>>4)*10 + (readvalue&0x0f); / 將讀出數(shù)據(jù)轉(zhuǎn)化display(minute,0x49); / 顯示分readvalue = readset1302(0x85); 從小時寄存器讀hour=(readvalue&0x70)>>4)*10 + (readvalue&0x0f); / 將讀出數(shù)據(jù)轉(zhuǎn)化display(hour,0x46); / 顯示小時readvalue = reads
37、et1302(0x87); /從分寄存器讀day=(readvalue&0x70)>>4)*10 + (readvalue&0x0f); / 將讀出數(shù)據(jù)轉(zhuǎn)化display(day,0x0c); 顯示日readvalue = readset1302(0x89); /從分寄存器讀month=(readvalue&0x70)>>4)*10 + (readvalue&0x0f); 將讀出數(shù)據(jù)轉(zhuǎn)化display(month,0x09); / 顯示月readvalue = readset1302(0x8d); 從分寄存器讀year=(readvalu
38、e&0xf0)>>4)*10 + (readvalue&0x0f); / 將讀出數(shù)據(jù)轉(zhuǎn)化display(year,0x06); / 顯示年5 .系統(tǒng)仿真調(diào)試5.1 仿真原理圖設(shè)計psen ale13 x2x2 si3d2vcc1vcc2rst $clk i/o1:<中口隹)pd.1/xj1 pci .3 的 2 p0.3/o3 叩wm4 叩知血 相同岫屯p0.?/*d7fz.ouw f7.1wp2 2/aw p2 3/a11 p2 4/a12 p2.5/a13 p2j/a14 f2.7/a15p5.o/rxd f3.«md f3.2/tnttd f3.j/tnthp5.4/tp 毆町p3 6«wr p&t而圖5.1 仿真原理圖5.2 仿真工具欄圖5.2仿真控制按鈕功
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國廣味豆腐干數(shù)據(jù)監(jiān)測研究報告
- 2025年防凍液包裝容器項目可行性研究報告
- 2025年耙吸式挖泥船項目可行性研究報告
- 2025年碳硫儀項目可行性研究報告
- 2025年商用冷藏柜項目可行性研究報告
- 2025年冰箱除臭用品項目可行性研究報告
- 2025至2030年防爆防腐照明開關(guān)項目投資價值分析報告
- 2025至2030年納米銀鼻腔抗菌噴霧器項目投資價值分析報告
- 2025至2030年珍珠棉棒條項目投資價值分析報告
- 2025至2030年水力清洗機項目投資價值分析報告
- 搖臂鉆床日常點檢表
- 經(jīng)濟開發(fā)區(qū)擴區(qū)可行性研究報告
- 會計職業(yè)道德課件(完整版)
- 金屬探測器檢查記錄表
- 2022年五年級數(shù)學(xué)興趣小組活動記錄
- Q∕GDW 12127-2021 低壓開關(guān)柜技術(shù)規(guī)范
- 商品房預(yù)售合同登記備案表
- 版式設(shè)計發(fā)展歷程-ppt課件
- 通信機房蓄電池放電試驗報告
- 病原細菌的分離培養(yǎng)
- EDA課程設(shè)計報告書--八音電子琴
評論
0/150
提交評論