机)
//object: 动态显⽰数码管,从1显⽰到9//writer:mike//time: 2020,11,14#include sbit wei = P2^7;sbit du = P2^6; //数组的类型指的是每⼀个元素的类型, code则指定存储在代码区 ,⽽⾮code 指存户在内存中。unsigned int code data1[10] = {0x3F,//00x06,//10x5B,//20x4F,//30x66,//40x6D,//50x7D,//60x07,//70x7F,//80x6F//9}; void delay(unsigned int);void main(){ while(1) { //⾸先打开位选 wei = 1; P0 = 0xfe; //让第⼀位显⽰ //关闭位选 wei = 0; //打开段选 du = 1; //显⽰数字1 P0 = data1[1]; //关闭段选 du = 0; //点亮第⼀位之后,延时⼀段时间 delay(1); //针对第⼆位数码管 //打开位选 wei = 1; //设置位选 P0 = 0xfd; //关闭位选 wei = 0; //打开段选 du = 1; //设置段选 P0 = data1[2]; //关闭段选 du = 0; delay(1); //针对第三位数码管 //打开位选 wei = 1; //设置位选 P0 = 0xfb; //关闭位选 wei = 0; //打开段选 du = 1; //设置段选 P0 = data1[3]; //关闭段选 du = 0; delay(1); //针对第四位数码管 //打开位选 wei = 1; //设置位选 P0 = 0xf7; //关闭位选 wei = 0; //打开段选 du = 1; //设置段选 P0 = data1[4]; //关闭段选 du = 0; delay(1); //针对第五位数码管 //打开位选 wei = 1; //设置位选 P0 = 0xef; //关闭位选 wei = 0; //打开段选 du = 1; //设置段选 P0 = data1[5]; //关闭段选 du = 0; delay(1); //针对第六位数码管 //打开位选 wei = 1; //设置位选 P0 = 0xdf; //关闭位选 wei = 0; //打开段选 du = 1; //设置段选 P0 = data1[6]; //关闭段选 du = 0; delay(1); //针对第七位数码管 //打开位选 wei = 1; //设置位选 P0 = 0xbf; //关闭位选 wei = 0; //打开段选 du = 1; //设置段选 P0 = data1[7]; //关闭段选 du = 0; delay(1); //针对第⼋位数码管 //打开位选 wei = 1; //设置位选 P0 = 0x7f; //关闭位选 wei = 0; //打开段选 du = 1; //设置段选 P0 = data1[8]; //关闭段选 du = 0; delay(1); /* //针对第九位数码管 //打开位选 wei = 1; //设置位选 wei = 0xff; //关闭位选 wei = 0; //打开段选 du = 1; //设置段选 du = data1[9]; //关闭段选 du = 0; */ }} void delay(unsigned int x){ unsigned a, b; for(a=x;a>0;a--) { for(b=120;b>0;b--); }} 因篇幅问题不能全部显示,请点此查看更多更全内容