51单片机用P0和P1口控制16路彩灯做流水灯,用C语言怎么写,我只会单用P0或P1,不知道P0和P1怎么衔接

 我来答
巨琬凝8x
2011-01-11 · TA获得超过141个赞
知道小有建树答主
回答量:103
采纳率:0%
帮助的人:67.7万
展开全部
你可以使用
第晌察一拆悔:全局变量,如果P1工作,P0 停止宴御茄,.....
或者:定义P0口的同时,定义P1口,比方说原来是P0=255;delay();P0=128;delay();...
改成P0 =255;P1=255;delay();P0=128:P1=255;delay();....
我没有51的开发板,只是用软件仿真了,这个程序仅供参考
#include<reg52.h>
#include<intrins.h>
void main()
{
bit flag;

flag=0;
P1=255;
P0=255;
while(1)
{
for(;;)
{
//add your code
//for example
P1<<=1;
if(P1==0) { flag=1; break;}
}
if(flag==1)
for(;;)
{
P0<<=1;
if(P0==0){ flag=0;
P1=255;
P0=255;
_nop_();
break; }
}
}
}
做而论道
高能答主

2011-01-11 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
很简单,程序如下:
#include<汪裤reg51.h>
#include <intrins.h> //--楼主的问题, 解决方法是在这里面。
#define uint unsigned int
void main()
{
uint x = 0x7fff; //16位数, 有一个低电平.
while(1) {
x = _iror_(x, 1); //16位数环行移歼陵宽位--这是关键.
P0 = x / 256; //输出高8位.
P1 = x % 256; //输出低8位.
delayms(1000); //适当延时, 函数氏亮请自行编写.
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
whq20080808
2011-01-10 · 超过13用户采纳过TA的回答
知道答主
回答量:99
采纳率:0%
帮助的人:37.2万
展开全部
判断P0是否到早御弊了最后一位,是的话,关闭P0,然后执行P1口的流水灯,同理判断P1是否到了陆族最拆肢后一位,是的话,关闭P1,然后执行P0口的流水灯
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式