单片机c51程序,一个数字或字符是8位二进制数,如何把一个一个位提取出来,用来控制led?

来源:百度知道 编辑:UC知道 时间:2024/05/16 18:05:40
已经有一个数字,只送数码管显示它的二进制码的某一位或几位。
bit Ubit[8];
在单片机中不允许定义,没有这个数据类型

没见过Keil里面还可以声明和定义位数组的。

用移位操做,和与操作,楼上的解决办法,很正确

将bit Ubit[8]改为unsigned char Ubit[8]这样可以了

bit Ubit[8];
unsigned char Ubyte;

for(i = 0; i < 8; i++)
{
Ubit[i] = Ubyte & 0x01;
Ubyte = Ubyte >> 1;
}

#include <AT89X52.H>
unsigned char bdata chr;
sbit a1=chr^0;
sbit b1=chr^1;
sbit c1=chr^2;
sbit d1=chr^3;
sbit e1=chr^4;
sbit f1=chr^5;
sbit g1=chr^6;
sbit h1=chr^7;

void main()
{
chr=0x055;
P0_0=a1;
P0_1=b1;
P0_2=c1;
P0_3=d1;
while(1);
}