目录1、六位数码管显示6个91.1效果图截屏1.2代码2、数码管显示2个7一头一尾2.1效果图截屏2.2代码3、数码管轮播显示6位3.1效果图截屏3.2代码4、数码管轮播显示2位4.1效果图截屏4.2代码5、6位数码管依次显示1-65.1效果图截屏5.2代码6、使数码管显示“13.14.15”6.1效果图截屏6.2代码1、六位数码管显示6个91.1效果图截屏1.2代码#includereg52.h // 头文件 // 定义锁存器控制引脚 sbit dulaP3^4; // 锁存器U2段选 sbit welaP1^6; // 锁存器U2位选 // 主函数 void main() { // 1.位选控制 wela1; // 打开位选 P00xC0; // 位选3个数码管 1111 1000 wela0; // 关闭位选 // 2.段选控制 dula1; // 打开段选 P00x6F; // 数码管显示“0” 0011 1111 dula0; // 关闭段选 // 3.保持 while(1); }2、数码管显示2个7一头一尾2.1效果图截屏2.2代码#includereg52.h // 头文件 // 定义锁存器控制引脚 sbit dulaP3^4; // 锁存器U2段选 sbit welaP1^6; // 锁存器U2位选 // 主函数 void main() { // 1.位选控制 wela1; // 打开位选 P00xDE; // 位选3个数码管 1111 1000 wela0; // 关闭位选 // 2.段选控制 dula1; // 打开段选 P00x07; // 数码管显示“0” 0011 1111 dula0; // 关闭段选 // 3.保持 while(1); }3、数码管轮播显示6位3.1效果图截屏3.2代码#includereg52.h // 头文件 #define uchar unsigned char #define uint unsigned int // 定义锁存器控制引脚 sbit dulaP3^4; // 锁存器U2段选 sbit welaP1^6; // 锁存器U3位选 // 共阴极数码管段码表 uchar code seg_code[] { 0x3F, // 0 0x06, // 1 0x5B, // 2 0x4F, // 3 0x66, // 4 0x6D, // 5 0x7D, // 6 0x07, // 7 0x7F, // 8 0x6F // 9 }; // 延时函数 void delay(uint ms) { uint i, j; for(i ms; i 0; i--) for(j 110; j 0; j--); } // 数码管展示函数 void display_digit(uchar digit) { P0 seg_code[digit]; // 发送数字对应的段码 dula1; // 打开段选 delay(5); // 稳定信号 dula0; // 关闭段选 } // 主函数 void main() { uchar digit; while(1) { // 1.位选控制 wela1; // 打开位选 P00xc0; // 位选6个数码管 1100 0000 wela0; // 关闭位选 // 2.段选控制 for(digit 0; digit 10; digit) // 轮流显示0到9 { // 补充代码 if(digit ! 0) { // 跳过0只显示1~9 display_digit(digit); // 显示当前数字 delay(500); // 延时500ms保证可见 } } } }4、数码管轮播显示2位4.1效果图截屏4.2代码#includereg52.h // 头文件 #define uchar unsigned char #define uint unsigned int // 定义锁存器控制引脚 sbit dulaP3^4; // 锁存器U2段选 sbit welaP1^6; // 锁存器U3位选 // 共阴极数码管段码表 uchar code seg_code[] { 0x3F, // 0 0x06, // 1 0x5B, // 2 0x4F, // 3 0x66, // 4 0x6D, // 5 0x7D, // 6 0x07, // 7 0x7F, // 8 0x6F // 9 }; // 延时函数 void delay(uint ms) { uint i, j; for(i ms; i 0; i--) for(j 110; j 0; j--); } // 数码管展示函数 void display_digit(uchar digit) { P0 seg_code[digit]; // 发送数字对应的段码 dula1; // 打开段选 delay(5); // 稳定信号 dula0; // 关闭段选 } // 主函数 void main() { uchar digit; while(1) { // 1.位选控制 wela1; // 打开位选 P00xF3; // 位选6个数码管 1100 0000 wela0; // 关闭位选 // 2.段选控制 for(digit 0; digit 10; digit) // 轮流显示0到9 { // 补充代码 display_digit(digit); // 显示当前数字 delay(500); // 延时500ms保证可见 } } }5、6位数码管依次显示1-65.1效果图截屏5.2代码#include reg52.h #define uchar unsigned char #define uint unsigned int sbit dula P3^4; sbit wela P1^6; uchar code TableDula[] { 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F }; uchar code TableWela[] { 0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF }; void delay(uchar x) { uchar j; while(x--) { for(j 0; j 125; j); } } void main() { uchar i; while(1) { for(i 0; i 6; i) { P0 0x00; dula 0; wela 0; P0 TableWela[i]; wela 1; wela 0; P0 TableDula[i1]; // 显示 1~6 dula 1; dula 0; delay(2); } } }6、使数码管显示“13.14.15”6.1效果图截屏6.2代码#include reg52.h #define uchar unsigned char #define uint unsigned int sbit dula P3^4; sbit wela P1^6; uchar code TableDula[] { 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F }; uchar code TableDulaPoint[] { 0xBF, 0x86, 0xDB, 0xCF, 0xE6, 0xED, 0xFD, 0x87, 0xFF, 0xEF }; uchar code TableWela[] { 0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf }; void delay(uchar x) { uchar j; while(x--) { for(j 0; j 125; j); } } void main() { uchar i; uchar displayData[6] {1, 3, 1, 4, 1, 5}; // 显示 13.14.15 uchar pointFlag[6] {0, 1, 0, 1, 0, 0}; // 第2位和第4位带小数点 while(1) { for(i 0; i 6; i) { P0 0x00; dula 0; wela 0; P0 TableWela[i]; wela 1; wela 0; if(pointFlag[i] 1) P0 TableDulaPoint[displayData[i]]; else P0 TableDula[displayData[i]]; dula 1; dula 0; delay(2); } } }