文章目录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.第一个显示0第二个显示数字1…5.1效果图5.2代码实现1.数码管显示6个91.1效果图截屏1.2代码#includereg52.hsbit dulaP3^4;sbit welaP1^6;voidmain(){wela1;P00xC0;wela0;dula1;P00x6F;dula0;while(1);}2.数码管显示2个7头尾2.1效果图截屏2.2代码#includereg52.hsbit dulaP3^4;sbit welaP1^6;voidmain(){wela1;P00xDE;wela0;dula1;P00x07;dula0;while(1);}3.数码管轮播显示6位3.1效果图截屏3.2代码#includereg52.h#defineucharunsignedchar#defineuintunsignedintsbit dulaP3^4;sbit welaP1^6;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--);}voidmain(){uchar digit;while(1){wela1;P00xc0;wela0;for(digit0;digit10;digit){dula1;P0seg_code[digit];dula0;delay(500);}}}4.数码管轮播显示2位4.1效果图截屏4.2代码#includereg52.h#defineucharunsignedchar#defineuintunsignedintsbit dulaP3^4;sbit welaP1^6;uchar code seg_code[]{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;}voiddelay(uint ms){uint i,j;for(ims;i0;i--)for(j110;j0;j--);}voidmain(){uchar digit;while(1){wela1;P00xF3;wela0;for(digit0;digit10;digit){dula1;P0seg_code[digit];dula0;delay(500);}}}5.第一个显示0第二个显示数字1…5.1效果图5.2代码实现#includereg52.h// 头文件 c#defineucharunsignedchar#defineuintunsignedint// 定义锁存器控制引脚sbit dulaP3^4;// 段选锁存器U2sbit welaP1^6;// 位选锁存器U3// 数码管的段码表(定义0-9的段码)uchar code TableDula[]{0x3F,// 00x06,// 10x5B,// 20x4F,// 30x66,// 40x6D,// 50x7D,// 60x07,// 70x7F,// 80x6F// 9};// 数码管显示位码对应第1到第6个数码管需要将2进制转换成16进制uchar code TableWela[]{// 补充代码0xFE,// 1111 1110 - 第1位P0.0 置低其它为高 选中第1位数码管0xFD,// 1111 1101 - 第2位P0.1 置低 选中第2位数码管0xFB,// 1111 1011 - 第3位P0.2 置低 选中第3位数码管0xF7,// 1111 0111 - 第4位P0.3 置低 选中第4位数码管0xEF,// 1110 1111 - 第5位P0.4 置低 选中第5位数码管0xDF// 1101 1111 - 第6位P0.5 置低 选中第6位数码管};// 延时函数voiddelay(uchar x){uchar j;while(x--){for(j0;j125;j);}}// 主函数voidmain(){uchar i;while(1){for(i0;i6;i){P00x00;// 清空之前的输出dula0;wela0;P0TableWela[i];// 先送位码依次选中1-6位数码管wela1;// 锁存位码wela0;P0TableDula[i1];// 再送段码第1个数码管显示0第2个数码管显示1...dula1;// 锁存段码dula0;delay(2);// 保持一段时间}}}