看到TI的例子,想了半天想不出来这个
typedef unsigned char uchar;
#define wei_h P5OUT|= BIT5 p5out 是定义的是5。5输出高电平
#define wei_l P5OUT&= ~BIT5 这怎么又成了P5OUT输出低电平了,
#define duan_l P6OUT &= ~BIT6 这怎么又成了P6OUT输出低电平了,
#define duan_h P6OUT |= BIT6 p6out 是定义的是6。6输出高电平
//数码管7位段码:0--f
uchar scandata[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
*****************************************进入中断程序后
#pragma vector=WDT_VECTOR
__interrupt void watchdog_timer(void)
{
//P4OUT = 0xff;
P4OUT = scandata[cnt]; //输出段选信号
duan_h; p6out 是定义的是6。6输出高电平
duan_l; 这怎么又成了P6OUT输出低电平了,
P4OUT = ~(1 << cnt); //输出位选信号
wei_h; p5out 是定义的是5。5输出高电平
wei_l; 这怎么又成了P5OUT输出低电平了,
cnt++; //位计数变量在0~7之间循环
if(cnt == 8) cnt = 0;
}
************************************************
以下是数显管部分电路图
其实最不明白它为什么一会置高一会儿置低的,到底是怎么实现这个过程的,有知道吗 ?求解?
|