6位数码管静态动态显示
文章目录1、数码管显示6个91.1效果图截图2、数码管显示2个7一头一尾2.1效果图截图3、数码管轮播显示6位3.1效果图截图4、数码管轮播显示2位4.1 效果图截屏1、数码管显示6个91.1效果图截图#includereg52.h // 头文件 // 定义锁存器控制引脚 sbit dulaP3^4; // 锁存器U2段选 sbit welaP1^6; // 锁存器U2位选 // 主函数 void main() { // 1.位选控制 wela1; // 打开位选 P00x00; // 位选3个数码管 1111 1000 wela0; // 关闭位选 // 2.段选控制 dula1; // 打开段选 P00x6f; // 数码管显示“0” 0011 1111 dula0; // 关闭段选 // 3.保持 while(1); }2、数码管显示2个7一头一尾2.1效果图截图#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效果图截图#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 { display_digit(digit); // 显示当前数字 delay(500); // 适当延时以便观察每个数字 } } }4、数码管轮播显示2位4.1 效果图截屏#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); // 适当延时以便观察每个数字 } } }