找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 871|回复: 9
打印 上一主题 下一主题
收起左侧

DS3231汇编程序

  [复制链接]
跳转到指定楼层
楼主
忘了程序在哪找的   程序可以正常使用



               ADDRESS EQU  2EH;

                   SCL BIT P3.6;                 DS3231 16脚
                                   SDA BIT P3.7;                 DS3231 15脚

                ;       30H ; 秒        #00H
                                ;       31H ; 分    #01H
                                ;       32H ; 时    #02H
                                ;       33H ; 周    #03H
                                ;       34H ; 日    #04H
                                ;       35H ; 月    #05H
                                ;       36H ; 年    #06H        
                                
                                
;写入时间日期 把30H到36H内的数据写入到DS3231                        
                          LCALL SHEZHI_3231;
                          
;读时间日期   把从DS3231读出的数据存到30H到36H
              LCALL READ_3231;        
                                
;=================设置3231功能=================================
;D0H写入,D1H读出
;==============================================================
//设置时间
SHEZHI_3231:
        MOV R6,#0D0H        ;写入数据识别码
        MOV R0,#30H         ;R0作为间接寻址         存放预设时间         
        MOV ADDRESS,#00H;开始写入地址 从秒开始
        MOV R5,#7
        LCALL  WRITE
        RET
//写入时间
WRITE:
        LCALL  START
        MOV A,R6
        LCALL  SENDA
        LCALL  ACK
        JC WRITE      
        MOV A,ADDRESS
        LCALL  SENDA
        LCALL  ACK
        MOV A,@R0              
        LCALL  SENDA
        LCALL  ACK
        LCALL  STOP
        INC R0
        INC ADDRESS
        DJNZ R5,WRITE ;减1后不为0转移,存储6位
        RET
;=================3231读程序==============================
READ_3231:
            MOV R0,#30H;                        ;R0开始存放地址
        MOV ADDRESS,#00H;        ;指向地址 秒
        MOV R5,#7;           读七位 读到年                    
SS:     MOV R2,#0D0H;        3231ID识别      
        MOV R4,#0D1H;        读3231
        LCALL READ          ;调用读存储器程序
        INC ADDRESS
        INC R0
        DJNZ R5,SS
//温度
/*       MOV R0,#38H                        ;R0开始存放地址
        MOV ADDRESS,#11H        ;指向温度地址  
        MOV R2,        #0D0H;3231ID识别      
        MOV R4,        #0D1H;读3231
        LCALL  READ                ;调用读存储器程序         */
        RET

;----------------------------------
READ:        LCALL START                ;启动总线
        MOV A,R2        ;发送芯片识别码
        LCALL SENDA
        LCALL ACK                ; 芯片应答
        JC READ                ;

        MOV A,ADDRESS
        LCALL SENDA
        LCALL ACK

READ_A:        LCALL START
        MOV A,R4
        LCALL SENDA
        LCALL ACK
        JC READ_A

RECE:   LCALL RECEIVE
        MOV @R0,A        ;读到数据存储到@R0指定地址
        LCALL ACK
        LCALL STOP
        RET
;-------总线启动程序---------
START:  SETB SCL
        SETB SDA
        NOP
        NOP
        CLR SDA
        NOP
        NOP
        CLR SCL
        RET
;-------总线停止程序---------
STOP:   CLR SDA
        NOP
        NOP
        SETB SCL
        NOP
        NOP
        SETB SDA
        RET
;-----------应答----------
ACK:    SETB SDA
        NOP
        NOP
        SETB SCL
        JB SDA,ACK_0
        CLR C
        SJMP ACK_1

ACK_0:  SETB C
ACK_1:  NOP
        NOP
        CLR SCL
        RET
;--------------发送8位数据---------
SENDA:  MOV B,#08H
SEND_1: RlC A
        MOV SDA,C
        SETB SCL
        NOP
        NOP
        CLR SCL
        DJNZ B,SEND_1
        RET
;--------------接收8位数据-----------
RECEIVE:    MOV B,#08H
            CLR A
            SETB SDA
RECEIVE_1:  SETB SCL
            NOP
            NOP
            MOV C,SDA
            RlC A
            CLR SCL
            DJNZ B,RECEIVE_1
            RET

评分

参与人数 2黑币 +55 收起 理由
新乡家电维修 + 5 赞一个!
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:654797 发表于 2023-10-23 19:15 | 只看该作者
对汇编是一巧不通
回复

使用道具 举报

板凳
ID:16255 发表于 2023-10-24 09:39 | 只看该作者
vscos 发表于 2023-10-23 19:15
对汇编是一巧不通

以前还会用汇编写一些程序,现在全忘记了。甚至拿以前写过的程序出来看,自己都搞不清了。
回复

使用道具 举报

地板
ID:1083996 发表于 2023-10-24 13:55 | 只看该作者
汇编其实才是王道,特别是单片机上,所谓通用性,工控领域啊
回复

使用道具 举报

5#
ID:255559 发表于 2023-10-25 09:25 | 只看该作者
谢谢分享的程序。
回复

使用道具 举报

6#
ID:126422 发表于 2023-11-1 12:03 | 只看该作者
学习汇编程序,芯片的计时精度不错。
回复

使用道具 举报

7#
ID:1083996 发表于 2023-11-1 13:14 | 只看该作者
一直想用高精度时钟芯片做个高精度时钟
回复

使用道具 举报

8#
ID:76044 发表于 2023-11-2 09:04 | 只看该作者
只是这芯片有些小贵
回复

使用道具 举报

9#
ID:433219 发表于 2023-11-3 07:56 | 只看该作者
这年代,季节快,许多花儿开-----再也提不起兴趣看asm了
回复

使用道具 举报

10#
ID:126422 发表于 2023-11-8 11:38 | 只看该作者
lxm41577 发表于 2023-11-2 09:04
只是这芯片有些小贵

前几年买的小板带24C02,才3元多,现在应该涨价了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表