单片机c51程序,一个数字或字符是8位二进制数,如何把一个一个位提取出来,用来控制led?
来源:百度知道 编辑:UC知道 时间:2024/05/16 18:05:40
已经有一个数字,只送数码管显示它的二进制码的某一位或几位。
bit Ubit[8];
在单片机中不允许定义,没有这个数据类型
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);
}