51蓝桥数码管小数点处理

本文介绍了在STC15F2K60S2CT107D开发板上使用共阳数码管实现动态显示,支持小数点和特殊符号,包括代码示例和底层驱动函数,以及如何设置显示内容。
摘要由CSDN通过智能技术生成

@goal: 数码管的动态显示&小数点处理&特殊符号处理,附原理图见结尾


共阳码不带小数点(0-F),带小数点&0x7f即可:           {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};


  NIXIETUBE.C——数码管

/**************************************************************************
*@MCU :  STC15F2K60S2   CT107D开发板
*@pattern :IO模式
*@IRC  :12MHZ
*@Data : 2024/2/10
*@annotation :数码管为共阳数码管
*@function :实现动态显示数码管,小数点可选,且可显示特殊符号
***************************************************************************/
#include "MAIN.H"
u8 data Disp_Buff[] = {33,33,33,33,33,33,33,33,33}; //8位显示缓冲区,舍弃第0位                         
u8 code LED_Tab[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,   //0-F不带小数点
						    0xc0&0x7f,0xf9&0x7f,0xa4&0x7f,0xb0&0x7f,0x99&0x7f,0x92&0x7f,0x82&0x7f,0xf8&0x7f,0x80&0x7f,0x90&0x7f,0x88&0x7f,0x83&0x7f,0xc6&0x7f,0xa1&0x7f,0x86&0x7f,0x8e&0x7f,  //0-F带小数点
							0xBF,                          //第32位,特殊符号“中间一杠”
							0Xff                             //none
						}; 

//@role   :底层驱动数码管扫描函数
//@detail :居中断,建议2ms调用一次
void Display_Loop()
{
	static u8 i = 1;
	SWI_138(7);P0 = 0XFF;                                    //消影
	SWI_138(6);P0 = 0X01<< i-1 ;                          //数码管位选和扫描
	SWI_138(7);P0 = LED_Tab[Disp_Buff[i]];        //数码管位选和扫描
	i++;if(i==9)i=1;                                                   
}

//@role    :显示设置,修改缓冲区的参数
//@detail  :loc can be 1-8、num can be 0-9、point can be 0 or 1,point为小数点位,高电平有效
void Display_Set(u8 loc,num,point)
{
	if(point==1){Disp_Buff[loc] = num+16;}
	else Disp_Buff[loc] = num ;	 
}

										

测试程序调试现象如下: 9b630aec660041c4801a765cc48f8f14.jpeg


fae80e8eacf34284bc7d35fec7daca67.png

94c27ac5258f44f58ed54c7cc73d2c94.png

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值