找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

关于总线驱动数码管问题

查看数: 3350 | 评论数: 8 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-3-21 20:31

正文摘要:

为什么用总线方式不能驱动数码管?请内行人指导下,程序如下: #include <intrins.h> #include <absacc.h> #define uchar unsigned char #define uint unsigned int #define Lcd_com0   XB ...

回复

ID:275826 发表于 2021-3-22 16:02
xianfajushi 发表于 2021-3-22 15:26
锁存器用于存储段值或存储位值道理都是一样的,所以2个电路图都可以实现.

想用总线驱动方式,程序会简单很多
ID:332444 发表于 2021-3-22 15:26
锁存器用于存储段值或存储位值道理都是一样的,所以2个电路图都可以实现.
ID:275826 发表于 2021-3-22 11:49
wulin 发表于 2021-3-22 06:24
楼主的硬件电路和软件的设计都有问题,按楼主的意图修改如下:

谢谢。我希望采用总线扩展形式驱动,你这个好像是端口分时驱动方式。但还是谢谢你
ID:213173 发表于 2021-3-22 06:24

楼主的硬件电路和软件的设计都有问题,按楼主的意图修改如下:


  1. #include <AT89X52.H>
  2. #include <intrins.h>
  3. #include <absacc.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int

  6. #define Lcd_com   P0
  7. //#define Lcd_com0   XBYTE[0xfff8]
  8. //#define Lcd_com1   XBYTE[0xfff9]
  9. //#define Lcd_com2   XBYTE[0xfffA]
  10. //#define Lcd_com3   XBYTE[0xfffB]
  11. //#define Lcd_com4   XBYTE[0xfffC]
  12. //#define Lcd_com5   XBYTE[0xfffD]
  13. //#define Lcd_com6   XBYTE[0xfffE]
  14. //#define Lcd_com7   XBYTE[0xfffF]

  15. sbit led =P1^0;
  16. sbit wela=P1^1;                        //位
  17. sbit dula=P1^2;                        //段

  18. bit flag_2ms;

  19. uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

  20. void T0int(void)
  21. {
  22.         TMOD=0X01;
  23.         TH0=(65536-2000)/256;
  24.         TL0=(65536-2000)%256;
  25.         EA=ET0=TR0=1;
  26. }

  27. void T0sev(void) interrupt 1
  28. {
  29.         TH0=(65536-2000)/256;
  30.         TL0=(65536-2000)%256;
  31.         flag_2ms=1;
  32. }

  33. void display(void)
  34. {
  35.         static uchar k;
  36.         wela=0;
  37.         Lcd_com=DSY_CODE[k];
  38.         dula=1;
  39.         dula=0;
  40.         Lcd_com=k;
  41.         wela=1;
  42.         k=++k%8;
  43. }

  44. void main(void)
  45. {
  46.         uint cnt;
  47.         T0int();
  48.         while(1)
  49.         {  
  50.                 if(flag_2ms)
  51.                 {
  52.                         flag_2ms=0;
  53.                         display();
  54.                         if(++cnt>200)
  55.                         {
  56.                                 led=!led;
  57.                                 cnt=0;
  58.                         }
  59.                 }
  60.         }
  61. }
复制代码



ID:275826 发表于 2021-3-21 22:00
51hei团团 发表于 2021-3-21 20:53
缺电路图 无法分析吧?有大神能猜测出这是用的什么驱动芯片吗?

你好,就是74373和74138
ID:328014 发表于 2021-3-21 20:53
缺电路图 无法分析吧?有大神能猜测出这是用的什么驱动芯片吗?

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

Powered by 单片机教程网

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