求51单片机大神帮忙看看一小段代码
麻烦帮忙看看这段数码管显示的代码是什么意思啊voiddisplay(void){XBYTE[0xE000]=0xff;//消隐XBYTE[0xC000]=(1<<dspc...
麻烦帮忙看看这段数码管显示的代码是什么意思啊
void display(void)
{
XBYTE[0xE000] = 0xff; //消隐
XBYTE[0xC000] = (1<<dspcom);//位选
XBYTE[0xE000] = tab[dspbuf[dspcom]]; //段码
if(++dspcom == 8){
dspcom = 0;
}
}
前面还有两句这个
unsigned char dspbuf[8] = {10,10,10,10,10,0,0,0}; //显示缓冲区
unsigned char dspcom = 0;
特别是XBYTE[0xC000] = (1<<dspcom);这句位选的看不懂,解释这一句也行
求大神啊,急急急!!! 展开
void display(void)
{
XBYTE[0xE000] = 0xff; //消隐
XBYTE[0xC000] = (1<<dspcom);//位选
XBYTE[0xE000] = tab[dspbuf[dspcom]]; //段码
if(++dspcom == 8){
dspcom = 0;
}
}
前面还有两句这个
unsigned char dspbuf[8] = {10,10,10,10,10,0,0,0}; //显示缓冲区
unsigned char dspcom = 0;
特别是XBYTE[0xC000] = (1<<dspcom);这句位选的看不懂,解释这一句也行
求大神啊,急急急!!! 展开
1个回答
展开全部
XBYTE[0xE000] = 0xff; 是指向地址为0xE000的外部端口输出数据 0xff
同样 XBYTE[0xC000] = (1<<dspcom);是指向地址为0xC000的外部端口输出数据
数据是1左移dspcom位,
若dspcom=0 则数据为1 即0000 0001
若dspcom=2 则数据为2 即0000 0010
若dspcom=3 则数据为4 即0000 0100
以此类推,一次只选中一个数码管
unsigned char dspbuf[8] = {10,10,10,10,10,0,0,0}; //显示缓冲区
数组用来存储待显示的数据
同样 XBYTE[0xC000] = (1<<dspcom);是指向地址为0xC000的外部端口输出数据
数据是1左移dspcom位,
若dspcom=0 则数据为1 即0000 0001
若dspcom=2 则数据为2 即0000 0010
若dspcom=3 则数据为4 即0000 0100
以此类推,一次只选中一个数码管
unsigned char dspbuf[8] = {10,10,10,10,10,0,0,0}; //显示缓冲区
数组用来存储待显示的数据
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询