找回密码
 立即注册
查看: 42|回复: 2

哪位大神分享一下STC32G12K128单片机RTC中断的纯汇编示例

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:26
  • 最近打卡:2026-03-27 08:41:08
已绑定手机

15

主题

15

回帖

2667

积分

金牌会员

积分
2667
发表于 2026-3-17 21:08:14 | 显示全部楼层 |阅读模式
单片机上延时1秒用作时间秒数,直接多重循环延时误差大,几个计数器有其他用处,正好STC32G12K128有个RTC设备,能按秒产生中断。但官方数据手册中只有C语言的示例,不知道汇编是如何实现的。因为RTC相关寄存器的地址在0x7EFE60开始,用MOVX @DPTR,A方式访问,结果没有产生中断。哪位大神分享一下STC32G12K128单片机RTC中断的纯汇编示例,感谢。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:487
  • 最近打卡:2026-03-27 08:57:04
已绑定手机

104

主题

4202

回帖

9329

积分

荣誉版主

无情的代码机器

积分
9329
发表于 2026-3-17 23:21:14 | 显示全部楼层
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:26
  • 最近打卡:2026-03-27 08:41:08
已绑定手机

15

主题

15

回帖

2667

积分

金牌会员

积分
2667
发表于 2026-3-18 08:59:31 | 显示全部楼层
erci*** 发表于 2026-3-17 23:21
这里有汇编程序:
https://www.stcaimcu.com/data/do ... -DEMO-CODE-V9.6.zip

感谢!经过测试后,RTC并没有触发中断,初始化代码如下:

        ;启用扩展地址FXR
        ORL    P_SW2,#0x80

        ;初始RTC指定年月日时分秒
        MOV    WR4,#0x007E
        MOV    WR6,#0xFE68
        MOV    R0,#0
        MOV    @DR4,R0

        MOV    WR4,#0x007E
        MOV    WR6,#0xFE69
        MOV    R0,#1
        MOV    @DR4,R0

        MOV    WR4,#0x007E
        MOV    WR6,#0xFE6A
        MOV    R0,#1
        MOV    @DR4,R0

        MOV    WR4,#0x007E
        MOV    WR6,#0xFE6B
        MOV    R0,#0
        MOV    @DR4,R0

        MOV    WR4,#0x007E
        MOV    WR6,#0xFE6C
        MOV    R0,#0
        MOV    @DR4,R0

        MOV    WR4,#0x007E
        MOV    WR6,#0xFE6D
        MOV    R0,#0
        MOV    @DR4,R0

        MOV    WR4,#0x007E
        MOV    WR6,#0xFE6E
        MOV    R0,#0
        MOV    @DR4,R0

        ;启动振荡器
        MOV    WR4,#0x007E
        MOV    WR6,#0xFE04
        MOV    R0,#0xC0
        MOV    @DR4,R0
        MOV    R0,#0xFF
WAIT_RTC_STABLE:
        DJNZ,R0,WAIT_RTC_STABLE

        ;选择RTC时钟源
        MOV    WR4,#0x007E
        MOV    WR6,#0xFE61
        MOV    R0,#0x01
        MOV    @DR4,R0

        ;清除中断标志
        MOV    WR4,#0x007E
        MOV    WR6,#0xFE63
        MOV    R0,#0x00
        MOV    @DR4,R0

        ;启用RTC中断
        MOV    WR4,#0x007E
        MOV    WR6,#0xFE62
        MOV    R0,#8
        MOV    @DR4,R0

        ;启动RTC计时
        MOV    WR4,#0x007E
        MOV    WR6,#0xFE60
        MOV    R0,#0x01
        MOV    @DR4,R0

回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-3-27 11:22 , Processed in 0.107812 second(s), 58 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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