单片机/MCUwilliam hill官网
直播中

xiatianxingfeng

10年用户 14经验值
私信 关注
[问答]

求大神指点一下,有关51单片机的一个基本问题

本人新手,有个单片机的问题想求救下。89S51单片机的 P1.0口作为时钟输出方波,周期大于2微秒,P1.1口输出一组数据,该数据总共是60位。每次在这个方波信号的下降沿时,P1.1口输出一位数据。请问如何用C写啊?

感谢各位

回帖(7)

ccccnday

2015-4-10 16:31:06
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
举报

洌洌的水

2015-4-10 17:15:28
顶顶顶顶,用下降沿外部中断可以不
举报

sunzewensky

2015-4-10 17:35:11
用外部中断,选择下降沿触发,中断发生 P1.1就可以输出 1或是 0了!
举报

xiatianxingfeng

2015-4-11 21:50:59
引用: xianyoudian 发表于 2015-4-10 21:43
可以参考《51单片机的C语言程序设计》下降沿外部中断可以

我看书上说的是外部中断 是从外部引起中断,这个是利用IO口向外发送时钟和数据,不一样吧?另外怎么保证下降沿触发呢?(下面这是我用延迟写的,不知道可不可以?望大神赐教。)
#include
unsigned char D[8];
unsigned char Par;
unsigned char i;
unsigned char j;
unsigned char k;
***it SDA=P1^1;
***it SCL=P1^0;

void delay(unsigned char k)
{
while(--k);
}
void main()
{
unsigned char D[8]={0x00,0x00,0x00,0x48,0x08,0x40,0x20,0x30};
for(i=0;i<=7;i++)
   {
   Par=D;
   for(j=0;j<=7;j++)
     {
      SDA=(bit)(Par&0x80);
          delay(1000);
          SCL=1;
          delay(1000);
          SCL=0;
         Par=Par<<1;
     }
            
   }
}

举报

599216290

2015-4-13 15:29:25
顶顶顶顶顶顶顶顶顶顶顶顶顶电风扇
举报

洌洌的水

2015-4-25 17:46:07
引用: xiatianxingfeng 发表于 2015-4-11 21:50
我看书上说的是外部中断 是从外部引起中断,这个是利用IO口向外发送时钟和数据,不一样吧?另外怎么保证 ...

应该可以的,你试下
举报

sky-shine

2015-6-3 21:12:30
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
举报

更多回帖

×
20
完善资料,
赚取积分