请教PIC单片机iO口问题

[复制链接]
2811|7
 楼主| wenzong 发表于 2012-6-21 13:43 | 显示全部楼层 |阅读模式
clrf        PORTB
I2C_Start:
           movlw     TRISB
           movwf     FSR
           bsf         INDF,SDA
           bsf         INDF,SCL
           call         I2C_Delay
           bcf        INDF,SDA
           bcf        PORTB,SDA   ;为什么少了此语句 ,输不出低电平?
           call        I2C_Delay
           bcf        PORTB,SCL
           return
figo20042005 发表于 2012-6-21 13:56 | 显示全部楼层
bcf        PORTB,SDA   ;为什么少了此语句 ,输不出低电平?
这句是给B口SDA引脚赋低电平,不知道楼主什么意思
 楼主| wenzong 发表于 2012-6-21 14:06 | 显示全部楼层
clrf        PORTB ;已经是低了
bcf        INDF,SDA   ;改输出就应该输出低了
 楼主| wenzong 发表于 2012-6-21 14:31 | 显示全部楼层
还有一个问题:

设定PORTC口为输出
bsf PORTC,7 端口输出高
bsf PORTC,6   运行完这条指令后 PORTC,7端口输出低
兰天白云 发表于 2012-6-21 15:18 | 显示全部楼层
读改写的问题
clrf        PORTB                          ;
I2C_Start:
           movlw     TRISB
           movwf     FSR
           bsf         INDF,SDA         ;此位被设置为输入
           bsf         INDF,SCL         ;
           call         I2C_Delay       ;这里有没有页面切换?
           bcf        INDF,SDA          ;此位被设置为输出
           bcf        PORTB,SDA   ;为什么少了此语句 ,输不出低电平?
           call        I2C_Delay
           bcf        PORTB,SCL
           return
 楼主| wenzong 发表于 2012-6-21 15:29 | 显示全部楼层
没有页面切换,I2C_Delay子程序只有5个NOP
 楼主| wenzong 发表于 2012-6-21 15:33 | 显示全部楼层
clrf        PORTB  
                 movlw     TRISB
                 movwf     FSR
                 bsf         INDF,SDA         ;此位被设置为输入
           bsf         INDF,SCL         ;
           nop
                nop
           bcf        INDF,SDA          ;此位被设置为输出
           bcf        PORTB,SDA   ;为什么少了此语句 ,输不出低电平?
                nop
                nop
                bcf        INDF,SCL         ;
                bcf        PORTB,SCL        ;为什么少了此语句 ,输不出低电平?
兰天白云 发表于 2012-6-21 16:30 | 显示全部楼层
应该有输出,查查硬件
仿真看一下,应该输出0
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

158

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部