日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
DS1302與PIC16F877接口程序
DS1302與PIC16F877接口程序
 更新時(shí)間:2009-7-22 16:39:49  點(diǎn)擊數(shù):0
【字體: 字體顏色
/script>

初學(xué)PIC,原來(lái)是搞51的.寫(xiě)了個(gè)程序,經(jīng)過(guò)幾天辛苦調(diào)試,終于在PIC16F877上運(yùn)行通過(guò),特此發(fā)布,算我初學(xué)PIC給大家見(jiàn)面禮,呵呵,希望能有用.
;================================================
;DS1302控制子程序
;=================================================
;程序包括:DS1302初始化,時(shí)間數(shù)據(jù)寫(xiě)入和讀取程序
;DS1302_init ;init ds1302
;Set_DS1302 ;set time to ds1302
;Get_DS1302 ;get time from ds1302
;=================================================

;============== 1302定義 ===========================================
#DEFINE T_IO PORTE,2 ;1302 I_O
#DEFINE T_CLK PORTE,1 ;1302時(shí)鐘
#DEFINE T_RST PORTE,0 ;1302使能位
#DEFINE DS1302_RX 20H ;保存接受的1個(gè)數(shù)據(jù)
#DEFINE DS1302_TX 28H ;準(zhǔn)備寫(xiě)入到DS1302的一個(gè)數(shù)據(jù)

counter equ xxxh
temp_cnt equ xxxh

;**************************************************
; DS1302初始化程序
;**************************************************
DS1302_init
;未寫(xiě)
return
;**********************************************************
;子程序名:Set_DS1302
;功 能:設(shè)置DS1302 初始時(shí)間,并啟動(dòng)計(jì)時(shí)。
;說(shuō) 明:
;調(diào) 用:Write_byte
;入口參數(shù):初始時(shí)間在:W_Second,W_Minute,W_Hour,W_Day,W_Month,W_Week.W_YearL(地址連續(xù))
;出口參數(shù):無(wú)
;消耗資源:counter,SecAddr(預(yù)定義)
;設(shè) 計(jì):zhengYanbo 日 期:2005.4.21
;修 改: 日 期:
;**********************************************************
Set_DS1302:
bcf T_RST
bcf T_CLK
bsf T_RST
movlw 8eh
movwf DS1302_TX ;數(shù)據(jù)發(fā)送寄存器
call Write_byte ;發(fā)送字節(jié)
movlw 00h ;WP=0
movwf DS1302_TX
call Write_byte
bsf T_CLK
bcf T_RST

movlw W_Second
movwf FSR
movlw counter,D'7'
movlw 80h
movwf SecAddr ;秒寫(xiě)地址
S13021:
bcf T_RST
bcf T_CLK
bsf T_RST
movf SecAddr,W
movwf DS1302_TX
call Write_byte ;寫(xiě)秒地址
movf INDF,W
movwf DS1302_TX
call Write_byte ;寫(xiě)秒數(shù)據(jù)
incf FSR
incf SecAddr
incf SecAddr
bsf T_CLK
bcf T_RST
decfsz counter,F
goto S13021

bcf T_RST
bcf T_CLK
bsf T_RST
movlw 8eh ;控制寄存器
movwf DS1302_TX
call Write_byte
movlw 80h ;控制WP=1,寫(xiě)保護(hù)
movwf DS1302_TX
call Write_byte
bsf T_CLK
bcf T_RST
return

;**********************************************************
;子程序名:Get_DS1302
;功 能:從DS1302 讀時(shí)間
;說(shuō) 明:
;調(diào) 用:Write_byte,Read_byte
;入口參數(shù):時(shí)間保存在:R_Second,R_Minute,R_Hour,R_Day,R_Month,R_Week.R_YearL
;出口參數(shù):無(wú)
;消耗資源: counter,SecAddr(預(yù)先定義)
;設(shè) 計(jì):zhengYanbo 日 期:2005.4.21
;修 改: 日 期:
;**********************************************************
Get_DS1302:
movlw R_Second ;準(zhǔn)備地址
movwf FSR
movlw D'7'
movwf counter
movlw 81h ;秒讀地址
movwf SecAddr
G13021
bcf T_RST
bcf T_CLK
bsf T_RST
movf SecAddr,W
movwf DS1302_TX
call Write_byte
call Read_byte
movf DS1302_RX,W
movwf INDF
incf FSR
incf SecAddr
incf SecAddr
bsf T_CLK
bcf T_RST
decfsz counter,F ;接受7個(gè)數(shù)據(jù)
goto G13021
return
;**********************************************************
;功 能:寫(xiě)1302一字節(jié) (內(nèi)部子程序)
;入口:數(shù)據(jù)預(yù)先在DS1302_TX中
;出口:無(wú)
;消耗資源:temp_cnt(預(yù)先定義)
;**********************************************************
Write_byte
movlw D'8'
movwf tmp_cnt
W_shift
rrf DS1302_TX,F ;帶C移位(低位在前)
btfsc STATUS,C
goto send_1
bcf T_IO
goto send_0
send_1
bsf T_IO
send_0
bsf T_CLK ;上升沿寫(xiě)
nop
bcf T_CLK
decfsz temp_cnt,F
goto W_shift
return
;**********************************************************
;功 能:讀1302一字節(jié) (內(nèi)部子程序)
;入口:無(wú)
;出口:數(shù)據(jù)保存在DS1302_RX中
;消耗資源:temp_cnt(預(yù)先定義)
;**********************************************************
Read_byte
bsf STATUS,RP0 ;bank1
bsf TRISE,2 ;設(shè)置串行數(shù)據(jù)口為輸入
bcf STATUS,RP0 ;bank0
movlw D'8'
movwf temp_cnt
R_shift
btfsc T_IO
goto get_1
bcf STATUS,C ;clr c
goto get_0
get_1
bsf STATUS,C
get_0
rrf DS1302_RX,F
bsf T_CLK
nop
bcf T_CLK ;下降沿讀
decfsz temp_cnt,F
goto R_shift

;reset output
bsf STATUS,RP0 ;bank1
bcf TRISE,2 ;設(shè)置T_IO為輸出
bcf STATUS,RP0 ;bank0
return
這個(gè)程序一定要,PIC默認(rèn)PORTE為A/D口,切記,切記!改為其他口時(shí)候請(qǐng)參考PIC的DATASHEET
;=============================================
; 初始化端口
;=============================================
Port_Init
bsf STATUS,RP0 ;bank1
bcf ADCON1,PCFG0
bsf ADCON1,PCFG1
bsf ADCON1,PCFG2
bcf ADCON1,PCFG3 ;PORTA and PORTE:digital I/O
bcf STATUS,RP0 ;bank0
return
  • 上一篇: PICC寫(xiě)的讀寫(xiě)24c0x的例子
  • 下一篇: 用PIC16F877的c語(yǔ)言寫(xiě)的一個(gè)時(shí)鬧鐘程序
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1