找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1804|回复: 1
打印 上一主题 下一主题
收起左侧

这个是我学习别的大佬改的程序,8*8点阵里数字0从右到左滚动。我想问还有没有别的方法

[复制链接]
跳转到指定楼层
楼主
ID:716161 发表于 2020-4-2 22:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <STC12C5A60S2.H>

#include <intrins.h>
typedef unsigned int u16;
typedef unsigned char u8;
sbit DU = P2^0; //数码管段选
sbit WE = P2^1; //数码管位选
sbit CS88 = P2^2; //8X8点阵使能
sbit LCDEN=P2^5;
u8 code duan0[8][8]={{0x00,0x3C,0x42,0x42,0x42,0x3C,0x00,0x00},{0x3C,0x42,0x42,0x42,0x3C,0x00,0x00,0x00},
                     {0x42,0x42,0x42,0x3C,0x00,0x00,0x00,0x3C}, {0x42,0x42,0x3C,0x00,0x00,0x00,0x3C,0x42},
      {0x42,0x3C,0x00,0x00,0x00,0x3C,0x42,0x42},{0x3C,0x00,0x00,0x00,0x3C,0x42,0x42,0x42},
       {0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x3C},{0x00,0x00,0x3C,0x42,0x42,0x42,0x3C,0x00}};    //数字0的段选
      
u8 code wei[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};              //位选
void delay(u16 c)
{
u8 a,b;
    for(;c>0;c--)
        for(b=142;b>0;b--)
            for(a=2;a>0;a--);
}
void main()
{
  u8 i,j;
  u8 num;
  while(1)
  {
       for(i=0;i<8;i++)
       {
     num=40;
     while (num--)
     {
         for(j=0;j<8;j++)  
         {
      DU=1;
                     P0=duan0[i][j];//取显示数据
                  DU=0;
                  CS88=1;
                  P0=wei[j];  //取段码
                  CS88=0;
                  delay(10); //扫描间隙延时                                 
         }
     }   
     delay(100);
    }
  }
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:744201 发表于 2020-5-4 22:16 | 只看该作者
有没有仿真图
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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