切换到宽版
爱科技/爱创意/爱折腾/爱极致;技术知识分享平台,点击进入新版数码之家网站
  • 1253阅读
  • 6回复

[其他]请教,点阵显示  为什么每8位要加个与运算? [复制链接]

上一主题 下一主题
离线茶壹杯
 

发帖
2103
M币
155
专家
3
粉丝
67
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2019-02-16

小白学单片机  困难重重  



一个讲解点阵显示的教程  还是不明白,每8位的1个字节   为什么要和0x80去与?(见下面代码中)
然鹅  与了0x80之后  最左边当然都是1了呀?      这句话到底是什么意思:    if (0x80 & t) {     //从左到右如果最左位1,则显示  
  1. unsigned char am[] = {0x00,0x00,0x00,0xEE,0x6C,0x6C,0x6C,0x6C,0x54,0x54,0x54,0x54,0x54,0xD6,0x00,0x00}; //M  
  2.   
  3. void showM(){  
  4.     int i,j;  
  5.     unsigned char t;  
  6.     for (i = 0; i < 16; ++i) {   //对于每一行  
  7.         t = am;              //取出代表这一行点的数据  
  8.         for (j = 0; j < 8; ++j) {    //对于这行中的每个点  
  9.             if (0x80 & t) {     //从左到右如果最左位1,则显示  
  10.                 printf("MM");  
  11.             }else{  
  12.                 printf("  ");  
  13.             }  
  14.             t <<= 1;          //将右边的数据往左移动  
  15.         }  
  16.         printf("\n");  
  17.     }  
  18. }  

看得额已经晕了





离线xingui

发帖
61
M币
156
专家
0
粉丝
8
只看该作者 1楼 发表于: 2019-02-16
请登录后查看
离线xingui

发帖
61
M币
156
专家
0
粉丝
8
只看该作者 2楼 发表于: 2019-02-16
回 xingui 的帖子
请登录后查看
离线xingui

发帖
61
M币
156
专家
0
粉丝
8
只看该作者 3楼 发表于: 2019-02-16
请登录后查看
离线lorn丁

发帖
1737
M币
686
专家
1
粉丝
15
只看该作者 4楼 发表于: 2019-02-16
请登录后查看
离线茶壹杯

发帖
2103
M币
155
专家
3
粉丝
67
只看该作者 5楼 发表于: 2019-02-16
回 xingui 的帖子
请登录后查看
离线茶壹杯

发帖
2103
M币
155
专家
3
粉丝
67
只看该作者 6楼 发表于: 2019-02-16
回 xingui 的帖子
请登录后查看
快速回复
限80 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个