| 欢迎光临MCUWAY! 本站网名:单片机之路 永久域名:www.mcuway.com |
|
|
PIC系列单片机入门并不难(8) 下面我们学习两个新指令incf和decf,它们都是对某一个寄存器进行增1或减1操作,例句中假如我们要操作的寄存器是09H。 movlw 02H '常数2进入W movlw 0FFH '常数255进入W 如果你事先定义好了地址为09H的这个寄存器里存储的数字大小代表电视机节目频道的话,你会很喜欢这两个指令的。并且当节目频道到达最大值255或最小值0的时候无需担心,寄存器在0时减1会得255,255状态下增1会得0。 至于为什么会这样,学过环形计数器的人不会感到奇怪的。你要是没有学过计数器电路也不要紧,记住一个寄存器的最大存储数值是255=0FFH就可以了,加减法都会导致它“进位”。 当然控制音量时这个程序不能使用,因为它在0和255之间变化,音量忽大忽小怎们行。为解决这个问题,我们必须再学习两条指令incfsz和decfsz。 它们与上两个功能基本相同,不同的是:寄存器增1或减1操作以后,该指令会自动判定寄存器内的结果是否为零,如果不为零,继续正常执行该指令后面的语句.但如果结果为零的话,则程序会"跳一步".绕过紧挨着它下面的一条指令,继续执行更下面的语句,举例子说明。 假定我们操作的寄存器还是09H: OK: nop '继续运行 yanshi: movlw 5EH ' 常数5E进W 标号是延时 jixu: decfsz 0AH '0A寄存器内的数减1,如果结果为0跳步 本文由单片机之路(www.mcuway.com)整理推荐 |
|
|
|
|
|
|
|
学习单片机的必经之路——单片机之路,永久域名:www.mcuway.com |