首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Microchip汇编语言中设置表循环

如何在Microchip汇编语言中设置表循环
EN

Stack Overflow用户
提问于 2015-02-12 03:00:46
回答 1查看 615关注 0票数 1

我正在学习汇编语言在画板上显示七段。我需要让七段显示00到FF,和00-99(十进制)我卡在桌子上读。如何让表在达到F或9时自动再次读取。以下是我的代码:

代码语言:javascript
复制
Loop
    TBLRD*+     ; Read byte from table, increment pointer
    MOVF    TABLAT, w
    movwf   PORTE       ; Move W to PORTE
    call    Delay_333ms ; Call delay subroutine
    goto    Loop        ; Repeat loop

PatTbl
    dw   h'6'       
    dw   h'5b'      
    dw   h'159'     
    dw   h'66'      
    dw   h'6d'  
    dw   h'7d'
    dw   h'7'
    dw   h'7f'
    dw   h'6f'     
    dw   h'77'
    dw   h'7c'
    dw   h'39'
    dw   h'3f'
    dw   h'79'
    dw   h'71'  
    dw   h'3f'
EN

回答 1

Stack Overflow用户

发布于 2015-02-12 03:18:04

最简单的技术是掩码,它的工作原理是这样的:如果你的max.value是0x0f,并且它被存储在一个字节大小的变量中,比如说( max是0x0ff ),你创建一个等于max.value的掩码,并且在每次递增后使用这个掩码。

代码语言:javascript
复制
#define MASK 0b00001111

uint8_t value = 0;


while(1) {    
    value = (value++) & MASK;
}

“‘Value”将从0循环到0x0f。

在汇编示例中,您需要将指向表的指针和要更改的值分开存储。然后,您将递增该值,将其屏蔽,然后将其添加到表指针中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28462353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档