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

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

include <p16f877.inc>

  CBLOCK 20H
  SEC   ;秒
  MIN   ;分
  HOU   ;小時(shí)
  DATE  ;日期
  MON   ;月
 DAY   ;日
  YERR  ;年
  DDD   ;寫使能位
  TIME_TX ;1302發(fā)送寄存器
  TIME_RX ;1302接收寄存器
  COUNT1  ;
  COUNT2  ;
  DELAY1
  DELAY2
  ENDC

;=================================
;1302子程序說明
; DS1302INI  ;1302初始化,先禁止RST,設(shè)定充電方式
; SET_TIME  ;一次發(fā)送7個(gè)數(shù)據(jù)設(shè)定時(shí)間,包含寫使能寄存器,8個(gè)數(shù)據(jù)
; GET_TIME  ;一次接收7個(gè)數(shù)據(jù)顯示時(shí)間
; TIME_WRITE_1 ;一次寫入1302一個(gè)字節(jié)
; TIME_READ_1  ;一次接收一個(gè)字節(jié)數(shù)據(jù)

;============== 1302定義 ===================
#DEFINE I_O   PORTC,7  ;1302I_O
#DEFINE SCLK  PORTC,6  ;1302時(shí)鐘
#DEFINE RST   PORTA,0  ;1302使能位
#DEFINE RX_ADD  40H   ;保存接受的7個(gè)數(shù)據(jù)
#DEFINE TX_ADD  20H   ;開始保存7個(gè)要寫入的時(shí)間數(shù)據(jù)
BANK1 MACRO
  BSF   STATUS,RP0
  ENDM
BANK0 MACRO
  BCF   STATUS,RP0
  ENDM

;======================================
 ORG   00H
  NOP
  GOTO  MAIN
MAIN
  CALL   CLR_RAM  ;清除RAN
  CALL  PORT_INI   ;端口定義
  CALL  DS1302_INI
  CALL  SET_TIME  ; 一次寫入7個(gè)時(shí)間數(shù)據(jù)
  CALL  GET_TIME  ; 一次讀回7個(gè)時(shí)間數(shù)據(jù)
  GOTO  $


;寫入秒,可以寫任意的7個(gè)時(shí)間數(shù)據(jù),單字節(jié)
  MOVLW  B'10000000'
  MOVWF  TIME_TX
  BSF   RST
  CALL  CMD
  MOVLW  B'00100101'
  MOVWF  TIME_TX
  CALL  CMD
  BCF   RST

;讀秒,可以讀任意7個(gè)時(shí)間,單字節(jié)
  MOVLW  B'10000001'
  MOVWF  TIME_TX
  BSF   RST
  CALL  CMD
   CALL  TIME_READ_1
  BCF   RST   
 GOTO  $

;**************************************************
; DS1302_INI:子程序
; 作用:初始化1302,先禁止RST,允許寫使能
;**************************************************
DS1302_INI
  BCF   SCLK
  BCF   RST     ;先禁止
  MOVLW  B'10001110'  ;寫使能寄存器
  MOVWF  TIME_TX
  BSF   RST
  CALL  CMD
  MOVLW  B'0'    ;允許寫使能
  MOVWF  TIME_TX
  CALL  CMD  ;發(fā)送一個(gè)字節(jié)的數(shù)據(jù)
  BCF   RST
 
;設(shè)定充電方式  沒有設(shè)定
  RETURN 
 
;**************************************************
; SET_TIME    
; 作用:一次輸入7個(gè)數(shù)據(jù)來一次性的設(shè)定時(shí)間,同時(shí)使能寫寄存器
; 突發(fā)模式寫入,必須寫入8個(gè)數(shù)據(jù),不是7個(gè)
; INPUT:要設(shè)定的8個(gè)數(shù)據(jù)已經(jīng)寫入到TIME_TX_ADD開始的8個(gè)字節(jié)里面
;**************************************************
SET_TIME  
    MOVLW  B'10111110' ;標(biāo)志位
  MOVWF  TIME_TX
  BSF   RST 
  CALL  CMD
 ;TIME_WRITE_8    ;發(fā)送8個(gè)數(shù)據(jù)
  MOVLW  TX_ADD  ;//發(fā)送數(shù)據(jù)的起始地址
  MOVWF  FSR
  MOVLW  D'8'
  MOVWF  COUNT2
TW1
  MOVF  INDF,W
  MOVWF  TIME_TX
  CALL  CMD
  INCF  FSR,F
  DECFSZ  COUNT2,F
  GOTO  TW1
  BCF   RST
  RETURN

;***********************************************
; GET_TIME 
; 作用:一次接受7個(gè)字節(jié)的時(shí)間數(shù)據(jù),突發(fā)模式讀取
; INPUT:NONE
; OUTPUT:把7個(gè)時(shí)間數(shù)據(jù)保存在TIME_RX_ADD開始的7個(gè)寄存器里面
;***********************************************
GET_TIME   
     MOVLW  B'10111111'
  MOVWF  TIME_TX
  BSF   RST
  CALL  CMD
 ;TIME_READ_7     ;接收7個(gè)數(shù)據(jù)
  MOVLW  RX_ADD   ;保存數(shù)據(jù)的起始地址
  MOVWF  FSR
  MOVLW  D'7'
  MOVWF  COUNT2
TR2
  CALL  TIME_READ_1
  MOVF  TIME_RX,W
  MOVWF  INDF
  INCF  FSR,F
  DECFSZ  COUNT2,F
  GOTO  TR2
  BCF   RST
  RETURN

;************************************************
; TIME_WRITE_1
; 作用:一次發(fā)送一個(gè)字節(jié)的數(shù)據(jù),用于發(fā)送1302的
; 控制字或者發(fā)送一個(gè)數(shù)據(jù)
; INPUT: TIME_TX
;************************************************
CMD
  MOVLW D'8'
  MOVWF COUNT1
TLOP
  BCF   I_O    ;初始值是低電平
  BCF   SCLK
  BTFSC  TIME_TX,0
  BSF   I_O
  RRF   TIME_TX,F
  BSF   SCLK   ;高電平發(fā)送數(shù)據(jù)
  DECFSZ  COUNT1,F
  GOTO  TLOP
  BCF   SCLK   ;恢復(fù)
  RETURN

;************************************************
; TIME_READ_1
; 作用:讀取1302一個(gè)字節(jié)的數(shù)據(jù)
; INPUT: NONE
; OUTPUT:接收數(shù)據(jù)保存在TIME_RX里面
; 原理:在SCLK下降沿接收數(shù)據(jù),低字節(jié)在前,根據(jù)I_O的
;    的電平的高低,采取帶進(jìn)位和不帶進(jìn)位右移.
;***********************************************
TIME_READ_1
  BANK1
  BSF   TRISC,7  ;I_O  IS INPUT
  BANK0
  MOVLW  D'8'
  MOVWF  COUNT1   ;讀取8個(gè)字節(jié)
TR1
  BCF   SCLK   ;下降沿讀取
  BCF   STATUS,C
  BTFSC  I_O
  BSF   STATUS,C
  RRF   TIME_RX,F
  BSF   SCLK   ;恢復(fù)高電平
  DECFSZ  COUNT1,F
  GOTO  TR1
  BANK1
  BCF   TRISC,7  ;OUTPUT
  BANK0
  BCF   SCLK   ;恢復(fù)
  RETURN

;======================================
PORT_INI
  BANK1
  MOVLW  B'00000000'
  MOVWF  TRISC
  MOVLW  B'0'
  MOVWF  TRISB
  MOVLW  B'00000111'
  MOVWF  ADCON1
  MOVLW  B'00000000'
  MOVWF  TRISA
  BANK0
  MOVLW  18H
  MOVWF  20H
  MOVLW  19H
  MOVWF  21H
  MOVLW  05H
  MOVWF  22H
  MOVLW  13H
  MOVWF  23H
  MOVLW  14H
  MOVWF  24H
  MOVLW  15H
  MOVWF  25H
  MOVLW  16H
  MOVWF  26H
  RETURN

;==========================
CLR_RAM
   MOVLW  20H
   MOVWF  FSR
LOOP
   CLRF  INDF
   INCF  FSR,F
   BTFSS  FSR,7
   GOTO  LOOP  ;清除32個(gè)
   RETURN
;==========================
  END

  • 上一篇: 用PIC12C508制作太陽能熱水自動(dòng)控制器
  • 下一篇: 電動(dòng)車報(bào)警音參考(pic)
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎ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ī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(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ì)
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

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