📄 smg_buffwrite.c
字号:
#include "AT89X52.h"
#include "ES51_II.h"
#include "ES51_II_LIB.h"
// 数码管显示缓冲区;可直接操作此缓冲区控制数码管显示
extern unsigned char SMG_BUFF[4];
// 不带小数点
extern unsigned char code SMG_TABLE[16];
// 带小数点
extern unsigned char code SMG_TABLE_DP[16];
// 写数码管显示缓冲区,ASCII码,只允许写0~9;
// index: 修改缓冲区的起始地址,范围1~4;
// length: 修改的长度,范围1~4,根据索引值不同,取值范围不同;
// dp: 显示是否带小数点,0:不带小数点显示;1:带小数点显示;
// *dat: 为数据的首地址;
void SMGBuffWrite(unsigned char index,unsigned char length,bit dp,unsigned char *dat)
{
unsigned char *psmgbuff;
if( (index+length) < 6 ) // 判断是否会导致显示缓冲区溢出
{ // 若不会导致显示缓冲区溢出,写缓冲区;否则,放弃
psmgbuff = &SMG_BUFF[0]+(index-1);
for( ; length>0; length--,psmgbuff++,dat++)
{
if( dp == 0 ) // 不带小数点
*psmgbuff = SMG_TABLE[*dat-0x30];
else // 带小数点显示
*psmgbuff = SMG_TABLE_DP[*dat-0x30];
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -