第8章51單片機(jī)的常用外擴(kuò)模塊21602與DS1302_第1頁(yè)
第8章51單片機(jī)的常用外擴(kuò)模塊21602與DS1302_第2頁(yè)
第8章51單片機(jī)的常用外擴(kuò)模塊21602與DS1302_第3頁(yè)
第8章51單片機(jī)的常用外擴(kuò)模塊21602與DS1302_第4頁(yè)
第8章51單片機(jī)的常用外擴(kuò)模塊21602與DS1302_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

8.3.1602液晶顯示器介紹

8.3.11602液晶簡(jiǎn)介

1.特點(diǎn)(1)液晶顯示屏是以若干個(gè)58或511點(diǎn)陣塊組成的顯示字符群。每個(gè)點(diǎn)陣塊為一個(gè)字符位,字符間距和行距都為一個(gè)點(diǎn)的寬度。(2)主控制驅(qū)動(dòng)電路為HD44780或其他全兼容電路,如SED1278(SEIKOEPSON)、KS0066(SAMSUNG)、NJU6408(NERJAPANRADIO)。(3)具有字符發(fā)生器ROM可顯示192種字符(160個(gè)57點(diǎn)陣字符和32個(gè)510點(diǎn)陣字符。(4)具有64個(gè)字節(jié)的自定義字符RAM,可自定義8個(gè)58點(diǎn)陣字符或四個(gè)511點(diǎn)陣字符。(5)具有80個(gè)字節(jié)的RAM。(7)單+5V電源供電。作者:夏路易電子工業(yè)出版所有2.引腳功能引腳號(hào)符號(hào)狀態(tài)功能1Vss

電源地2Vdd

+5V邏輯電源3V0

對(duì)比度控制4RS輸入寄存器選擇,1:數(shù)據(jù);0:指令5R/W輸入讀、寫操作選擇,1:讀;0:寫6E輸入使能信號(hào),高電平或是下降邊沿有效7D0三態(tài)數(shù)據(jù)總線(LSB)8D1三態(tài)數(shù)據(jù)總線9D2三態(tài)數(shù)據(jù)總線10D3三態(tài)數(shù)據(jù)總線11D4三態(tài)數(shù)據(jù)總線12D5三態(tài)數(shù)據(jù)總線13D6三態(tài)數(shù)據(jù)總線14D7三態(tài)數(shù)據(jù)總線(MSB)15LEDA輸入背光+5V有些液晶沒有背光,有些引腳與此不同16LEDK輸入背光地作者:夏路易電子工業(yè)出版所有8.3.21602液晶中的顯示驅(qū)動(dòng)芯片HD447801.1602液晶結(jié)構(gòu)與信號(hào)HD44780是驅(qū)動(dòng)器與控制器一體的專用字符液晶顯示控制驅(qū)動(dòng)集成電路,是字符液晶顯示控制器的代表芯片。該芯片內(nèi)集成了顯示緩沖區(qū)和用戶定義的字符發(fā)生器CGRAM,具有簡(jiǎn)單但功能強(qiáng)的指令,可以實(shí)現(xiàn)字符移動(dòng)、閃爍等顯示功能。(1)接口信號(hào)D7~D4三態(tài)總線,8位數(shù)據(jù)總線的高4位,可以作為4位數(shù)據(jù)總線使用D3~D0三態(tài)總線,8位數(shù)據(jù)總線的低4位,4位數(shù)據(jù)總線時(shí)無用在4位數(shù)據(jù)總線情況下單片機(jī)向HD44780發(fā)送指令和數(shù)據(jù)時(shí),先傳輸高4位,再傳輸?shù)?位。接口控制信號(hào)為RS、R/W和E,他們之間的關(guān)系如下表所示。寄存器選擇RS讀寫R/W使能信號(hào)E功能00下降沿有效寫指令代碼01高電平有效讀忙標(biāo)志和AC碼10下降沿有效寫數(shù)據(jù)11高電平有效讀數(shù)據(jù)作者:夏路易電子工業(yè)出版所有(2)時(shí)鐘HD44780時(shí)鐘頻率范圍是125kHz~350kHz,典型時(shí)鐘范圍是250kHz。(3)芯片內(nèi)部邏輯實(shí)現(xiàn)初始化操作在上電后,芯片內(nèi)部邏輯實(shí)現(xiàn)初始化操作:清屏初始化設(shè)置為8位總線接口、1行、5×7字符顯示關(guān)顯示地址計(jì)數(shù)器設(shè)置為自動(dòng)加1模式在初始化過程中。忙標(biāo)志BF保持為1,直到初始化結(jié)束。(4)地址計(jì)數(shù)器AC地址計(jì)數(shù)器AC是顯示緩沖區(qū)DDRAM或字符發(fā)生器CDRAM的地址,在寫或讀之后,還有地址加1或減1功能;該計(jì)數(shù)器還指示當(dāng)前光標(biāo)位置。AC值可以通過讀操作讀出。作者:夏路易電子工業(yè)出版所有(5)光標(biāo)閃爍光標(biāo)以底線形式在字符位置的第8行閃爍,但也可以是字符閃爍,可由指令設(shè)置。(6)字符發(fā)生器CGROM與CGRAMCGROM中存儲(chǔ)有出廠時(shí)就固化好的字模庫(kù),包含有160種5×7點(diǎn)陣的字模和32種5×10點(diǎn)陣的字模。在內(nèi)部時(shí)序的控制下,顯示緩沖區(qū)DDRAM中的字符代碼與行計(jì)數(shù)器合成CGROM的地址。CGRAM是可讀、可寫的用戶自定義字符發(fā)生器,容量有64字節(jié),地址位00H~03H,只能自定義8個(gè)5×8點(diǎn)陣字符,字符代碼取值范圍為00H~07H。作者:夏路易電子工業(yè)出版所有字符發(fā)生器CGROM作者:夏路易電子工業(yè)出版所有(7)DDRAM顯示緩沖區(qū)DDRAM用于存儲(chǔ)顯示字符的代碼,共有80個(gè)字節(jié),地址計(jì)數(shù)器AC的數(shù)值是DDRAM的地址,DDRAM中的代碼是字符發(fā)生器CGRAM或CGROM地址的高8位,而地址的低3位或4位由行計(jì)數(shù)器提供,DDRAM中的各個(gè)單元對(duì)應(yīng)著顯示屏上的各個(gè)字符位,對(duì)應(yīng)關(guān)系如下:列位置12345678910111213141516第1行000102030405060708090A0B0C0D0E0F第2行404142434445464748494A4B4C4D4E4F在確定字符位置時(shí),還需要考慮最高位是1的格式要求,比如第二行第一個(gè)字符的地址是40H,由于寫入顯示地址時(shí)要求最高位D7為高電平1,所以實(shí)際寫入的數(shù)據(jù)應(yīng)該是01000000B(40H)+10000000B(80H)=11000000B(C0H)。作者:夏路易電子工業(yè)出版所有1602指令簡(jiǎn)述如下:(1)清屏(0x01)把空碼20H寫入DDRAM的全部單元。地址計(jì)數(shù)器AC清零,光標(biāo)歸位。設(shè)置I/D=1,使AC處于自動(dòng)加1模式。(2)歸位(0x02)使AC清零,還可以使發(fā)生位移的畫面返回00H處顯示,光標(biāo)或是閃爍將回到原點(diǎn)00H處。(3)輸入方式(0000,01,I/D,S)該指令設(shè)置單片機(jī)讀、寫DDRAM或CGRAM后,AC的變化方向,該指令有兩個(gè)參數(shù):I/D:I/D=1AC自動(dòng)加1,光標(biāo)右移;I/D=0AC自動(dòng)減1,光標(biāo)左移。S:設(shè)置在寫入DDRAM數(shù)據(jù)后,顯示屏上的畫面全部向左或向右平移一個(gè)字符位。S=0:無效,S=1有效。S=1、I/D=1,畫面左移。S=1、I/D=0,畫面右移。作者:夏路易電子工業(yè)出版所有(4)顯示開關(guān)控制(0000,1,D,C,B)該指令控制顯示效果,帶有三個(gè)參數(shù):D:顯示開關(guān),D=1時(shí),允許顯示屏顯示;D=0,不允許顯示屏顯示。C:光標(biāo)開關(guān),C=1時(shí),允許顯示屏顯示光標(biāo);C=0時(shí),不允許顯示光標(biāo)。光標(biāo)位置由AC控制。B:閃爍開關(guān),使一個(gè)字符位交替全亮或是全暗,閃爍頻率為2.4Hz。閃爍位置由AC控制。B=1,閃爍;B=0,不閃爍。(5)光標(biāo)或畫面位移(0001,S/C,R/L,0,0)執(zhí)行該指令時(shí),光標(biāo)或顯示屏上的畫面將左移或右移一個(gè)字符位置。S/C:位移對(duì)象選擇,S/C=1時(shí),畫面位移,S/C=0時(shí)光標(biāo)位移。R/L:位移方向選擇,R/L=1時(shí)為右移,R/L=0時(shí)為左移。(6)功能設(shè)置(001,DL,N,F(xiàn),00)該指令HD44780的初始化設(shè)置指令,單片機(jī)必須使用這條指令初始化HD44780,該指令有三個(gè)參數(shù):DL:總線數(shù)據(jù)位數(shù),DL=0,總線為4位,DL=1,總線為8位。N:顯示屏顯示行數(shù),N=0為1行,N=1為2行。F:字符格式,F(xiàn)=0為5×7點(diǎn)陣,F(xiàn)=1為5×10。作者:夏路易電子工業(yè)出版所有(7)CGRAM地址設(shè)置(指令碼:01A5,A4,A3,A2,A1,A0)該指令將CGRAM的6位地址碼00H~3FH寫入地址計(jì)數(shù)器AC內(nèi),隨后單片機(jī)將對(duì)CGRAM操作。(8)DDRAM地址設(shè)置(指令碼:0A6,A5,A4,A3,A2,A1,A0)該指令將DDRAM的7位地址碼送入地址計(jì)數(shù)器AC內(nèi),隨后單片機(jī)對(duì)DDRAM操作,DDRAM的地址范圍是:N=0(1行字符)00H~4FHN=1(2行字符)第1行:00H~27H,第2行:40H~67H(9)DF與AC當(dāng)單片機(jī)讀操作時(shí)(RS=0,R/W=1),讀出1位忙標(biāo)志(BF)和7位地址計(jì)數(shù)器AC的組合,格式為:D7D6D5D4D3D2D1D0BFAC6AC5AC4AC3AC2AC1AC0其中AC的值可以是DDRAM的地址,也可以是CGRAM的地址。作者:夏路易電子工業(yè)出版所有(10)寫入DDRAM或是CGRAM單片機(jī)把要寫入DDRAM或CGRAM的數(shù)據(jù)寫入HD44780中,需要首先寫入地址設(shè)置指令,選擇DDRAM或是CGRAM,然后是設(shè)置地址計(jì)數(shù)器AC的自動(dòng)修改方式。(11)讀取DDRAM或是CGRAM單片機(jī)讀取當(dāng)前AC計(jì)數(shù)值所指單元的內(nèi)容。3.1602液晶與51單片機(jī)的接線1602液晶與51單片機(jī)的接線如圖所示。作者:夏路易電子工業(yè)出版所有8.3.351單片機(jī)控制1602液晶顯示例題

[例題8-7]本例的程序是51單片機(jī)向1602液晶寫入兩屏數(shù)據(jù)。數(shù)據(jù)總線連接51單片機(jī)的P0口,控制引腳RS(L_RS)連接P2_0,R/W(L_RW)連接P2_1,E(L_EP)連接P2_2。單片機(jī)時(shí)鐘頻率11.0592MHz。源程序如下:#include<AT89X51.H>#include<intrins.h>//具有_nop_()函數(shù)的庫(kù)文件typedefunsignedcharzj;//重定義數(shù)據(jù)類型zj為無符號(hào)字符型sbitL_RS=P2^0;//定義控制信號(hào)L_RS連接的引腳sbitL_RW=P2^1;//定義控制信號(hào)L_RW連接的引腳sbitL_EP=P2^2;//定義控制信號(hào)L_EP(E)連接的引腳zjcodedis1[]={"shanxitaiyuan"};//寫入液晶的字符串?dāng)?shù)組zjcodedis2[]={"TYUTAuto.Dept."};//寫入液晶的字符串?dāng)?shù)組zjcodedis3[]={"0123456789abcdef"};//寫入液晶的字符串?dāng)?shù)組zjcodedis4[]={"file:yj1602zz1."};//寫入液晶的字符串?dāng)?shù)組delay(intms)//延時(shí)函數(shù){inti;while(ms--){for(i=0;i<250;i++){_nop_();_nop_();_nop_();_nop_();}//_nop_()空操作}}作者:夏路易電子工業(yè)出版所有bityj_bz()//測(cè)試液晶忙狀態(tài)檢測(cè)函數(shù),返回“位”類型{bitresult;L_RS=0;L_RW=1;L_EP=1;_nop_();_nop_();_nop_();_nop_();result=(bit)(P0&0x80);//將P0口的最高位取出,并強(qiáng)制為位類型L_EP=0;returnresult;//返回液晶忙標(biāo)志}yj_wcmd(zjcmd)//向LCD寫入指令函數(shù){while(yj_bz());//當(dāng)忙等待L_RS=0;L_RW=0;L_EP=0;_nop_();_nop_();P0=cmd;//將命令寫入P0口_nop_();_nop_();_nop_();_nop_();L_EP=1;_nop_();_nop_();_nop_();_nop_();L_EP=0;}yj_pos(zjpos)//設(shè)定字符顯示位置函數(shù){yj_wcmd(pos|0x80);//調(diào)用寫命令函數(shù),寫入位置值}作者:夏路易電子工業(yè)出版所有yj_wdat(zjdat)//向LCD寫入字符(一個(gè)字節(jié)數(shù)據(jù))函數(shù){while(yj_bz());L_RS=1;L_RW=0;L_EP=0;P0=dat;//將顯示數(shù)據(jù)寫入P0口_nop_();_nop_();_nop_();_nop_();L_EP=1;_nop_();_nop_();_nop_();_nop_();L_EP=0;}yj_init()//軟件初始化函數(shù){yj_wcmd(0x38);//16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù),(001,DL=1,N=0,F(xiàn)=0,00)delay(1);yj_wcmd(0x0c);//顯示開,關(guān)光標(biāo),不閃爍(0000,1,D=1,C=0,B=0)delay(1);yj_wcmd(0x06);//增量方式移動(dòng)光標(biāo)(0000,0,1,I/D=0,S=0)delay(1);yj_wcmd(0x01);//清除液晶的顯示內(nèi)容,AC與DDRAM初始化delay(1);}作者:夏路易電子工業(yè)出版所有main()//主函數(shù){zji;//定義無符號(hào)字符變量iyj_init();//調(diào)用初始化函數(shù),軟件初始化LCDdelay(10);while(1)//無限循環(huán){yj_wcmd(0x06);//調(diào)用寫命令函數(shù),向右移動(dòng)光標(biāo)(增量)yj_pos(0);//調(diào)用顯示位置函數(shù),設(shè)置顯示位置為第一行的第1個(gè)字符i=0;//循環(huán)變量初始化while(dis1[i]!='\0')//如果沒有遇到結(jié)束符,則顯示字符"shanxitaiyuan"{yj_wdat(dis1[i]);//調(diào)用寫數(shù)據(jù)函數(shù),向液晶寫字符,由于是增量方式,所以AC自動(dòng)加1i++;delay(10);//設(shè)置兩字符之間顯示速度}yj_pos(0x40);//調(diào)用顯示位置函數(shù),設(shè)置顯示位置為第二行第1個(gè)字符i=0;while(dis2[i]!='\0')//顯示字符"TYUTAuto.Dept."{yj_wdat(dis2[i]);//調(diào)用寫數(shù)據(jù)函數(shù),向液晶寫字符,由于是增量方式,所以AC自動(dòng)加1i++;delay(10);//設(shè)置兩字之間顯示速度}作者:夏路易電子工業(yè)出版所有delay(300);//設(shè)置本屏的停留時(shí)間yj_wcmd(0x01);//調(diào)用寫命令函數(shù),清除液晶前1屏的顯示內(nèi)容delay(1);yj_wcmd(0x06);//調(diào)用寫命令函數(shù),向右移動(dòng)光標(biāo)yj_pos(0);//調(diào)用顯示位置函數(shù),設(shè)置顯示位置為第一行的第1個(gè)字符i=0;while(dis3[i]!='\0')//顯示字符"0123456789abcdef"{yj_wdat(dis3[i]);//調(diào)用寫數(shù)據(jù)函數(shù),向液晶寫字符,i++;delay(10);//設(shè)置兩字之間顯示速度}yj_pos(0x40);//調(diào)用顯示位置函數(shù),設(shè)置顯示位置為第二行的第1個(gè)字符i=0;while(dis4[i]!='\0'){yj_wdat(dis4[i]);//調(diào)用寫數(shù)據(jù)函數(shù),將字符"file:yj1602zz1."寫入LCDi++;delay(10);//設(shè)置兩字之間顯示速度}delay(300);//設(shè)置本屏顯示停留時(shí)間yj_wcmd(0x01);//調(diào)用寫命令函數(shù),清除液晶的顯示內(nèi)容delay(100);//控制兩屏轉(zhuǎn)換時(shí)間}}

作者:夏路易電子工業(yè)出版所有8.4實(shí)時(shí)時(shí)鐘芯片DS13028.4.1DS1302工作原理

DS1302是低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.0V~5.0V。DS1302內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。采用三線接口與單片機(jī)進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302具有主電源與后備電源引腳,同時(shí)提供了對(duì)后備電源進(jìn)行涓細(xì)電流充電的能力。該芯片在保留RAM數(shù)據(jù)或是時(shí)鐘信息的情況下,芯片功耗很低,小于1μW。1.DS1302具有如下特點(diǎn)(1)對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),在2100年以前具有閏年補(bǔ)償功能。(2)具有31x8RAM。(3)三線串行通信。(4)2.0V到5.0V的工作電壓。(5)在2.0V時(shí)的工作電流小于300nA。(6)對(duì)于時(shí)鐘與RAM可以進(jìn)行單字節(jié)或是多字節(jié)讀寫。(7)8引腳DIP封裝與貼片封裝。(8)VCC=5V時(shí),I/O引腳與TTL兼容。(9)工作溫度為-40°Cto+85°C。作者:夏路易電子工業(yè)出版所有DS1302由電源控制、輸入移位寄存器、命令與控制邏輯、振蕩與分頻、實(shí)時(shí)時(shí)鐘與RAM等模塊組成,其中輸入移位寄存器用于輸入和輸出命令與數(shù)據(jù),命令與控制邏輯用于解釋命令并控制讀寫時(shí)鐘與RAM的操作;振蕩器產(chǎn)生時(shí)鐘,分頻成1s的脈沖后輸入實(shí)時(shí)時(shí)鐘模塊生成秒、分、時(shí)、日期、月、星期和年。作者:夏路易電子工業(yè)出版所有該芯片有8個(gè)引腳,其中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供電。CE是復(fù)位/片選輸入線,CE為高電平啟動(dòng)讀寫數(shù)據(jù)操作。該電阻具40k電阻下拉到地線。I/O為串行數(shù)據(jù)輸入輸出引腳(雙向)。該引腳與地之間有40k的下拉電阻。SCLK是時(shí)鐘輸入引腳。該引腳有40k的下拉電阻到地。X1和X2引腳用于外接32.768kHz晶振。由于內(nèi)部已經(jīng)集成了6pF的電容,因此外部不需要再連接電容

作者:夏路易電子工業(yè)出版所有4.命令字節(jié)每一數(shù)據(jù)傳送都需要由命令字節(jié)初始化,命令字節(jié)的最高位(位7)必須為1;位6為表示對(duì)時(shí)鐘數(shù)據(jù)操作,為1表示對(duì)RAM數(shù)據(jù)操作;位1~5指定讀寫操作的寄存器;位0為0表示寫操作,為1表示讀操作;命令字節(jié)總是從最低有效位開始傳送。命令字節(jié)格式如下:位76543210

1RAMA4A3A2A1A0RDCKWR5.芯片復(fù)位與時(shí)鐘控制CE復(fù)位引腳有兩種功能:第1是CE引腳接通控制邏輯,允許地址/命令序列送入移位寄存器;第2是CE引腳可以提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送。當(dāng)CE為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。時(shí)鐘周期是下降沿跟隨上升沿的序列,對(duì)于數(shù)據(jù)輸入,則在時(shí)鐘上升沿時(shí)數(shù)據(jù)必須有效,輸出數(shù)據(jù)時(shí),數(shù)據(jù)在時(shí)鐘的下降沿輸出。如果在傳送過程中CE引腳置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,使I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc≥2.0V之前,CE必須保持低電平。只有在SCLK為低電平時(shí),才能將CE置為高電平作者:夏路易電子工業(yè)出版所有6.數(shù)據(jù)輸入緊跟寫命令字節(jié)后的8個(gè)SCLK之后的8個(gè)SCLK周期的上升沿將數(shù)據(jù)寫入DS1302,數(shù)據(jù)從低位開始寫入。7.數(shù)據(jù)輸出緊跟寫命令字節(jié)后的8個(gè)SCLK之后的8個(gè)SCLK周期的下降沿,數(shù)據(jù)從DS1302輸出。輸出的第1個(gè)數(shù)據(jù)位出現(xiàn)在寫命令字節(jié)的最后1位后的第1個(gè)下降沿。作者:夏路易電子工業(yè)出版所有8.多字節(jié)方式讀與寫通過對(duì)地址31尋址(地址命令位1~5全為1),則可以對(duì)時(shí)鐘和RAM寄存器實(shí)現(xiàn)多字節(jié)讀寫操作,又稱為突發(fā)模式,同樣,地址命令位6選擇時(shí)鐘或是RAM,而位0選擇讀或者寫。在多字節(jié)操作方式下,不能操作地址為9~31的時(shí)鐘寄存器,也不能操作地址為31的RAM寄存器。在多字節(jié)讀寫操作中,從地址0的0位開始。9.時(shí)鐘時(shí)間與日期可以通過讀DS1302的某些字節(jié)得到,通過寫某些寄存器字節(jié)可以設(shè)置時(shí)間和日期,這些寄存器如表8-6所示。每個(gè)寄存器都有讀地址與寫地址,前七個(gè)寄存器為:秒、分、小時(shí)、日期、月、星期、年,隨后是寫保護(hù)寄存器和充電控制寄存器。時(shí)間和日期以BCD格式保存。小時(shí)寄存器的第7位為1,為12小時(shí)模式,位5顯示AM/PM,當(dāng)位5為1時(shí),表示PM,為0時(shí),表示AM。位7為0時(shí)是24小時(shí)模式,這時(shí)位5是小時(shí)的高位。秒寄存器的第7位,為時(shí)鐘暫停位(CH),該位為1時(shí),時(shí)鐘停止,DS1302處于低功耗狀態(tài),消耗電流為100nA,該位為0時(shí),時(shí)鐘啟動(dòng)??刂萍拇嫫鞯牡?位(WP)是寫保護(hù)位,該位為0才能寫時(shí)鐘與RAM寄存器操作,為1時(shí),阻止寫操作。上電后該位狀態(tài)不定,所以需要寫操作前應(yīng)該先清除該位。作者:夏路易電子工業(yè)出版所有讀寫位7位6位5位4位3位2位1位0范圍81H80HCH(暫停)秒(十位)秒(個(gè)位)00-5983H82H

分(十位)分(個(gè)位)00-5985H84H12/0小時(shí)(十位)/PM小時(shí)(十位)小時(shí)(個(gè)位)1-12/0-2387H86H00日(十位)日(個(gè)位)1-3189H88H000月(十位)月(個(gè)位)1-128BH8AH00000星期1-78DH8CH年(十位)年(個(gè)位)00-998FH8EHWP0000000—91H90HTCS3TCS2TCS1TCS0DS1DS0RS1RS0—作者:夏路易電子工業(yè)出版所有10.充電控制寄存器充電控制電路與充電控制寄存器之間的關(guān)系如下所示控制寄存器中的高4位必須是1010,才能閉合開關(guān)使能充電;位3和位2用于選擇二極管,DS1、DS0=01時(shí)選擇1個(gè)二極管,DS1、DS0=10時(shí)選擇2個(gè)二極管,若DS1、DS0值為11或是00時(shí),不能充電;位1和位0選擇串聯(lián)電阻,ROUT1、ROUT2=01時(shí)選擇2k,ROUT1、ROUT2=10時(shí)選擇4k,ROUT1、ROUT2=11時(shí)選擇8k,若ROUT1、ROUT2=00時(shí),不能充電。例如,選擇1個(gè)二極管,選擇4k電阻,則寄存器內(nèi)容應(yīng)該為10100110=a6H。作者:夏路易電子工業(yè)出版所有作者:夏路易電子工業(yè)出版所有8.4.2實(shí)際使用DS1302的例題

[例題8-10]檢查DS1302芯片是否工作。當(dāng)DS1302芯片與51單片機(jī)連接后,使用如下簡(jiǎn)單程序可以檢測(cè)DS1302是否工作。當(dāng)DS1302正常工作時(shí),可以在數(shù)碼管上看到秒值增加。DS1302與51單片機(jī)的接線如下所示。作者:夏路易電子工業(yè)出版所有源程序如下:#include<reg51.h>//該例從P0和P1輸出秒信號(hào)sbitiow=P3^5;//定義數(shù)據(jù)引腳sbitwce=P3^6;//定義復(fù)位/使能引腳sbitwclk=P3^7;//定義時(shí)鐘引腳sbita0=ACC^0;//累加器各位定義sbita1=ACC^1;sbita2=ACC^2;sbita3=ACC^3;sbita4=ACC^4;sbita5=ACC^5;sbita6=ACC^6;sbita7=ACC^7;voidwr_ds1302(unsignedchardd)//向DS1302寫入一個(gè)字節(jié)的函數(shù){ACC=dd;//將命令與數(shù)據(jù)送到累加器iow=a0;wclk=1;wclk=0;//將欲寫位放在iow引腳,然后產(chǎn)生時(shí)鐘上升沿,向DS1302寫入一個(gè)位a0iow=a1;wclk=1;wclk=0;iow=a2;wclk=1;wclk=0;iow=a3;wclk=1;wclk=0;iow=a4;wclk=1;wclk=0;iow=a5;wclk=1;wclk=0;iow=a6;wclk=1;wclk=0;iow=a7;wclk=1;wclk=0;}作者:夏路易電子工業(yè)出版所有unsignedcharrd_ds1302(void)//從DS1302讀出一個(gè)字節(jié)的函數(shù){iow=1;//使iow引腳輸出1,成為輸入引腳a0=iow;//從DS1302讀出一個(gè)位a0wclk=1;wclk=0;a1=iow;//使時(shí)鐘引腳產(chǎn)生下降沿,然后,將DS1302輸出的位賦予a1wclk=1;wclk=0;a2=iow;wclk=1;wclk=0;a3=iow;wclk=1;wclk=0;a4=iow;wclk=1;wclk=0;a5=iow;wclk=1;wclk=0;a6=iow;wclk=1;wclk=0;a7=iow;//讀出位a7return(ACC);//返回累加器中的內(nèi)容}unsignedcharread_clock(unsignedcharord)//從DS1302芯片中某地址讀出一個(gè)字節(jié)數(shù)據(jù){unsignedchardd=0;wclk=0;//初始化DS1302wce=0;wce=1;wr_ds1302(ord);//向DS1302寫入命令dd=rd_ds1302();//從DS1302讀出一個(gè)字節(jié)數(shù)據(jù)wce=0;//結(jié)束操作wclk=1;return(dd);}作者:夏路易電子工業(yè)出版所有voidwrite_clock(unsignedcharord,unsignedchardd)//向DS1302中某地址寫入一個(gè)字節(jié)的函數(shù){wclk=0;//初始化DS1302wce=0;wce=1;wr_ds1302(ord);//向DS1302寫入命令wr_ds1302(dd);//向DS1302寫入數(shù)據(jù)wce=0;//結(jié)束操作wclk=1;}unsignedcharcodetable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xc6,0xA1,0x86,0x8e};//數(shù)碼管譯碼數(shù)組作者:夏路易電子工業(yè)出版所有voidmain(void)//主函數(shù){unsignedcharaddress,d,temp1,xs1,xs2;address=0;d=0x00;write_clock(0x8e|address,d);//清除寫保護(hù)位WPaddress=0;d=0x7f;write_clock(0x80|address,d);//秒寄存器位7清0,啟動(dòng)DS

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論