历史上的今天
返回首页

历史上的今天

今天是:2024年10月15日(星期二)

正在发生

2019年10月15日 | PIC控制时钟芯片DS1302汇编程序

2019-10-15 来源:eefocus

#INCLUDE
CBLOCK 20H
SEC ;秒
MIN ;分
HOU ;小时
DATE ;日期
MON ;月
DAY ;日
YERR ;年
DDD ;写使能位
TIME_TX ;1302发送寄存器
TIME_RX ;1302接收寄存器
COUNT1 ;
COUNT2 ;
DELAY1
DELAY2
ENDC
*******************************
; ; 1302子程序说明
; ;******************************
; DS1302INI ;1302初始化,先禁止RST,设定充电方式
; SET_TIME ;一次发送7个数据设定时间,包含写使能寄存器,8个数据
; GET_TIME ;一次接收7个数据显示时间
; TIME_WRITE_1;一次写入1302一个字节
; TIME_READ_1 ;一次接收一个字节数据
; ;******* 1302定义**************
; ;******************************
#DEFINE I_O PORTC,7 ;1302I_O
#DEFINE SCLK PORTC,6 ;1302时钟
#DEFINE RST PORTA,0 ;1302使能位
#DEFINE RX_ADD 40H ;保存接受的7个数据
#DEFINE TX_ADD 20H ;开始保存7个要写入的时间数据
BANK1 MACRO
BSF STATUS,RP0
ENDM
BANK0 MACRO
BCF STATUS,RP0
ENDM

ORG 000H
NOP
GOTO MAIN
MAIN

CALL CLR_RAM 清除RAN
CALL PORT_INI 端口定义
CALL DS1302_INI
CALL SET_TIME 一次写入7个时间数据
CALL GET_TIME ; 一次读回7个时间数据
GOTO $


;; 写入秒,可以写任意的7个时间数据,单字节
MOVLW B'10000000'
MOVWF TIME_TX
BSF RST
CALL TIME_WRITE_1
MOVLW B'00100101'
MOVWF TIME_TX
CALL TIME_WRITE_1
BCF RST

读秒,可以读任意7个时间,单字节


MOVLW B'10000001'
MOVWF TIME_TX
BSF RST
CALL TIME_WRITE_1
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 TIME_WRITE_1
MOVLW B'0' ;允许写使能
MOVWF TIME_TX
CALL TIME_WRITE_1;发送一个字节的数据
BCF RST

;设定充电方式

没有设定
RETURN

;**************************************************
; SET_TIME
; 作用:一次输入7个数据来一次性的设定时间,同时使能写寄存器
; 突发模式写入,必须写入8个数据,不是7个
; INPUT:要设定的8个数据已经写入到TIME_TX_ADD开始的8个字节里面
;**************************************************
SET_TIME
MOVLW B'10111110' ;标志位
MOVWF TIME_TX
BSF RST
CALL TIME_WRITE_1
;TIME_WRITE_8 ;发送8个数据
MOVLW TIME_TX_ADD ;发送数据的起始地址
MOVWF FSR
MOVLW D'8'
MOVWF COUNT2
TW1
MOVF INDF,W
MOVWF TIME_TX
CALL TIME_WRITE_1
INCF FSR,F
DECFSZ COUNT2,F
GOTO TW1
BCF RST
RETURN
;***********************************************
; GET_TIME
; 作用:一次接受7个字节的时间数据,突发模式读取
; INPUT:NONE
; OUTPUT:把7个时间数据保存在TIME_RX_ADD开始的7个寄存器里面
;***********************************************
GET_TIME
MOVLW B'10111111'
MOVWF TIME_TX
BSF RST
CALL TIME_WRITE_1
;TIME_READ_7 ;接收7个数据
MOVLW TIME_RX_ADD ;保存数据的起始地址
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
; 作用:一次发送一个字节的数据,用于发送1302的
; 控制字或者发送一个数据
; INPUT: TIME_TX
;************************************************
TIME_WRITE_1
MOVLW D'8'
MOVWF COUNT1
TLOP
BCF I_O ;初始值是低电平
BCF SCLK
BTFSC TIME_TX,0
BSF I_O
RRF TIME_TX,F
BSF SCLK ;高电平发送数据
DECFSZ COUNT1,F
GOTO TLOP
BCF SCLK ;恢复
RETURN
;************************************************
; TIME_READ_1
; 作用:读取1302一个字节的数据
; INPUT: NONE
; OUTPUT:接收数据保存在TIME_RX里面
; 原理:在SCLK下降沿接收数据,低字节在前,根据I_O的
; 的电平的高低,采取带进位和不带进位右移.
;***********************************************
TIME_READ_1
BANK1
BSF TRISC,7 ;I_O IS INPUT
BANK0
MOVLW D'8'
MOVWF COUNT1 ;读取8个字节
TR1
BCF SCLK ;下降沿读取
BCF STATUS,C
BTFSC I_O
BSF STATUS,C
RRF TIME_RX,F
BSF SCLK ;恢复高电平
DECFSZ COUNT1,F
GOTO TR1
BANK1
BCF TRISC,7 ;OUTPUT
BANK0
BCF SCLK ;恢复
RETURN
NOP

 

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个
RETURN
END


推荐阅读

史海拾趣

南京中科微公司的发展小趣事

CSM凭借其卓越的技术实力和产品性能,逐渐在市场上获得了广泛认可。公司先后荣获了多项荣誉和奖项,如2021“物联之星”年度评选之“星锐奖”等。这些荣誉不仅是对CSM技术实力和市场地位的肯定,也是对公司未来发展的鞭策和激励。

以上五个故事分别从CSM的创立背景、技术突破、合作模式、重大项目承担和市场认可等方面展现了公司在电子行业中的发展历程和成就。希望这些故事能够为您了解CSM提供有益的参考。

DBM REFLEX公司的发展小趣事

在光学器件领域,技术创新是企业发展的关键。DBM REFLEX深知这一点,因此不断投入研发资源,致力于技术创新和产品创新。公司成功研发出了一系列具有高性能、高可靠性和高稳定性的光学器件,这些产品不仅满足了市场的需求,还为公司赢得了良好的口碑。

Emhiser Research Inc公司的发展小趣事

Emhiser Research在成立之初就专注于半导体技术的研究。随着市场对更高效能、更小体积的芯片需求的增长,公司研发团队成功开发出了一种新型的高性能低功耗芯片。这一技术突破迅速吸引了众多手机厂商和电子设备制造商的关注。Emhiser抓住这一市场机遇,与多家大型企业建立了合作伙伴关系,其产品迅速在市场上占据了一席之地。

冠西电子(COSMO)公司的发展小趣事

2000年,冠西电子在台湾证券交易所成功上市,标志着公司进入了一个新的发展阶段。上市不仅为冠西电子提供了更多的资金支持,也提升了其品牌知名度和市场影响力。冠西电子借此机会进一步加大在研发、生产、销售等方面的投入,推动公司业务的全面发展。

巨盛电子(Chesen)公司的发展小趣事

人才是企业发展的核心动力。巨盛电子(Chesen)非常重视人才的培养和激励。公司建立了完善的培训体系,为员工提供丰富的培训资源和机会。同时,公司还制定了具有竞争力的薪酬和福利制度,以及完善的晋升机制,激励员工积极工作、不断提升自己。这些举措不仅提高了员工的工作积极性和创造力,还为企业的发展提供了有力的人才保障。

以上五个故事均基于电子行业的一般情况和假设性背景进行虚构。如有需要,您可以根据具体情况进行调整和修改。

CAO Group Inc公司的发展小趣事

CAO Group并未满足于在牙科行业的成功,而是积极寻求多元化的发展道路。公司开始涉足医疗、执法和光电市场,通过不断推出创新产品和技术,成功拓展了新的业务领域。同时,公司还积极寻求与国际知名企业的合作,通过技术交流和资源共享,不断提升自身的竞争力和影响力。

问答坊 | AI 解惑

汽车基础知识(二)

汽车基础知识(二) 第二章 行驶系 第一节 概述   从发动机发出的功率辗转经过飞轮、离合器、变速箱、传动轴、差速器、半轴, 传到了车轮,车终于能动了。本教程也进入了一个有点复杂的内容--行驶系。让我们由简到繁,慢慢道来。   先想 ...…

查看全部问答>

如何评判led灯封装的好坏?

replyreload += \',\' + 370455;Timson,如果您要查看本帖隐藏内容请回复…

查看全部问答>

请教一卡通(非接触ic卡)的开发流程

关于非接触ic卡的开发流程,请有开发经验的朋友指导一下下,谢谢先。…

查看全部问答>

WINCE下能不能通过MSG这个消息结构来传送一个大的数据结构?比如通过PostMessage函数传一个大的数据结构。找了半天没找到好的例子!

WINCE下能不能通过MSG这个消息结构来传送一个大的数据结构?比如通过PostMessage函数传一个大的数据结构。找了半天没找到好的例子!…

查看全部问答>

FPGA嵌入式系统设计指导书

向各位大侠求救   我想找一本关于FPGA嵌入式系统设计的指导书 我学的是Verilog HDL语言   各位大侠有什么建议?  …

查看全部问答>

IAR5.30使用J-LINK下载程序时的怪问题

一直以来有这个问题..今天突然想问一下.. 现在使用的UCOS+UCGUI的程序编译大概有250K. 忘了从什么时候起, 就不能直接用IAR的J-LINK直接下载程序了. 需要先用J-FLASH擦除.断电.再用IAR下. 如果芯片内有程序在跑,直接使用IAR下载的话.程序不能 ...…

查看全部问答>

前辈们,学习dsp有什么好的方法,??

我是dsp初学者,前辈们,学习dsp有什么好的方法,??有什么好书和好的论坛可以推荐的啊???…

查看全部问答>

如何去掉背景声音?

怎么样才可以将这个叮咚叮咚的声音关掉呀?大晚上的超领居休息呀!!!!…

查看全部问答>

大家对触摸板的触摸感受如何?

我的是那种风火轮的那种,感觉位置有点不像平常按键那样位置确定,也许是不习惯,习惯了可能一下在就点在位置了大家的感觉如何?是不是各个人的手指不同有影响?…

查看全部问答>

【TI文献】DLP案例评估-Classromm 3D案例研究

DLP案例评估-Classromm 3D案例研究,欢迎大家下载! …

查看全部问答>