緣由單片機和數碼管仿真顯示問題-嵌入式-CSDN問答
#include "REG52.h"
unsigned char code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f
,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0,64,15,56}; //共陰0~F消隱減號
void smxs(unsigned char mz, unsigned char w)
{unsigned char Xd=0;P0=0;P0=smgduan[mz];P2=~w;while(++Xd);
}
void main()
{unsigned char Xd=0,qh=0,ss=0;while(1){if(++qh==0)ss=~ss;//延時轉變if(ss){smxs(5,1);smxs(6,2);smxs(7,4);smxs(8,8);}else{smxs(1,1);smxs(2,2);smxs(3,4);smxs(4,8);}}
}
void smxs(unsigned char mz, unsigned char w)
{unsigned char Xd=0;P0=~0;P0=~smgduan[mz];P2=w;while(++Xd);
}