迪文科技论坛

 找回密码
 立即注册
搜索
查看: 2989|回复: 4

【分享】通过一个简单的例子理解定时器

[复制链接]

1

主题

1

回帖

70

积分

注册会员

Rank: 2

积分
70
QQ
发表于 2020-4-19 11:47:14 | 显示全部楼层 |阅读模式
一个简单的例子 ,每隔一秒寄存器加1,因为好多地方需要做计时或者延时操作,所以先理解一下计时器的运行比较有用

=================================================================
ORG 1000H
GOTO MAIN                ;代码的第一条指令必须是GOTO指令跳转到初始化或者主程序
NOP                                ;中断定时器0服务程序入口,必须用GOTO跳转
NOP                                ;中断定时器1服务程序入口,NOP指令表示未使用
NOP                                ;中断定时器2服务程序入口
ORG 1080H

MAIN:
        CONFIG 0x01,0x02,0x01        ;初始化计时器
        LDWR   R100,0                        ;初始化寄存器

        START:
                CALL   COUNTER                ;开始计时,每隔1秒1000H加1
                GOTO   START
               
COUNTER:
        ;从计时器取数放到R20
        LDWR   R20,0                                
        MOVDR  37,R20,2
        
        ;当R20>=1000时继续,否则什么也不做
        LDWR   R22,1000                                
        JS     R20,R22,COUNTER_RET        
        
        ;清空寄存器37
        LDWR   R20,0                                
        MOVRD  R20,37,2        
        
        ;DGUS的1000H寄存器数值加1
        INC    R100,1,1                                
        LDWR   R0,0x1100
        MOVXR  R100,0,2
        CALL   COUNTER_RET

COUNTER_RET:
        RET

回复

使用道具 举报

45

主题

254

回帖

3414

积分

论坛元老

Rank: 8Rank: 8

积分
3414
发表于 2020-4-20 07:41:06 | 显示全部楼层
很棒!
回复

使用道具 举报

7

主题

18

回帖

1141

积分

金牌会员

Rank: 6Rank: 6

积分
1141
发表于 2020-5-15 09:51:50 | 显示全部楼层
懂了,感谢楼主分享!
回复

使用道具 举报

33

主题

27

回帖

328

积分

中级会员

Rank: 3Rank: 3

积分
328
发表于 2020-8-6 17:29:12 | 显示全部楼层
这一段注释和代码对不上呀?是不是写错了,才开始学汇编

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0

主题

52

回帖

422

积分

中级会员

Rank: 3Rank: 3

积分
422
发表于 2020-8-6 19:53:43 | 显示全部楼层
fjhcpu 发表于 2020-8-6 17:29
这一段注释和代码对不上呀?是不是写错了,才开始学汇编

楼主,您好,这个注释是告诉您R100里面的值+1以后写到1100的变量地址里面去。

DGUS的1100H寄存器值加1。
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-11-23 09:35 , Processed in 0.060657 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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