1. 程式人生 > 其它 >一位數碼管9-0顯示到0後不正常。 for迴圈中變數定義為有符號才正確

一位數碼管9-0顯示到0後不正常。 for迴圈中變數定義為有符號才正確

#include <STC89C5xRC.H>
#define uint unsigned int
#define uchar unsigned char
uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uint x)
{
	while(x--);
}
void main(void)
{
	uchar i=0;
	P2=0x00;
	while(1)
	{
		for(i=9;i>=0;i--)
		{
			P0=table[i];
			delay(50000);
		}
	}
}

在這裡插入圖片描述
將i定義為有符號數,因為定義為無符號數時0-1後i=255;還是滿足for迴圈條件。