16个流水灯的控制,求助编程


额。顺序反了,下面那张是第一个
Build target 'Target 1'
compiling 16个灯.c...
16个灯.C(5): error C251: illegal octal digit
16个灯.C(18): error C202: 'P0': undefined identifier
16个灯.C(19): error C202: 'P2': undefined identifier
16个灯.C(24): error C202: 'P0': undefined identifier
16个灯.C(27): error C202: 'P2': undefined identifier
16个灯.C(28): error C141: syntax error near '}'
Target not created
16进制数据 是这样表示的 0x01,0x04,0x08,0x10.. 把你的星号改成 x (xyz的x)
楼上正解。C中十六进制数值是加0x前缀。默认是十进制数值。
也可以以试试移位
楼上的楼上好答案啊
*号改成x号(字母X的小写就可以)
我去。小编好犀利,败给小萝莉。
16进制数不是0* 而是 0X
28行后少 ;
调数组应用table[]
你那个p2口在主程序里那样写,会导致8个灯一直不亮,你可以试试用移位,让8个灯亮后,再让8个灯亮,间隔的时间控制的好的话,就感觉是16个灯了
额,老师只教汇编。C语言不懂
应该解决了吧?楼上正解
唉!这么明显的错误,这还能编译吗?同意楼上意见
0* 改成0x十六进制符号
分开控制,当小于8时控制八个,大于八是另外控制八路;还有一个三个IO口实现流水灯的用74HC595,网上参考别人的程序
16进制数不是0* 而是 0X
http://bbs.elecfans.com/jishu_341652_1_1.html
可以下载我这个程序看看的~
改过来了,编译没有错误。但是15个灯一直亮,大家帮忙看看。
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[16]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void delay(unsigned char ms)
{
uint i,j;
for(i=0;i<110;i++)
for(j=0;j<ms;j++);
}
main()
{
uint i,j;
P0=0x00;
P2=0x00;
while(1)
{
for(i=0;i<8;i++)
{
P0=table[1];
delay(100);
}
P2=0x00;
}
}
