#include <REG51.H>//兩無(wú)符號(hào)整型變量相乘積存于無(wú)符號(hào)字符變量在左側(cè)三位數(shù)碼管顯示實(shí)驗(yàn)。 unsigned char code SEG7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//定義0-9共陽(yáng)極數(shù)碼管段碼。 //******************************** void delay(unsigned int k)//定義延時(shí)函數(shù)K為無(wú)符號(hào)整形變量。 { unsigned int i,j;//定義兩個(gè)無(wú)符號(hào)整型變量i,j. for(i=0;i<k;i++){ for(j=0;j<121;j++)//兩個(gè)帶嵌套的for循環(huán)函數(shù)。 {;}} } //******************************** void main(void) //聲明主函數(shù)。 { unsigned int x=20;//聲明x=20為無(wú)符號(hào)整形變量。 unsigned int y=11;//聲明y=11為無(wú)符號(hào)整形變量 unsigned char z;//聲明z為無(wú)符號(hào)字符變量 z=( unsigned char)(x*y);//兩無(wú)符號(hào)整形變量x,y相乘,其積存于z并制轉(zhuǎn)換為無(wú)符號(hào)字符變量以節(jié)省存儲(chǔ)空間。 while(1)//while 循環(huán)語(yǔ)句開始,這里進(jìn)行無(wú)限循環(huán)。 { //while 循環(huán)語(yǔ)句開始。 P1= SEG7[z/100];//取Z的百位數(shù)字段碼送P1口顯示。 P2=0xfe;//百位數(shù)位碼。 delay(1);//調(diào)用延時(shí)子函數(shù)模塊,維持點(diǎn)亮?xí)r間,便于觀察。 P1= SEG7[(z%100)/10];//取Z的十位數(shù)字段碼送P1口顯示。 P2=0xfd;//十位數(shù)位碼。 delay(1);// 調(diào)用延時(shí)子函數(shù)模塊,維持點(diǎn)亮?xí)r間,便于觀察。 P1= SEG7[z%10]; //取Z的個(gè)位數(shù)字段碼送P1口顯示。 P2=0xfb;//十位數(shù)位碼。 delay(1);//調(diào)用延時(shí)子函數(shù)模塊,維持點(diǎn)亮?xí)r間,便于觀察。 }//while循環(huán)語(yǔ)句結(jié)束。 }//主函數(shù)結(jié)束。
這個(gè)實(shí)驗(yàn)程序出此《手把手教你學(xué)單片機(jī)C語(yǔ)言》這本書第六章,根據(jù)我的實(shí)驗(yàn)板情況與原程序有所改動(dòng)。
|