|
看到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輸出高電平
//數(shù)碼管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++; //位計數(shù)變量在0~7之間循環(huán)
if(cnt == 8) cnt = 0;
}
************************************************
以下是數(shù)顯管部分電路圖
QQ截圖20140910130722.png (30.94 KB, 下載次數(shù): 125)
下載附件
2014-9-10 13:07 上傳
QQ截圖20140910130737.png (54.89 KB, 下載次數(shù): 156)
下載附件
2014-9-10 13:07 上傳
其實最不明白它為什么一會置高一會兒置低的,到底是怎么實現(xiàn)這個過程的,有知道嗎 ?求解?
|
|