日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀] ;================================================;DS1302控制子程序;=================================================;程序包括:DS1302初始化,時間數(shù)據(jù)寫入和讀取程序;DS1302_init;initds1302 ;S

;================================================
;DS1302控制子程序
;=================================================
;程序包括:DS1302初始化,時間數(shù)據(jù)寫入和讀取程序
;DS1302_init;initds1302

;Set_DS1302;settimetods1302
;Get_DS1302;gettimefromds1302
;=================================================

;==============1302定義===========================================
#DEFINET_IOPORTE,2;1302I_O
#DEFINET_CLKPORTE,1;1302時鐘
#DEFINET_RSTPORTE,0;1302使能位
#DEFINEDS1302_RX20H;保存接受的1個數(shù)據(jù)
#DEFINEDS1302_TX28H;準備寫入到DS1302的一個數(shù)據(jù)

counterequxxxh
cntequxxxh

;**************************************************
;DS1302初始化程序
;**************************************************
DS1302_init
;未寫
return
;**********************************************************
;子程序名:Set_DS1302
;功能:設置DS1302初始時間,并啟動計時。
;說明:
;調用:Write_byte
;入口參數(shù):初始時間在:W_Second,W_Minute,W_Hour,W_Day,W_Month,W_Week.W_YearL(地址連續(xù))
;出口參數(shù):無
;消耗資源:counter,SecAddr(預定義)
;設計:zhengYanbo日期:2005.4.21
;修改:日期:
;**********************************************************
Set_DS1302:
bcfT_RST
bcfT_CLK
bsfT_RST
movlw8eh
movwfDS1302_TX;數(shù)據(jù)發(fā)送寄存器
callWrite_byte;發(fā)送字節(jié)
movlw00h;WP=0
movwfDS1302_TX
callWrite_byte
bsfT_CLK
bcfT_RST

movlwW_Second
movwfFSR
movlwcounter,D’7’
movlw80h
movwfSecAddr;秒寫地址
S13021:
bcfT_RST
bcfT_CLK
bsfT_RST
movfSecAddr,W
movwfDS1302_TX
callWrite_byte;寫秒地址
movfINDF,W
movwfDS1302_TX
callWrite_byte;寫秒數(shù)據(jù)
incfFSR
incfSecAddr
incfSecAddr
bsfT_CLK
bcfT_RST
decfszcounter,F
gotoS13021

bcfT_RST
bcfT_CLK
bsfT_RST
movlw8eh;控制寄存器
movwfDS1302_TX
callWrite_byte
movlw80h;控制WP=1,寫保護
movwfDS1302_TX
callWrite_byte
bsfT_CLK
bcfT_RST
return

;**********************************************************
;子程序名:Get_DS1302
;功能:從DS1302讀時間
;說明:
;調用:Write_byte,Read_byte
;入口參數(shù):時間保存在:R_Second,R_Minute,R_Hour,R_Day,R_Month,R_Week.R_YearL
;出口參數(shù):無
;消耗資源:counter,SecAddr(預先定義)
;設計:zhengYanbo日期:2005.4.21
;修改:日期:
;**********************************************************
Get_DS1302:
movlwR_Second;準備地址
movwfFSR
movlwD’7’
movwfcounter
movlw81h;秒讀地址
movwfSecAddr
G13021
bcfT_RST
bcfT_CLK
bsfT_RST
movfSecAddr,W
movwfDS1302_TX
callWrite_byte
callRead_byte
movfDS1302_RX,W
movwfINDF
incfFSR
incfSecAddr
incfSecAddr
bsfT_CLK
bcfT_RST
decfszcounter,F;接受7個數(shù)據(jù)
gotoG13021
return
;**********************************************************
;功能:寫1302一字節(jié)(內部子程序)
;入口:數(shù)據(jù)預先在DS1302_TX中
;出口:無
;消耗資源:cnt(預先定義)
;**********************************************************
Write_byte
movlwD’8’
movwftmp_cnt
W_shift
rrfDS1302_TX,F;帶C移位(低位在前)
btfscSTATUS,C
gotosend_1
bcfT_IO
gotosend_0
send_1
bsfT_IO
send_0
bsfT_CLK;上升沿寫
nop
bcfT_CLK
decfszcnt,F
gotoW_shift
return
;**********************************************************
;功能:讀1302一字節(jié)(內部子程序)
;入口:無
;出口:數(shù)據(jù)保存在DS1302_RX中
;消耗資源:cnt(預先定義)
;**********************************************************
Read_byte
bsfSTATUS,RP0;bank1
bsfTRISE,2;設置串行數(shù)據(jù)口為輸入
bcfSTATUS,RP0;bank0
movlwD’8’
movwfcnt
R_shift
btfscT_IO
gotoget_1
bcfSTATUS,C;clrc
gotoget_0
get_1
bsfSTATUS,C
get_0
rrfDS1302_RX,F
bsfT_CLK
nop
bcfT_CLK;下降沿讀
decfszcnt,F
gotoR_shift

;resetoutput
bsfSTATUS,RP0;bank1
bcfTRISE,2;設置T_IO為輸出
bcfSTATUS,RP0;bank0
return
這個程序一定要,PIC默認PORTE為A/D口,切記,切記!改為其他口時候請參考PIC的DATASHEET
;=============================================
;初始化端口
;=============================================
Port_Init
bsfSTATUS,RP0;bank1
bcfADCON1,PCFG0
bsfADCON1,PCFG1
bsfADCON1,PCFG2
bcfADCON1,PCFG3;PORTAandPORTE:digitalI/O
bcfSTATUS,RP0;bank0
return

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉