#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语言》这本书第六章,根据我的实验板情况与原程序有所改动。
|