永发信息网

51单片机 拉幕式数码显示程序和图

答案:1  悬赏:70  手机版
解决时间 2021-04-03 11:58
  • 提问者网友:像風在裏
  • 2021-04-02 14:43
51单片机 拉幕式数码显示程序和图
最佳答案
  • 五星知识达人网友:長槍戰八方
  • 2021-04-02 15:53
我根据你的原理图自己画了一个原理图,用你的代码编译仿真,没问题呀。
下面是我对你的代码做了优化和注释,你可以拿去参考。
#include
#define uchar unsigned char 
#define uint unsigned int
#define CI_MAX 3 //单个效果出现的次数的最大值
#define CNT_MAX 20 //移动速度,值越大速度越慢
#define SEG_PORT P0
#define COM_PORT P2 
uchar code duan[] = { 0, 0, 0, 0, 0, 0, 0, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0, 0, 0, 0, 0, 0, 0, 0 }; //低电平熄灭,高电平点亮
uchar code wei[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; //位扫描
uchar code sheet[5][8] = 
{
 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //________
 { 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06 }, //1______1
 { 0x5b, 0x06, 0x00, 0x00, 0x00, 0x00, 0x06, 0x5b }, //21____12
 { 0x4f, 0x5b, 0x06, 0x00, 0x00, 0x06, 0x5b, 0x4f }, //321__123
 { 0x66, 0x4f, 0x5b, 0x06, 0x06, 0x5b, 0x4f, 0x66 } //43211234
}; 
void delay( uint ms )
{
 uint t0, t1; 
 for ( t0 = ms; t0 > 0; t0-- )
  for ( t1 = 15; t1 > 0; t1-- );
}

void main()
{
 uint i, j, k, m;
 uint cnt, ci; //移动速度、单个效果出现的次数
 k = 10; 
 m = 7; 
 COM_PORT = 0x00;
 SEG_PORT = 0xFF;//数码管
 
 while ( 1 )
 {
  //效果1:数字1~8从右往左,一位一位移动出现,移动消失
  for ( ci = CI_MAX; ci > 0; ci-- )
  {
   for ( i = 0; i < 16; i++ )
   {
    for ( cnt = CNT_MAX; cnt > 0; cnt-- )
    {
     for ( j = 0; j < 8; j++ )
     {
      SEG_PORT = 0x00;//消隐 
      COM_PORT = wei[j]; 
      SEG_PORT = duan[j + i]; 
      delay( 20 );
     }
    }
   }
  }
/  
  //效果3:数字1~4,两边向中间,一位一位移动出现,移动消失
  for ( ci = CI_MAX; ci > 0; ci-- )
  {
   for ( i = 0; i < 4; i++ )
   {
    for ( cnt = CNT_MAX; cnt > 0; cnt-- )
    {
     for ( j = 0; j <= 7; j++ )
     {
      SEG_PORT = 0x00;//消隐 
      COM_PORT = wei[j]; 
      SEG_PORT = sheet[i][j]; 
      delay( 15 );
     }
    }
   }
  for ( i = 4; i > 0; i-- )
   {
    for ( cnt = CNT_MAX; cnt > 0; cnt-- )
    {
     for ( j = 0; j <= 7; j++ )
     {
      SEG_PORT = 0x00;//消隐 
      COM_PORT = wei[j]; 
      SEG_PORT = sheet[i][j]; 
      delay( 15 );
     }
    }
   } 
  }
  
//*/ 
 }
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯