【问题标题】:Reading ports from pic18f, then do something从 pic18f 读取端口,然后做一些事情
【发布时间】:2014-10-08 13:57:11
【问题描述】:

如何从PORTARA0RA1)读取前 2 位,然后使用它们? 我有一个连接到它们每个的开关,当RA0RA1 都是1 时,我想在RB1 上输出一个1

我已将PORTA 配置为输入,PORTB 配置为输出

MOVLW 0xF 
MOVWF TRISA,0 ;PORTA IN

然后在一个循环中,我不断读取PORTA 的值,我想检查两个最低位是否在1。为此,我在将 PORTA 移动到 WREG 后将值 PORTA0x03 进行比较。

MOVF PORTA, 0, 0 ;W<--PORTA
CPFSLT 0x20, 0
MOVWF PORTB,0 ;PORTB<--W

在地址0x02我之前已经存储了值0x03

但它不起作用,我不知道为什么。

非常感谢

【问题讨论】:

    标签: assembly microcontroller pic18


    【解决方案1】:

    PORTA 位 0..3 被配置为输入,但未显示将 PORTB 引脚配置为输出。 I/O 引脚是上电时的输入,因此您必须明确地将它们设为输出。你说你一直在循环,但在将 W 移动到 PORTB 以循环回读取 PORTA 后不显示分支指令。 CPFSLT 与 0x20 中的任何内容进行比较,您已将 3 存储在 0x02 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-09
      • 2013-09-24
      • 2011-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-29
      • 1970-01-01
      相关资源
      最近更新 更多