欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
時(shí)鐘芯片DS1302匯編程序(51)-我思故我在-搜狐博客

2006-12-22 | 時(shí)鐘芯片DS1302匯編程序(51)

;1.每次上電,必須把秒寄存器高位(第7位)設置為0,時(shí)鐘才能走時(shí)。
;2.如果需要寫(xiě)入數據和時(shí)鐘日歷信息,必須把“寫(xiě)保護”寄存器設置成為0
;內存數據定義
BitCnt data 30h ; 數據位計數器
ByteCnt data 31h ; 數據字節計數器
Command data 32h ; 命令字節地址
RcvDat DATA 40H ; 接收數據緩沖區
XmtDat DATA 50H ; 發(fā)送數據緩沖區
;端口位定義
IO_DATA bit P1.3 ; 數據傳送總線(xiàn)
SCLK bit P1.2 ; 時(shí)鐘控制總線(xiàn)
RST bit P1.4 ; 復位總線(xiàn)

        ORG   0000H
        AJMP  START
        
;****************************  ;main program
       ORG    0030H
START: CLR     RST
       MOV  SP,#2AH

;------------------------------------初始化1302-------------------------
SET1302:
LCALL Write_Enable;寫(xiě)允許
LCALL Osc_Disable
LCALL Write_Multiplebyte;初始化1302,將我們要設定的數據寫(xiě)入
LCALL Read_Multiplebyte;將我們設定的數據讀出來(lái)
LCALL Osc_Enable
JMP START

;********************************************************************************************
;發(fā)送數據程序
;名稱(chēng):Send_Byte
;描述:發(fā)送ByteCnt 個(gè)字節給被控器DS1302
;命令字節地址在Command 中
;所發(fā)送數據的字節數在ByteCnt 中發(fā)送的數據在XmtDat 緩沖區中
;********************************************************************************************
Send_Byte:
CLR RST ;復位引腳為低電平所有數據傳送終止
NOP
CLR SCLK; 清時(shí)鐘總線(xiàn)
NOP
SETB RST ;復位引腳為高電平邏輯控制有效
NOP
MOV A,Command; 準備發(fā)送命令字節
MOV BitCnt,#08h ;傳送位數為8
S_Byte0:
RRC A ;將最低位傳送給進(jìn)位位C
MOV IO_DATA,C ;位傳送至數據總線(xiàn)
NOP
SETB SCLK ;時(shí)鐘上升沿發(fā)送數據有效
NOP
CLR SCLK ;清時(shí)鐘總線(xiàn)
DJNZ BitCnt,S_Byte0 ;位傳送未完畢則繼續
NOP
S_Byte1: ;準備發(fā)送數據
MOV A,@R0 ;傳送數據過(guò)程與傳送命令相同
MOV BitCnt,#08h
S_Byte2:
RRC A
MOV IO_DATA,C
NOP
SETB SCLK
NOP
CLR SCLK
DJNZ BitCnt,S_Byte2
INC R0 ;發(fā)送數據的內存地址加1
DJNZ ByteCnt,S_Byte1 ;字節傳送未完畢則繼續
NOP
CLR RST ;邏輯操作完畢清RST
RET
;***************************************************************************************
;接收數據程序;
;名稱(chēng):Receive_Byte
;描述:從被控器DS1302 接收ByteCnt 個(gè)字節數據
;命令字節地址在Command 中
;所接收數據的字節數在ByteCnt 中接收的數據在RcvDat 緩沖區中
;***********************************************************************************
Receive_Byte:
CLR RST ;復位引腳為低電平所有數據傳送終止
NOP
CLR SCLK ;清時(shí)鐘總線(xiàn)
NOP
SETB RST ;復位引腳為高電平邏輯控制有效
MOV A,Command ;準備發(fā)送命令字節
MOV BitCnt,#08h ;傳送位數為8
R_Byte0:
RRC A ;將最低位傳送給進(jìn)位位C
MOV IO_DATA,C ;位傳送至數據總線(xiàn)
NOP
SETB SCLK ;時(shí)鐘上升沿發(fā)送數據有效
NOP
CLR SCLK ;清時(shí)鐘總線(xiàn)
DJNZ BitCnt,R_Byte0 ;位傳送未完畢則繼續
NOP
R_Byte1: ;準備接收數據
CLR A ;清類(lèi)加器
CLR C ;清進(jìn)位位C
MOV BitCnt,#08h ;接收位數為8
R_Byte2:
NOP
MOV C,IO_DATA ;數據總線(xiàn)上的數據傳送給C
RRC A ;從最低位接收數據
SETB SCLK ;時(shí)鐘總線(xiàn)置高
NOP
CLR SCLK ;時(shí)鐘下降沿接收數據有效
DJNZ BitCnt,R_Byte2 ;位接收未完畢則繼續
MOV @R1,A ;接收到的完整數據字節放入接收內存緩沖區
INC R1 ;接收數據的內存地址加1
DJNZ ByteCnt,R_Byte1 ;字節接收未完畢則繼續
NOP
CLR RST ;邏輯操作完畢清RST
RET

;--寫(xiě)保護寄存器操作------------------------------------------
Write_Enable:
MOV Command,#8Eh ;命令字節為8E
MOV ByteCnt,#1 ;單字節傳送模式
MOV R0,#XmtDat ;數據地址覆給R0
MOV XmtDat,#00h ;數據內容為0 寫(xiě)入允許
ACALL Send_Byte ;調用寫(xiě)入數據子程序
RET

;當寫(xiě)保護寄存器的最高位為1 時(shí)禁止數據寫(xiě)入寄存器---------------
Write_Disable:
MOV Command,#8Eh ;命令字節為8E
MOV ByteCnt,#1 ;單字節傳送模式
MOV R0,#XmtDat ;數據地址覆給R0
MOV XmtDat,#80h ;數據內容為80h 禁止寫(xiě)入
ACALL Send_Byte ;調用寫(xiě)入數據子程序
RET ;返回調用本子程序處


;當把秒寄存器的第7 位時(shí)鐘停止位設置為0 時(shí)起動(dòng)時(shí)鐘開(kāi)始---------
Osc_Enable:
MOV Command,#80h ; 命令字節為80
MOV ByteCnt,#1 ; 單字節傳送模式
MOV R0,#XmtDat ;數據地址覆給R0
MOV XmtDat,#00h ;數據內容為0 振蕩器工作允許
ACALL Send_Byte ;調用寫(xiě)入數據子程序
RET ;返回調用本子程序處


;當把秒寄存器的第7 位時(shí)鐘停止位設置為1 時(shí)時(shí)鐘振蕩器停止HT1380 進(jìn)入低功耗方式---------------
Osc_Disable:
MOV Command,#80h ;命令字節為80
MOV ByteCnt,#1 ;單字節傳送模式
MOV R0,#XmtDat ;數據地址覆給R0
MOV XmtDat,#80h ;數據內容為80h 振蕩器停止
ACALL Send_Byte ;調用寫(xiě)入數據子程序
RET ;返回調用本子程序處


;寫(xiě)入00 年6 月21 日星期三13 時(shí)59 分59---------------------
Write_Multiplebyte:
MOV Command,#0BEh ;命令字節為BEh
MOV ByteCnt,#8 ;多字節寫(xiě)入模式此模塊為8 個(gè)
MOV R0,#XmtDat ;數據地址覆給R0
MOV XmtDat,#59h ;秒單元內容為59h
MOV XmtDat+1,#59h ;分單元內容為59h
MOV XmtDat+2,#13h ;時(shí)單元內容為13h
MOV XmtDat+3,#21h ;日期單元內容為21h
MOV XmtDat+4,#06h ;月單元內容為06h
MOV XmtDat+5,#03h ;星期單元內容為03h
MOV XmtDat+6,#0 ;年單元內容為00h
MOV XmtDat+7,#0 ;寫(xiě)保護單元內容為00h
ACALL Send_Byte ;調用寫(xiě)入數據子程序
RET ;返回調用本子程序處


;讀出寄存器0-7 的內容程序設置如下
Read_Multiplebyte:
MOV Command,#0BFh ;命令字節為BFh
MOV ByteCnt,#8 ;多字節讀出模式此模塊為8 個(gè)
MOV R1,#RcvDat ;數據地址覆給R1
ACALL Receive_Byte; 調用讀出數據子程序
RET; 返回調用本子程序處


;寫(xiě)入8 時(shí)12 小時(shí)模式程序設置如下
Write_Singlebyte:
MOV Command,#84h ; 命令字節為84h
MOV ByteCnt,#1 ; 單字節傳送模式
MOV R0,#XmtDat ;數據地址覆給R0
MOV XmtDat,#88h ;數據內容為88h
ACALL Send_Byte ;調用寫(xiě)入數據子程序
RET ;返回調用本子程序處


;=============================================================================================
END

http://www.0net.cn/singlechip/Print.asp?ArticleID=17512&Page=1這個(gè)網(wǎng)址上也有

下面還有一個(gè)程序也貼出對比一下:

CLK  EQU P1.4
IO   EQU P1.3
RST  EQU P1.2
          ORG 0000H
        AJMP START
        ORG 0003H
        AJMP SIN0
        ORG 000BH
        AJMP DS0
        ORG 0013H
        AJMP SIN1
        ORG 001BH
        AJMP DS1
        ORG 0100H
START:  MOV SP,#30H
        CLR P1
fuwei:  MOV 60H,#8FH   ;寫(xiě)保護控制命令寄存器地址 8FH讀,8EH寫(xiě)
        mov 61H,#00H   ; 打開(kāi)寫(xiě)保護準備寫(xiě)數據 00H寫(xiě), 80H讀
        mov r2,#02h
        setb rst
        LCALL Wrt
        MOV 60H,#70H   ;秒寄存器控制字地址
        MOV 61H,#00H   ;秒初始化為0,同時(shí)啟動(dòng)時(shí)鐘工作
        mov r2,#02h
        setb rst
        lcall WRT
        ;lcall delay
red:    MOV 60h,#10000001B     ;讀秒的命令字 10000001b
        mov r2,#01h
        SETB RST
        lcall wrt
        nop
        nop
        nop
        nop
        nop
        lcall red1
        CLR RST
        lcall chuli
        ljmp red
wrt:   MOV R0,#60H
CC:    MOV A,@R0
       MOV R3,#08H
SEND: RRC A
       MOV IO,C
       DJNZ R3,SEND
       INC R0
       DJNZ R2,CC
       RET
RED1:  CLR C
       MOV R3,#08H
CC1:   SETB CLK
       MOV C,IO
       RRC A
       SETB CLK
       DJNZ R3,CC1
       MOV 50H,A
       RET

CHULI: MOV A,50H
       ANL A,#0FH
       MOV 40H,A
       MOV A,50H
       ANL A,#01110000B
       MOV 41H,A
       MOV 42H,#0
       MOV 43H,#0
       LCALL DISP
       LCALL DELAY
       RET
DISP:  MOV R0,#40H
       MOV R3,#04H
DISP1: MOV A,@R0
       MOV DPTR,#DDSEG
       MOVC A,@A+DPTR
       MOV SBUF,A
WAIT:  JNB TI,WAIT
       CLR TI
       INC R0
       DJNZ R3,DISP1
       RET
DS0:   NOP
       RETI
DS1:   NOP
       RETI
SIN0:  NOP
       RETI
SIN1:  NOP
       RETI
delay:mov r4,#40
DE1 :mov r5,#20
DE2 :djnz r5,DE2
      djnz r4,DE1
      ret
DDSEG: DB 03H,09FH,25H,0DH,99H,49H,41H,1FH,00H,09H
       DB 11H,00H,63H,85H,61H,71H ;A-F
       DB 0FFH,0FDH  ;滅

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
時(shí)鐘芯片DS1302中文資料
iic
MSP430F1121與PCF8576驅動(dòng)程序
DS1302時(shí)鐘芯片讀寫(xiě)詳解
紅外遙控的C程序
使用HT單片機的調功溫控
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久