-
小白学单片机 困难重重
一个讲解点阵显示的教程 还是不明白,每8位的1个字节 为什么要和0x80去与?(见下面代码中)
然鹅 与了0x80之后 最左边当然都是1了呀? 这句话到底是什么意思:
if (0x80 & t) { //从左到右如果最左位1,则显示
- unsigned char am[] = {0x00,0x00,0x00,0xEE,0x6C,0x6C,0x6C,0x6C,0x54,0x54,0x54,0x54,0x54,0xD6,0x00,0x00}; //M
-
- void showM(){
- int i,j;
- unsigned char t;
- for (i = 0; i < 16; ++i) { //对于每一行
- t = am; //取出代表这一行点的数据
- for (j = 0; j < 8; ++j) { //对于这行中的每个点
- if (0x80 & t) { //从左到右如果最左位1,则显示
- printf("MM");
- }else{
- printf(" ");
- }
- t <<= 1; //将右边的数据往左移动
- }
- printf("\n");
- }
- }
看得额已经晕了