首页 > 其他分享 >模板:4个数码管动态显示精简方法

模板:4个数码管动态显示精简方法

时间:2022-11-15 19:14:27浏览次数:36  
标签:P2 动态显示 P0 0X00 char 数码管 delay SMG 模板

示例:分秒表
原始方法:

查看代码
unsigned char SMG[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void disp(unsigned int j,k)
{
	P2=0XEF;        //P24数码管
	P0=SMG[j/10];
	delay(20);
	P0=0X00;
	P2=0XDF;        //P25数码管
	P0=SMG[j%10];
	delay(20);
	P0=0X00;
	P2=0XBF;        //P26数码管
	P0=SMG[k/10];    
	delay(20);
	P0=0X00;
	P2=0X7F;        //P27数码管
	P0=SMG[k%10];
	delay(20);
	P0=0X00;
}

 

精简方法:

查看代码
char Tube[]={0xEF,0XDF,0XBF,0x7F};		//P24 25 26 27
unsigned char SMG[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//分秒数码管上显示出来
void dispTime(char j,k)
{
	char t=0;
	char Time[4]={0};
   	 Time[0]=j/10;Time[1]=j%10;
	 Time[0]=k/10;Time[1]=k%10;
	for(t=0;t<4;t++){
		P2=Tube[t];
	    P0=SMG[Time[t]];
		delay(40);
		P0=0X00;
	}
}

对比我们可以发现 精简方法明显少了很多代码量 写熟了就好了。

示例:显示1234
原始方法:

查看代码
 #define UC unsigned char
UC SMG[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//函数3:数字1234
void num1234()
{
	P2=0XEF;    //P24显示
	P0=SMG[1];
	delay(40);
	P0=0X00;
	P2=0XDF;    //P25显示
	P0=SMG[2];    
	delay(40);
	P0=0X00;
	P2=0XBF;    //P26显示
	P0=SMG[3];
	delay(40);
	P0=0X00;
	P2=0X7F;    //P27显示
	P0=SMG[4];
	delay(40);
	P0=0X00;
}

 精简方法:

查看代码
 #define UC unsigned char
UC Tube[]={0XEF,0XDF,0XBF,0X7F};
UC Num[]={0x06,0x5b,0x4f,0x66};	 	//1234
//函数3:数字234
void num1234()
{
	UC N=0;
	for(N=0;N<4;N++){
	P2=Tube[N];
	P0=Num[N];
	delay(20);
	P0=0X00;
	}
}

 

标签:P2,动态显示,P0,0X00,char,数码管,delay,SMG,模板
From: https://www.cnblogs.com/YYZYCS/p/16893543.html

相关文章

  • 势能分块模板
    分块:把n分成sqrt(n)块,中间整体修改,2边暴力修改即可,修改,查询的复杂度为3sqr(n);比线段树好写一些?当然整体的修改的时候,有时候要用lz去处理, 和势能线段树......
  • Spring Boot 导出EXCEL模板以及导入EXCEL数据(阿里Easy Excel实战)
    SpringBoot导出EXCEL模板以及导入EXCEL数据(阿里EasyExcel实战)导入pom依赖编写导出模板@ApiOperation("导出xxx模板")@GetMapping("/downTemplates")public......
  • 错题记录:单片机4个数码管分秒表 关于定义数组的细节问题
    废话不多说先上代码:查看代码 //定时器0分,秒的计时计数voidtimer0()interrupt1{ staticunsignedintspeed,count=0; TH0=0XEE; TL0=0X00; count++; if(s......
  • vue源码分析-挂载流程和模板编译
    前面几节我们从newVue创建实例开始,介绍了创建实例时执行初始化流程中的重要两步,配置选项的资源合并,以及响应式系统的核心思想,数据代理。在合并章节,我们对Vue丰富的选项......
  • 二分模板
    二分是基础算法之一,常用于答案有单调性的题目,或者穷举会超时的题目intsearch(intl,intr){while(l+1<r){intmid=l+(r-l)>>1;//防溢......
  • 前后端同构和模板渲染的区别是什么呢?
    同构渲染前端与Node端渲染共同一套JavaScript代码Node端将数据预先请求并存储在HTML上Node端的React将ComponentDidMount生命周期以前的逻辑处理完成,并执行render方法......
  • pycharm如何自定义模板?
    按照上图箭头方向设置即可. ......
  • 算法基础:差分算法及模板应用
    ⭐写在前面的话:本系列文章旨在复习算法刷题中常用的基础算法与数据结构,配以详细的图例解释,总结相应的代码模板,同时结合例题以达到最佳的学习效果。本专栏面向算法零基础但有......
  • 常用模板
    快读inlineintread(){intx=0,f=1;charch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<1)+(......
  • 2211-13 flask模板
    第3章:模板在一般的Web程序里,访问一个地址通常会返回一个包含各类信息的HTML页面。因为我们的程序是动态的,页面中的某些信息需要根据不同的情况来进行调整,比如对登录......