下列程序调试成功。使用晶振为12M。
//软件延时,使P1口外接的8个发光二极管,以每秒1位的速度,轮流发光。
//发光顺序:0123,1234,2345,3456,4567,5670,6701,7012。循环。
//----------------------------
#include<reg52.h>
#include<intrins.h>
unsigned char a;
void main()
{
unsigned char i, j, k;
a = 0x0f;
while(1) {
P1 = a; //假设8个发光二极管接在P1口.
a = _crol_(a, 1);
for(i = 8; i > 0; i--)
for(j = 250; j > 0; j--)
for(k = 250; k > 0; k--);
}
}
//----------------------------
补充提问:0123不是同时亮,而是0 1 2 3 按顺序亮,再1234按顺序亮...
回答补充提问,改动如下:
#include<reg52.h>
#include<intrins.h>
void main()
{
unsigned char a, b, c, i, j, k;
a = 0xfe;
while(1) {
b = a;
for(c = 0; c < 4; c++) {
P1 = b;
b = _crol_(b, 1);
for(i = 8; i > 0; i--)
for(j = 250; j > 0; j--)
for(k = 250; k > 0; k--);
}
a = _crol_(a, 1);
}
}
温馨提示:内容为网友见解,仅供参考