找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

有朋友用过这种集成了74HC595的数码管模块吗

查看数: 2494 | 评论数: 13 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2023-10-29 18:25

正文摘要:

目前用的是单独74HC595模块+一个两位共阳数码管,实现的功能是: 按P2^0;                按键加1 按P2^1;                按 ...

回复

ID:1045846 发表于 2023-10-30 20:29
感谢各位老师的指导,就不一一感谢了。
附件是商家提供的例程,试了下是从0-9,一直循环。

上面老师提供的建议,我再来研究下,有结果了再回来报告。

559数码管模块资料.7z

1.23 MB, 下载次数: 13

ID:598611 发表于 2023-10-30 19:25
这不是一个8位串行输入、并行输出的位移缓存器吗
ID:996773 发表于 2023-10-30 15:06


这种595很好用,三线控制,串和并扩展可以很多,也算是显示类的编程技术起步敲门砖,

我开始收音机编程几天就熟练了。也就那一回事,一个使能拉低,时钟拉高,,大同小异
ID:213173 发表于 2023-10-30 11:04
这个数码管模块是用两块595用作静态显示。代码修改如下,如果显示的个位十位颠倒,就把代码个位十位调一下。
  1. #include <REG51.H>

  2. // LED字模表
  3. unsigned char LED_0F[17] = {
  4. 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
  5. 0x80, 0x90, 0x8C, 0xBF, 0xC6, 0xA1, 0x86, 0xFF, 0xbf};

  6. sbit DIO = P1^0;                                //串行数据输入
  7. sbit RCK = P1^1;                                //锁存
  8. sbit SCK = P1^2;                                //移位

  9. sbit BIT1 = P1^3;
  10. sbit BIT0 = P1^4;
  11.       
  12. sbit KEY_UP = P2^0;                          //按键加
  13. sbit KEY_DOWN = P2^1;                        //按键减
  14. sbit KEY_RESET = P2^2;                        //复位

  15. bit sign;
  16. unsigned char num=0;                          //上电初始值
  17. unsigned int count;

  18. void Delay(unsigned int xms)//@12.000MHz
  19. {
  20.         unsigned char i, j;
  21.         while(xms)
  22.         {
  23.                 i = 2;
  24.                 j = 239;
  25.                 do
  26.                 {
  27.                         while (--j);
  28.                 } while (--i);
  29.                 xms--;
  30.         }
  31. }

  32. void LED_OUT(unsigned char X, unsigned char bitd)
  33. {
  34.         unsigned char i;
  35.         if(bitd)
  36.         {
  37.                 BIT1=1;BIT0=0;
  38.         }
  39.         else
  40.         {
  41.                 BIT1=0;BIT0=1;
  42.         }
  43.         for(i=0;i<8;i++)
  44.         {
  45.                 X<<=1;
  46.                 DIO = CY;
  47.                 SCK = 1;
  48.                 SCK = 0;
  49.         }
  50.         RCK = 1;
  51.         RCK = 0;
  52. }

  53. void main(void)
  54. {
  55.         LED_OUT(LED_0F[num/10], 1);
  56.         LED_OUT(LED_0F[num%10], 0);
  57.         LED_OUT(LED_0F[num/10], 1);
  58.         LED_OUT(LED_0F[num%10], 0);
  59.         while(1)
  60.         {
  61.                 if(!KEY_UP || !KEY_DOWN || !KEY_RESET)
  62.                 {
  63.                         if(++count>=10 && sign==0)
  64.                         {
  65.                                 sign=1;
  66.                                 if(!KEY_UP && num<99)num++;
  67.                                 if(!KEY_DOWN && num>0)num--;
  68.                                 if(!KEY_RESET)num=0;
  69.                                 LED_OUT(LED_0F[num/10], 1);
  70.                                 LED_OUT(LED_0F[num%10], 0);
  71.                         }
  72.                 }
  73.                 else
  74.                 {
  75.                         sign=0;
  76.                         count=0;
  77.                 }
  78.                 Delay(1);
  79.         }
  80. }


复制代码

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

ID:1064915 发表于 2023-10-30 10:07
画出来段码位码的接线图,计算LED字模表
ID:1007932 发表于 2023-10-30 09:39
直接用他的LED字模表就行了,用的话就只管输入什么显示什么就行
自己做要看数码管共阴共阳,595的引脚分配
ID:213173 发表于 2023-10-30 09:25
需要知道模块电路的连接关系,或者从卖家提供的示例代码推断模块电路的连接关系才能正确编写驱动程序。
ID:712097 发表于 2023-10-30 08:41
//以下为4位数码管HC595测试程序,STC12系列单片机,供参考

51单片机_HC595_4位数码管模块测试程序.rar

34.92 KB, 下载次数: 11

ID:57657 发表于 2023-10-30 08:18
移位时钟数量=74HC595级联数量*8 不能多也不能少。
然后一个锁存时钟,先移高位后移低位,时钟上升沿触发。
ID:34149 发表于 2023-10-30 01:45
看段码,位码是不是和商家的一样。
ID:1063563 发表于 2023-10-29 21:51
595是串入并出方式
ID:161164 发表于 2023-10-29 21:23
先看看商铺提供的显示例程

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

Powered by 单片机教程网

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