找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2034|回复: 13
收起左侧

Proteus仿真我想要LED静态显示两个数字的话,该怎么连线?

[复制链接]
ID:1015298 发表于 2022-4-11 15:48 | 显示全部楼层 |阅读模式
在画电路图有点问题,来求助各位大佬
请问我想要LED静态显示两个数字的话,该怎么连线,怎么办
1.PNG
回复

使用道具 举报

ID:752974 发表于 2022-4-11 16:21 | 显示全部楼层
用LS164,UART方式0,教科书上的案例。
回复

使用道具 举报

ID:155507 发表于 2022-4-11 21:07 | 显示全部楼层

我给你来个试试

TwoDigitLED001.jpg

回复

使用道具 举报

ID:121859 发表于 2022-4-11 21:13 | 显示全部楼层
楼上的接线是一种方式,也可以用锁存器来控制。或者用595串转并控制,都可以实现静态显示。
回复

使用道具 举报

ID:155507 发表于 2022-4-11 23:14 | 显示全部楼层
用锁存器来控制。 TwoDigitLED002.jpg


或者用595串转并控制
TwoDigitLED003.jpg

回复

使用道具 举报

ID:624769 发表于 2022-4-12 00:03 | 显示全部楼层
静态显示, 先满足一个基本条件: 两个独立的数码管,
然后, 有各种连线方式都可以实现.
回复

使用道具 举报

ID:123289 发表于 2022-4-12 11:18 | 显示全部楼层
静态只能显示两个相同的数字。
方式:将两个LED的选位端,同是置成有效。
回复

使用道具 举报

ID:255077 发表于 2022-4-12 11:57 | 显示全部楼层
用273或者用595都可以
回复

使用道具 举报

ID:1015298 发表于 2022-4-12 12:34 | 显示全部楼层
谢谢各位,这就试试
回复

使用道具 举报

ID:1015298 发表于 2022-4-12 12:50 | 显示全部楼层
angmall 发表于 2022-4-11 21:07
我给你来个试试

你的显示程序能不能借我看一下
回复

使用道具 举报

ID:1015298 发表于 2022-4-12 12:53 | 显示全部楼层
        P3_0=0;         P3_1=1;
                                                        P0=led[set/10];       
                                                        delay(50)        ;                                       
                                                        P3_0=1;         P3_1=0;
                                                        P0=led1[set%10];               
                                                                        delay(50)        ;
回复

使用道具 举报

ID:1015298 发表于 2022-4-12 12:54 | 显示全部楼层
这是两位的程序,如果按照你们的两个数码管设计,程序该怎么写
回复

使用道具 举报

ID:155507 发表于 2022-4-12 14:13 | 显示全部楼层
图图秃头 发表于 2022-4-12 12:50
你的显示程序能不能借我看一下

程序分享出来给需要的人作参考

  1. #include <reg51.h>
  2. #include <stdio.h>
  3. #define uchar unsigned char
  4. #define uint  unsigned int

  5. uchar code duan_code[10]={        0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管段码表

  6. void delayms(uint x)                       //延时函数ms级
  7. {
  8.         uchar i;
  9.         while(x--)
  10.         for(i=0;i++;i<120);
  11. }

  12. void main(void)
  13. {
  14.         uchar i;

  15.         while (1)
  16.         {
  17.                 for (i=0;i<100;i++)
  18.                 {
  19.                         P0=duan_code[i/10];
  20.                         P2=duan_code[i%10];
  21.                         delayms(30000);
  22.                 }
  23.         }
  24. }

复制代码
回复

使用道具 举报

ID:1015298 发表于 2022-4-19 19:53 | 显示全部楼层
angmall 发表于 2022-4-12 14:13
程序分享出来给需要的人作参考


我开头是这么设定的         
        #include<math.h>
        #include <reg51.h>
        #define  uchar unsigned char
        #define  uint unsigned int
          char led[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
          char led1[]={0x3f,0x06,0x5b,0x4f,0xe66,0x6d,0x7d,0x07,0x7f,0x6f};
          sbit P3_7=P3^7;                        //加键
          sbit P3_6=P3^6;                   //减键
          sbit P3_1=P3^1;
          sbit P3_0=P3^0;
          sbit P3_4=P3^4;                 //模式选择(设置输出电压值模式or电压输出模式)         
          uchar set=50,tj=0;
          显示程序是这样的
        //显示两位数码管
                                                         
                                                                P3_0=0;         P3_1=1;
                                                        P0=led[set/10];        
                                                        delay(50)        ;                                       
                                                        P3_0=1;         P3_1=0;
                                                        P0=led1[set%10];               
                                                                        delay(50)        ;
如果想要两位都亮的话,怎么改
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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