四、6位数码管(静态显示
2026/7/21 9:49:15 网站建设 项目流程

文章目录

  • 1、6位数码管前3位显示0
    • 1.1效果图
    • 1.2代码块
  • 2、6位数码管显示6个0
    • 2.1效果图
    • 2.2代码块
  • 3、6位数码管显示6个9
    • 3.1效果图
    • 3.2代码块
  • 4、点亮第1位和第6位,显示数字7
    • 4.1效果图
    • 4.2代码块
  • 5、数码管轮播数字0-9
    • 5.1效果图
    • 5.2代码块
  • 6、只轮播第3位和第4位
    • 6.1效果图
    • 6.2代码块

1、6位数码管前3位显示0

1.1效果图

1.2代码块

#include<reg52.h>// 头文件// 定义锁存器控制引脚sbit dula=P3^4;// 锁存器U2(段选)sbit wela=P1^6;// 锁存器U2(位选)// 主函数voidmain(){// 1.位选控制wela=1;// 打开位选P0=0xf8;// 位选3个数码管 1111 1000wela=0;// 关闭位选// 2.段选控制dula=1;// 打开段选P0=0x3f;// 数码管显示“0” 0011 1111dula=0;// 关闭段选// 3.保持while(1);}

2、6位数码管显示6个0

修改位选代码
P0=0xc0;// 位选6个数码管 1100 0000

2.1效果图

2.2代码块

#include<reg52.h>// 头文件// 定义锁存器控制引脚sbit dula=P3^4;// 锁存器U2(段选)sbit wela=P1^6;// 锁存器U2(位选)// 主函数voidmain(){// 1.位选控制wela=1;// 打开位选P0=0xc0;// 位选6个数码管 1100 0000wela=0;// 关闭位选// 2.段选控制dula=1;// 打开段选P0=0x3f;// 数码管显示“0” 0011 1111dula=0;// 关闭段选// 3.保持while(1);}

3、6位数码管显示6个9

修改段选代码
P0=0x6f; // 数码管显示“9” 0110 1111

3.1效果图

3.2代码块

#include<reg52.h>// 头文件// 定义锁存器控制引脚sbit dula=P3^4;// 锁存器U2(段选)sbit wela=P1^6;// 锁存器U2(位选)// 主函数voidmain(){// 1.位选控制wela=1;// 打开位选P0=0xc0;// 位选6个数码管 1100 1000wela=0;// 关闭位选// 2.段选控制dula=1;// 打开段选P0=0x6f;// 数码管显示“9” 0011 1111dula=0;// 关闭段选// 3.保持while(1);}

4、点亮第1位和第6位,显示数字7

4.1效果图

4.2代码块

#include<reg52.h>// 头文件// 定义锁存器控制引脚sbit dula=P3^4;// 锁存器U2(段选)sbit wela=P1^6;// 锁存器U2(位选)// 主函数voidmain(){// 1.位选控制wela=1;// 打开位选P0=0xde;// 位选3个数码管 1111 1000 这里f8改成了C0 1100 0000wela=0;// 关闭位选// 2.段选控制dula=1;// 打开段选P0=0x07;// 数码管显示“0” 0011 1111 原来是3F 显示1改为06 显示0改为3Fdula=0;// 关闭段选// 3.保持while(1);}

5、数码管轮播数字0-9

5.1效果图

5.2代码块

#include<reg52.h>// 头文件#defineucharunsignedchar#defineuintunsignedint// 定义锁存器控制引脚sbit dula=P3^4;// 锁存器U2(段选)sbit wela=P1^6;// 锁存器U3(位选)// 共阴极数码管段码表uchar code seg_code[]={0x3F,// 00x06,// 10x5B,// 20x4F,// 30x66,// 40x6D,// 50x7D,// 60x07,// 70x7F,// 80x6F// 9};// 延时函数voiddelay(uint ms){uint i,j;for(i=ms;i>0;i--)for(j=110;j>0;j--);}// 数码管展示函数(显示指定数字)voiddisplay_digit(uchar digit){dula=1;// 打开段选P0=seg_code[digit];// 发送数字对应的段码delay(1);// 短暂延时稳定信号dula=0;// 关闭段选}// 主函数voidmain(){uchar digit;// 先设置位选(只设置一次,让所有数码管都使能)wela=1;// 打开位选P0=0xc0;// 位选6个数码管 1100 0000(第1、2位亮?注意检查)wela=0;// 关闭位选while(1){// 轮流显示0到9for(digit=0;digit<10;digit++){display_digit(digit);// 显示当前数字delay(500);// 延时500ms,看清数字}}}

6、只轮播第3位和第4位

6.1效果图

6.2代码块

#include<reg52.h>// 头文件#defineucharunsignedchar#defineuintunsignedint// 定义锁存器控制引脚sbit dula=P3^4;// 锁存器U2(段选)sbit wela=P1^6;// 锁存器U3(位选)// 共阴极数码管段码表uchar code seg_code[]={0x3F,// 00x06,// 10x5B,// 20x4F,// 30x66,// 40x6D,// 50x7D,// 60x07,// 70x7F,// 80x6F// 9};// 延时函数voiddelay(uint ms){uint i,j;for(i=ms;i>0;i--)for(j=110;j>0;j--);}// 数码管展示函数(显示指定数字)voiddisplay_digit(uchar digit){dula=1;// 打开段选P0=seg_code[digit];// 发送数字对应的段码delay(1);// 短暂延时稳定信号dula=0;// 关闭段选}// 主函数voidmain(){uchar digit;// 先设置位选(只设置一次,让所有数码管都使能)wela=1;// 打开位选//P0=0xc0; // 位选6个数码管 1100 0000(第1、2位亮?注意检查)P0=0xf3;//1111 0011wela=0;// 关闭位选while(1){// 轮流显示0到9for(digit=0;digit<10;digit++){display_digit(digit);// 显示当前数字delay(500);// 延时500ms,看清数字}}}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询