找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

静态数码管和动态数码管用一块单片机不能同时驱动吗

查看数: 3107 | 评论数: 11 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-2-9 12:21

正文摘要:

一个非常简单的小程序,利用外部中断控制静态数码管和动态数码管轮流显示数字0~7,可是无论是实际下载到开发板还是用protues仿真都只有动态显示,无法切换到静态显示,代码也检查了许多遍,刚刚开始学51,不知道是不 ...

回复

ID:824490 发表于 2021-2-14 11:46

动态显示:
1、消隐(可选)
2、送第一个数码管位段码
3、送第一个数码管位选码
4、延时、消隐
5、送送第二个数码管位段码
6.7.8.9直到8个数码管全选完
ID:869650 发表于 2021-2-10 21:05
名字不是重点 发表于 2021-2-9 18:42
静态与动态的电路不一样的。你把电路上传,让大家帮你看看

图片现在上传了
ID:869650 发表于 2021-2-10 21:05
wulin 发表于 2021-2-9 22:34
改为静态数码管和动态数码管同时显示

嗯嗯,我去试了一下,可以,谢谢
ID:869650 发表于 2021-2-10 21:04
lovezjf234 发表于 2021-2-9 16:42
无图无真相,怎么连接也看不到,另就一个数码管显示,代码写的乱糟糟的,

图片现在上传了
ID:869650 发表于 2021-2-10 21:00
人人学会单片机 发表于 2021-2-9 16:36
多位数码管 都是动态的

是的            
ID:213173 发表于 2021-2-9 22:34
改为静态数码管和动态数码管同时显示





  1. #include <reg52.h>
  2. #define LED1 P1//静态数码管
  3. #define LED2 P0//动态数码管
  4. sbit c=P2^7;
  5. sbit b=P2^6;
  6. sbit a=P2^5;
  7. sbit k1=P3^2;
  8. sbit k2=P3^3;

  9. unsigned char code num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  10. unsigned char i,j,k;
  11. bit t;
  12. void delay(unsigned int time)
  13. {
  14.         unsigned int i,j;
  15.         for(i=0;i<time;i++)
  16.                 for(j=0;j<125;j++);
  17. }

  18. void main()
  19. {
  20.         while(1)
  21.         {        
  22.                 if(!k1||!k2)
  23.                 {
  24.                         if(++k>=10 && t==0)//消抖10ms
  25.                         {
  26.                                 t=1;
  27.                                 if(!k1 && j<9)
  28.                                         j++;
  29.                                 if(!k2 && j>0)
  30.                                         j--;
  31.                         }
  32.                 }
  33.                 else//松手
  34.                 {
  35.                         k=0;
  36.                         t=0;
  37.                 }
  38.                 LED1=num[j];//1位静态显示
  39.                 //8位动态显示
  40.                 LED2=0x00;        //消隐
  41.                 P2&=0x1f;        //位清0
  42.                 P2|=(i<<5);        //送位码
  43.                 LED2=num[i];//送段码
  44.                 i=++i%8;                //位计数
  45.                 delay(1);        //延时
  46.         }        
  47. }
复制代码



ID:332444 发表于 2021-2-9 22:15
ID:332444 发表于 2021-2-9 22:14
本帖最后由 xianfajushi 于 2021-2-10 07:20 编辑

看看下面连接内容
ID:824490 发表于 2021-2-9 18:42
静态与动态的电路不一样的。你把电路上传,让大家帮你看看
ID:739545 发表于 2021-2-9 16:42
无图无真相,怎么连接也看不到,另就一个数码管显示,代码写的乱糟糟的,
ID:390416 发表于 2021-2-9 16:36
多位数码管 都是动态的

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表