找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2981|回复: 5
收起左侧

请问红色部分程序怎么理解啊,在整个程序中的作用是什么??

[复制链接]
ID:64270 发表于 2014-9-2 16:31 | 显示全部楼层 |阅读模式
#include <AT89X51.H>

unsigned char code table1[]={0x06,0x5b,0x4f,0x66,0x6d}; //显示“012345”
unsigned char code table2[]={0x76,0x79,0x38,0x38,0x3f}; //显示“HELLO”
unsigned char i,j;
unsigned char a,b;
unsigned char temp;

void main(void)
{
  while(1)
    {
      temp=0xfe;

      for(i=0;i<5;i++)
        {
          if(P1_7==1)
            {
              P0=table2;
            }
            else
              {
                P0=table1;
              }
          P2=temp;   
          a=temp<<(i+1);
          b=temp>>(7-i);
          temp=a|b;
                  for(a=4;a>0;a--);
          for(b=248;b>0;b--);  
          P2=0xff;

        }
    }
}
请问红色部分程序怎么理解啊,在整个程序中的作用是什么??


回复

使用道具 举报

ID:64810 发表于 2014-9-2 17:13 | 显示全部楼层
PO输出LCD屏,P1_7是信号输入,P2输出做什么?
回复

使用道具 举报

ID:64270 发表于 2014-9-2 17:33 | 显示全部楼层
highffff 发表于 2014-9-2 17:13
PO输出LCD屏,P1_7是信号输入,P2输出做什么?

刷新用的
回复

使用道具 举报

ID:1 发表于 2014-9-2 18:33 来自手机 | 显示全部楼层
a=temp<<(i+1);            b=temp>>(7-i);,这两句是移位
回复

使用道具 举报

ID:1 发表于 2014-9-2 18:35 来自手机 | 显示全部楼层
temp=a|b  移位之后进行,逻辑或,然后进行两个for延时
回复

使用道具 举报

ID:1 发表于 2014-9-2 18:37 来自手机 | 显示全部楼层
应该把a和b这两个变量,化为二进制以后,一步一步仔细研究,就会有结果的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表