ds1302匯編語言的驅(qū)動(dòng)程序_第1頁
ds1302匯編語言的驅(qū)動(dòng)程序_第2頁
ds1302匯編語言的驅(qū)動(dòng)程序_第3頁
ds1302匯編語言的驅(qū)動(dòng)程序_第4頁
ds1302匯編語言的驅(qū)動(dòng)程序_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、.第一個(gè)匯編語言程序DS1302的驅(qū)動(dòng)程序時(shí)鐘芯片DS1302 的程序匯編;時(shí)鐘芯片DS1302 的程序匯編;*; 模塊名稱:DS1302.a51; 功 能:實(shí)時(shí)時(shí)鐘模塊 時(shí)鐘芯片型號(hào):DS1302; 說 明:修改版; 程序設(shè)計(jì):;*/T_CLK Bit P3.2 ;實(shí)時(shí)時(shí)鐘時(shí)鐘線引腳T_IO Bit P3.3 ;實(shí)時(shí)時(shí)鐘數(shù)據(jù)線引腳T_RST Bit P3.4 ;實(shí)時(shí)時(shí)鐘復(fù)位線引腳;*SECOND EQU 50H ;秒存放器MINUTE EQU 51H ;分存放器HOUR EQU 52H ;時(shí)存放器DAY EQU 53H ;號(hào)存放器MONTH EQU 54H ;月存放器WEEK EQU 55H

2、 ;星期存放器YEAR EQU 56H ;年存放器 ORG 0000H SJMP START ORG 0040H ;*;功 能:給秒 分 時(shí) 日 月 星期 年賦初值;*START: MOV SECOND,#00H MOV MINUTE,#06H MOV HOUR,#17H MOV DAY,#00H MOV MONTH,#00H MOV WEEK,#00H MOV YEAR,#00H LCALL SET1302 LCALL GET1302 LCALL DISPLAYMAIN: MOV R5,#25 MOV TMOD,#01H MOV TH0,#63H ;置定時(shí)器初值定時(shí)40ms MOV TL0,

3、#0C0H SETB TR0 ;啟動(dòng)定時(shí)器0LP1: JBC TF0,LP2 ;查詢計(jì)數(shù)溢出 SJMP LP1 ;未到40 ms繼續(xù)計(jì)數(shù)LP2: MOV TH0,#63H ;重新置定時(shí)器初值 MOV TL0,#0C0H LCALL DISPLAY ;顯示 DJNZ R5,LP1 ;未到1 S繼續(xù)循環(huán) LCALL GET1302 ;每過1s從DS1302讀取一次時(shí)間 MOV R5,#25 SJMP LP1DISPLAY: MOV R3,SECOND LCALL CHAG MOV P2,#0FFH MOV P0,R2 ;段碼 SETB P2.0 ;位碼 NOP CLR P2.0 LCALL DEL

4、AY MOV P2,#0FFH MOV P0,R3 SETB P2.1 NOP CLR P2.1 LCALL DELAY MOV R3,MINUTE LCALL CHAG MOV P2,#0FFH MOV P0,R2 ;段碼 SETB P2.2 ;位碼 NOP CLR P2.2 LCALL DELAY MOV P2,#0FFH MOV P0,R3 SETB P2.3 NOP CLR P2.3 LCALL DELAY MOV R3,HOUR LCALL CHAG MOV P2,#0FFH MOV P0,R2 ;段碼 SETB P2.4 ;位碼 NOP CLR P2.4 LCALL DELAY M

5、OV P2,#0FFH MOV P0,R3 SETB P2.5 NOP CLR P2.5 LCALL DELAY RETDELAY: MOV R7,#50 D1: MOV R6,#10 D2: DJNZ R6,$ DJNZ R7,D1 RET CHAG: PUSH ACC ;低字節(jié)放入R2,高字節(jié)放入R3 MOV A,R3 ANL A,#0FH MOV R2,A MOV A,R3 SWAP A ANL A,#0FH MOV R3,A MOV DPTR,#DATATAB MOV A,R2 MOVC A,A+DPTR MOV R2,A MOV A,R3 MOVC A,A+DPTR MOV R3,A

6、 POP ACC RETDATATAB: DB 0B7H,90H,3DH,0B9H,9AH,0ABH,0AFH,0B0H,0BFH,0BBH;*;子程序名:Set1302;功 能:設(shè)置DS1302 初始時(shí)間,并啟動(dòng)計(jì)時(shí)。;說 明:;調(diào) 用:RTInputByte;入口參數(shù):初始時(shí)間在:Second,Minute,Hour,Day,Month,Week.YearL地址連續(xù);出口參數(shù):無;影響資源:A B R0 R1 R4 R7;設(shè) 計(jì):Reuben 日 期:2020-04-17;修 改: 日 期:;*SET1302: CLR T_RST CLR T_CLK SETB T_RST MOV B, #

7、8EH ;控制存放器 LCALL RTInputByte MOV B, #00H ;寫操作前WP=0 LCALL RTInputByte SETB T_CLK CLR T_RST MOV R0, #Second; MOV R7, #7 ;秒 分 時(shí) 日 月 星期 年 MOV R1, #80H ;秒寫地址S13021: CLR T_RST CLR T_CLK SETB T_RST MOV B, R1 ;寫秒 分 時(shí) 日 月 星期 年 地址 LCALL RTInputByte MOV A, R0 ;寫秒數(shù)據(jù) MOV B, A LCALL RTInputByte INC R0 INC R1 INC

8、R1 SETB T_CLK CLR T_RST DJNZ R7, S13021 CLR T_RST CLR T_CLK SETB T_RST MOV B, #8EH ;控制存放器 LCALL RTInputByte MOV B, #80H ;控制,WP=1,寫保護(hù) LCALL RTInputByte SETB T_CLK CLR T_RST RET;*;子程序名:Get1302;功 能:從DS1302 讀時(shí)間;說 明:;調(diào) 用:RTInputByte,RTOutputByte;入口參數(shù):時(shí)間保存在:Second,Minute,Hour,Day,Month,Week.YearL;出口參數(shù):無;影

9、響資源:A B R0 R1 R4 R7;設(shè) 計(jì):Reuben 日 期:2020-04-17;修 改: 日 期:;*GET1302: MOV R0, #SECOND; MOV R7, #7 MOV R1, #81H ;秒地址G13021: CLR T_RST CLR T_CLK SETB T_RST MOV B, R1 ;秒 分 時(shí) 日 月 星期 年 地址 LCALL RTInputByte LCALL RTOutputByte MOV R0, A ;秒 INC R0 INC R1 INC R1 SETB T_CLK CLR T_RST DJNZ R7, G13021 RET;*;功 能:寫13

10、02一字節(jié) 內(nèi)部子程序;*RTInputByte: MOV R4, #8 Inbit1: MOV A, B RRC A MOV B, A MOV T_IO, C SETB T_CLK CLR T_CLK DJNZ R4, Inbit1 RET;*;功 能:讀1302一字節(jié) 內(nèi)部子程序;*RTOutputByte: MOV R4, #8 Outbit1: MOV C, T_IO RRC A SETB T_CLK CLR T_CLK DJNZ R4, Outbit1 RET END第二個(gè)ds1302驅(qū)動(dòng)程序;* DS1302 端口位定義 * IO_DATA BIT P1.1 ; 數(shù)據(jù)傳送總線 SC

11、LK BIT P1.0 ; 時(shí)鐘控制總線 RST BIT P1.2 ; 復(fù)位總線;-;DS1302 初始化子程序; R0=數(shù)據(jù) R1=地址;-PROSET: CLR RST ;DS1302復(fù)位 CLR SCLK NOP NOP SETB RST MOV R1,#90H ;寫充電存放器 MOV R0,#0ABH LCALL WRITE RET;=;寫 DS1302 子程序;=WRITE: CLR SCLK NOP NOP SETB RST NOP MOV A,R1 MOV R2,#08HWRI_01: RRC A ;傳輸?shù)刂返紻S1302 NOP NOP CLR SCLK NOP NOP MOV

12、 IO_DATA,C NOP NOP SETB SCLK NOP NOP DJNZ R2,WRI_01 CLR SCLK NOP NOP MOV A,R0 MOV R2,#08HWRI_02: RRC A ;傳輸數(shù)據(jù)到DS1302 NOP CLR SCLK NOP NOP MOV IO_DATA,C NOP NOP SETB SCLK NOP NOP DJNZ R2,WRI_02 CLR SCLK NOP NOP CLR RST NOP NOP RET;=;讀 DS1302 子程序;=READ: CLR SCLK NOP NOP SETB RST NOP NOP MOV A,R1 MOV R2

13、,#08HREAD_01: RRC A NOP ;先傳輸?shù)刂返紻S1302 MOV IO_DATA,C NOP NOP SETB SCLK NOP NOP CLR SCLK NOP NOP DJNZ R2,READ_01 NOP NOP SETB IO_DATA CLR A CLR C MOV R2,#08HREAD_02: CLR SCLK NOP NOP MOV C,IO_DATA NOP NOP RRC A ;再從DS1302接收數(shù)據(jù) NOP NOP SETB SCLK NOP NOP DJNZ R2,READ_02 MOV R0,A CLR RST RET;=;讀時(shí)間、日期數(shù)據(jù)子程序;存放單元 40H - 46H;=GET_TIME: MOV R1,#81H ;讀秒 LCALL READ MOV 40H,R0 MOV R1,#83H ;讀分 LCALL READ MO

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論