程序与预想结果不一样
#include <reg52.h> //<reg52.h>包含52单片机寄存器char i,j;
unsigned int z; //定义变量要在文件的最前面,这与C++不一样。
char led={'1','1','1','1','1','1','1','1'}; //定义数组并赋值
void main()
{
P2=led; //端口初始化
for(i=0;i<8;i++)
{
for(j=0; j<17;j++)
{
for(z=0;z<62501;z++)
led=~led;
P2=led;
}
}
} //运行结果是:4灯全亮,4秒后,第0,4,5亮;第1,2,3,灭,4秒 //后反转。我想要的是每个灯逐个变换。 '1'就是0X31,你把它赋值给P2,可不就是0,4,5亮吗。你的程序运行得很正常。 谢谢您了
0x01 和‘1’ 可不一样 一开始学习,不知道给端口赋值用16进制,我用的数组,也不知道给端口赋的值就是‘1’,谢谢大家。 ascii '1' 的十六进制是0x31,转换为二进制0011 0001,从而是0,4,5亮 strang 发表于 2021-11-4 08:27
ascii '1' 的十六进制是0x31,转换为二进制0011 0001,从而是0,4,5亮
谢谢您了,明白了 建议好好看看C语言 没有 LED 兄弟 还是你牛皮 哈哈
页:
[1]