打印

想用软件模拟时序与DS1302通信...

[复制链接]
1695|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qianlong30|  楼主 | 2008-4-8 17:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用PIC16F877A与DS1302通信.用C内嵌汇编写了一个发字节程序.编译通过,但运行时I/O口根本没数据输出.程序错在哪里?另外能直接用I2C通信来读写DS1302吗?

# include <pic.h>

unsigned char data=0x85;            //data ---待发送数据

void clock()
{
   unsigned char count=8;

   TRISC5=0;
   RC5=1;

   TRISC4=1;            //数据线SDA
   TRISC3=1;            //时钟线SCL
   RC3=0;    
   while(count--)                //逐位发送
     {
    #asm
    bcf _PORTC,3
    rrf _data,f
    btfss _STATUS,0
    goto _low
    goto _high
     _low
    bcf _PORTC,4
    goto _end
     _high
    bsf _PORTC,4
     _end
    bsf _PORTC,3
         #endasm
        }

}

main()
{
   while(1) 
     {
       clock();
     }
}
沙发
兰天白云| | 2008-4-8 18:53 | 只看该作者

DS1302没用过,但以下好象不对,用示波器测过吗?

??????????
TRISC5=0;
   RC5=1;

使用特权

评论回复
板凳
qianlong30|  楼主 | 2008-4-8 19:31 | 只看该作者

在网上找了个C程序的.

明天试试吧.初次试验内嵌汇编,还是想知道怎么不正常.

使用特权

评论回复
地板
xieyuanbin| | 2008-4-8 19:46 | 只看该作者

是不是一线总线的通讯协议?

汇编吧,C有点繁

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

149

主题

349

帖子

2

粉丝