微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 大神给分析分析这个m的值是怎么变化的啊

大神给分析分析这个m的值是怎么变化的啊

时间:10-02 整理:3721RD 点击:
要求从左到右显示3位数字,可是这个代码我怎么分析都不对,但是运行的时候又没有错,
我分析啊
m赋初值0xfe,就是二进制码 11111110  (数码管是共阴的),进入for循环后首先进行了一次左移,所以我怎么看都是先显示第二位数码管,这个时候
i=0,显示的应该是百位的段码,即DSY_Buffer[0],  我这么分析对不,可是运行的时候完全没有错啊,求大神给分析分析

源代码如下
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar DSY_Buffer[3]={0,0,0};
void DelayMS(uint ms)
{
uchar t;
while(ms--)for(t=0;t<120;t++);
}
void main()
{
uchar i,m,Num;
P0=0xff;
P2=0xff;
while(1)
{
  m=0xfe;
  Num=P1;
  DSY_Buffer[0]=Num/100;
  DSY_Buffer[1]=Num/10%10;
  DSY_Buffer[2]=Num%10;
  for(i=0; i<3; i++)
  {
   m=_crol_(m,1);
   P2=m;
   P0=DSY_CODE[DSY_Buffer];
   DelayMS(10);
  }
}
}
附原理图


,加油加油!

顶贴一下

自己定啊^^^^^^^^^^^^^^^^^^^^^^^^^^

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top