找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机大佬们数码管和点阵怎么同时工作?

查看数: 4131 | 评论数: 2 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
hpf
发布时间: 2018-11-17 21:53

正文摘要:

大佬们,我是想让数码管显示2018,点阵显示0--9,请大佬们指教我该怎么改正 #include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int //uchar code DSY_CODE[]= ...

回复

ID:252816 发表于 2018-11-18 16:31
angmall 发表于 2018-11-18 09:45
你的程序有缺陷,给你改了一下,你试试。

非常感谢师兄,仿真后没有问题
ID:155507 发表于 2018-11-18 09:45
你的程序有缺陷,给你改了一下,你试试。


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

  5. //uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  6. uchar code DSY_CODE[]={0xa4,0xc0,0xf9,0x80};
  7. uchar code wei[]={0x80,0x40,0x20,0x10};
  8. unsigned char const xuehao[]={
  9.         0x00,0x00,0xFE,0x82,0x82,0x82,0xFE,0x00, //0
  10.         0x00,0x00,0x84,0x82,0xFF,0x80,0x80,0x00, //1
  11.         0x00,0x00,0xF2,0x92,0x92,0x92,0x9E,0x00, //2
  12.         0x00,0x00,0x92,0x92,0x92,0xFE,0x00,0x00, //3
  13.         0x00,0x20,0x30,0x28,0x24,0xFE,0x20,0x00, //4
  14.         0x00,0x00,0x9E,0x92,0x92,0x92,0xF2,0x00, //5
  15.         0x00,0x00,0xFE,0x92,0x92,0x92,0xF2,0x00, //6
  16.         0x00,0x00,0x00,0x02,0x02,0x02,0xFE,0x00, //7
  17.         0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00, //8
  18.         0x00,0x32,0x49,0x49,0x49,0x3e,0x00,0x00  //9
  19. };
  20. unsigned char code lie[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  21. void DelayMS(uint x)
  22. {
  23.         uchar t;
  24.         while(x--) for(t=0;t<120;t++);
  25. }
  26. /*
  27. void Timer1Init()
  28. {
  29.         TMOD|=0X10;//选择为定时器1模式,工作方式1,仅用TR1打开启动。

  30.         TH1=0XFC;        //给定时器赋初值,定时1ms
  31.         TL1=0X18;        
  32.         ET1=1;//打开定时器1中断允许
  33.         EA=1;//打开总中断
  34.         TR1=1;//打开定时器                        
  35. }
  36. */
  37. void main()
  38. {

  39.         uchar i;
  40.         uchar t,j,k;
  41.         //Timer1Init();  //定时器1初始化

  42.         while(1)
  43.         {
  44.                 //for(i=0;i<4;i++)
  45.                 //{

  46.                 //        DelayMS(10);
  47.                 //}
  48.                 for(t=0;t<10;t++)
  49.                 {
  50.                         for(j=0;j<30;j++)
  51.                         {
  52.                                 for(k=0;k<8;k++)
  53.                                 {
  54.                                         P2=lie[k];
  55.                                         P0=~xuehao[t*8+k];
  56.                                         DelayMS(2);
  57.                                         P3=0x00; //关闭显示
  58.                                         P1=DSY_CODE[ k/2]; //发送数字段码
  59.                                         P3=wei[ k/2];                          
  60.                                 }
  61.                         }
  62.                 }
  63.         }


  64. }
  65. /*
  66. void Timer1() interrupt 3
  67. {

  68.         TH1=0XFC;        //给定时器赋初值,定时1ms
  69.         TL1=0X18;


  70. }
  71. */

复制代码

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

Powered by 单片机教程网

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