标题: IIC模拟时序 用CY给单片机一个端口赋值该端口一直低电平 [打印本页]

作者: flyssun    时间: 2017-9-1 12:03
标题: IIC模拟时序 用CY给单片机一个端口赋值该端口一直低电平
单片机使用C8051F340,P0口设置为输出漏极开路(SDA,SCL上接上拉电阻到3.3V)
引脚定义如下:
sbit SDA = P0^6;                                                          //SDA ON P0.6
sbit SCL = P0^7;                                                          //SCL ON P0.7



主程序如下:

   temp=0xa0;
        while(1)                                                                //
        {  
       
           temp<<=1;               
                        SDA=CY;       
                NOP4();       
                SCL=1;                               
                                NOP4();
                SCL=0;                                                                  
        //}
测量时SCL这个波形正常,但SDA这个波形一直低电平。有没有大神遇到过这个情况?


作者: 我也喜欢    时间: 2017-9-1 15:17
你保证测到了前四个周期???后面全为0了,当然SDA就只有为低了。用取反测试一下,也也确认硬件没问题!
作者: flyssun    时间: 2017-9-2 08:47
我也喜欢 发表于 2017-9-1 15:17
你保证测到了前四个周期???后面全为0了,当然SDA就只有为低了。用取反测试一下,也也确认硬件没问题![e ...

硬件可以确认没有问题。因这个语句我是放在While中,因是不断循环,虽然后面4位是0,但一定会有高电平出现的。
作者: 我也喜欢    时间: 2017-9-3 19:20
你的TEMP数值在后面还有值吗?把temp赋值放在while循环内?
作者: 星际漫游者    时间: 2017-9-6 10:18
C中实现不了带进位循环移动  需要嵌入汇编




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1