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