文章目录1、6位数码管前3位显示01.1效果图1.2代码块2、6位数码管显示6个02.1效果图2.2代码块3、6位数码管显示6个93.1效果图3.2代码块4、点亮第1位和第6位显示数字74.1效果图4.2代码块5、数码管轮播数字0-95.1效果图5.2代码块6、只轮播第3位和第4位6.1效果图6.2代码块1、6位数码管前3位显示01.1效果图1.2代码块#includereg52.h// 头文件// 定义锁存器控制引脚sbit dulaP3^4;// 锁存器U2段选sbit welaP1^6;// 锁存器U2位选// 主函数voidmain(){// 1.位选控制wela1;// 打开位选P00xf8;// 位选3个数码管 1111 1000wela0;// 关闭位选// 2.段选控制dula1;// 打开段选P00x3f;// 数码管显示“0” 0011 1111dula0;// 关闭段选// 3.保持while(1);}2、6位数码管显示6个0修改位选代码P00xc0;// 位选6个数码管 1100 00002.1效果图2.2代码块#includereg52.h// 头文件// 定义锁存器控制引脚sbit dulaP3^4;// 锁存器U2段选sbit welaP1^6;// 锁存器U2位选// 主函数voidmain(){// 1.位选控制wela1;// 打开位选P00xc0;// 位选6个数码管 1100 0000wela0;// 关闭位选// 2.段选控制dula1;// 打开段选P00x3f;// 数码管显示“0” 0011 1111dula0;// 关闭段选// 3.保持while(1);}3、6位数码管显示6个9修改段选代码P00x6f; // 数码管显示“9” 0110 11113.1效果图3.2代码块#includereg52.h// 头文件// 定义锁存器控制引脚sbit dulaP3^4;// 锁存器U2段选sbit welaP1^6;// 锁存器U2位选// 主函数voidmain(){// 1.位选控制wela1;// 打开位选P00xc0;// 位选6个数码管 1100 1000wela0;// 关闭位选// 2.段选控制dula1;// 打开段选P00x6f;// 数码管显示“9” 0011 1111dula0;// 关闭段选// 3.保持while(1);}4、点亮第1位和第6位显示数字74.1效果图4.2代码块#includereg52.h// 头文件// 定义锁存器控制引脚sbit dulaP3^4;// 锁存器U2段选sbit welaP1^6;// 锁存器U2位选// 主函数voidmain(){// 1.位选控制wela1;// 打开位选P00xde;// 位选3个数码管 1111 1000 这里f8改成了C0 1100 0000wela0;// 关闭位选// 2.段选控制dula1;// 打开段选P00x07;// 数码管显示“0” 0011 1111 原来是3F 显示1改为06 显示0改为3Fdula0;// 关闭段选// 3.保持while(1);}5、数码管轮播数字0-95.1效果图5.2代码块#includereg52.h// 头文件#defineucharunsignedchar#defineuintunsignedint// 定义锁存器控制引脚sbit dulaP3^4;// 锁存器U2段选sbit welaP1^6;// 锁存器U3位选// 共阴极数码管段码表uchar code seg_code[]{0x3F,// 00x06,// 10x5B,// 20x4F,// 30x66,// 40x6D,// 50x7D,// 60x07,// 70x7F,// 80x6F// 9};// 延时函数voiddelay(uint ms){uint i,j;for(ims;i0;i--)for(j110;j0;j--);}// 数码管展示函数显示指定数字voiddisplay_digit(uchar digit){dula1;// 打开段选P0seg_code[digit];// 发送数字对应的段码delay(1);// 短暂延时稳定信号dula0;// 关闭段选}// 主函数voidmain(){uchar digit;// 先设置位选只设置一次让所有数码管都使能wela1;// 打开位选P00xc0;// 位选6个数码管 1100 0000第1、2位亮注意检查wela0;// 关闭位选while(1){// 轮流显示0到9for(digit0;digit10;digit){display_digit(digit);// 显示当前数字delay(500);// 延时500ms看清数字}}}6、只轮播第3位和第4位6.1效果图6.2代码块#includereg52.h// 头文件#defineucharunsignedchar#defineuintunsignedint// 定义锁存器控制引脚sbit dulaP3^4;// 锁存器U2段选sbit welaP1^6;// 锁存器U3位选// 共阴极数码管段码表uchar code seg_code[]{0x3F,// 00x06,// 10x5B,// 20x4F,// 30x66,// 40x6D,// 50x7D,// 60x07,// 70x7F,// 80x6F// 9};// 延时函数voiddelay(uint ms){uint i,j;for(ims;i0;i--)for(j110;j0;j--);}// 数码管展示函数显示指定数字voiddisplay_digit(uchar digit){dula1;// 打开段选P0seg_code[digit];// 发送数字对应的段码delay(1);// 短暂延时稳定信号dula0;// 关闭段选}// 主函数voidmain(){uchar digit;// 先设置位选只设置一次让所有数码管都使能wela1;// 打开位选//P00xc0; // 位选6个数码管 1100 0000第1、2位亮注意检查P00xf3;//1111 0011wela0;// 关闭位选while(1){// 轮流显示0到9for(digit0;digit10;digit){display_digit(digit);// 显示当前数字delay(500);// 延时500ms看清数字}}}