首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >单片机补充案例--颤抖的数码管

单片机补充案例--颤抖的数码管

作者头像
zhangrelay
发布2021-03-03 15:10:02
发布2021-03-03 15:10:02
2540
举报

这是数码管模拟波形的动态效果,但是代码中有些小bug,眼尖的可以发现哦。

直接上代码,课题上讲过了:

代码语言:javascript
复制
/*****************************************************************************
 *                             头文件                                         *
 *****************************************************************************/
#include "8052.h"
#define LSA   P1_5  			
#define LSB   P1_6  			
#define LSC   P1_7
unsigned char smgduan0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
unsigned char smgduan1[]={0xfd,0xfb,0xf7,0xef,0xdf,0xfe};
unsigned char smgduan2[]={0xfb,0xf7,0xef,0xdf,0xfe,0xfd};
unsigned char smgduan3[]={0xf7,0xef,0xdf,0xfe,0xfd,0xfb};
//共阳极的显示代码表
/*****************************************************************************
 *                             初始化和功能函数                                *
 *****************************************************************************/
void delay(unsigned int ms)	//
{
  unsigned int x;
  unsigned int y;
  for(x=ms;x>0;x--)
	for(y=110;y>0;y--)
	  ;
}

void sys_init(void)
{
    LSA = 0;
    LSB = 0;
    LSC = 0; 
}
void LedScan(unsigned char pos,unsigned char dispcode)
{
    unsigned char i;
    for(i=0;i<=pos;i++)
    {		
	switch(pos)	                  //位选,选择点亮的数码管,
	{
		case(0):
		LSA=1;LSB=0;LSC=0; break; //显示
		case(1):
		LSA=0;LSB=1;LSC=0; break; //显示第1位
		case(2):
		LSA=1;LSB=1;LSC=0; break; //显示第2位
		case(3):
		LSA=0;LSB=0;LSC=1; break; //显示第3位
	}
	P0=dispcode;	                  //发送段码			
    }	
}
/*****************************************************************************
 *                             主函数                                         *
 *****************************************************************************/
void main(void)
{
    sys_init();
    int i=0,j=5;
    while(j--)
    {
        for(i=6;i>0;i--)
        {
            LedScan(0,smgduan0[i]);
            delay(10);
            LedScan(1,smgduan1[i]);
            delay(10);
            LedScan(2,smgduan2[i]);
            delay(10);
            LedScan(3,smgduan3[i]);
            delay(10);
        }       
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/12/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档