加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
7segfun.c 2.36 KB
一键复制 编辑 原始数据 按行查看 历史
dk鲁晓东 提交于 2019-12-20 13:05 . 四位数码管驱动
#include "7segfun.h"
#define Dataport P1
#define SeleWei P2 //选择的是低4位 最低位选个位
unsigned char code LED[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40,0x79};//符号+ - E
//{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0XBF,0X86}; //共阳 - E
//{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40,0x79}; //共阴 空 - E
unsigned char code wei[]={0xfe,0xfd,0xfb,0xf7};//低--高
unsigned char num[]={1,2,3,4},N;
void seg_delay(unsigned int k)
{for(;k>0;k--);}
void int2num(int x)
{ if(x>=0){
num[3]=x>999?(x/1000)%10:10;//
}
else
{ x=-x;
num[3]=11; // 负号的位置
}
num[2]=x>99?(x/100)%10:10;//
num[1]=x>9?(x/10)%10:10;//
num[0]= x%10;//
}
void Dispnum( int x)
{
unsigned char k;
int2num(x);
for(k=0;k<4;k++)
{ Dataport=0;//消隐共阴0x00,共阳0xff
SeleWei=wei[k];//个位先
Dataport=LED[num[k]];//;
seg_delay(200);
}
}
//排列num[3]num[2]num[1]num[0]
void Float2Num(float val)//
{
unsigned int tmp;
if(val>-99.9&&val<999.9)
{
if(val<0) //先确定最高位是否要符号的
{ num[3]=11;//符号负数
val=-val;
}
else
num[3]=10;
if(100.0<=val&&val<999.9) //xxx.x
{
N=1; // 小数点1位
tmp=(unsigned int)(val*10.0);//即倒数第二位
num[3]=tmp/1000;
}
if(10.0<=val&&val<100.0)//xx.xx
{
if(num[3]==10)
{N=2;// 小数点2位
tmp=(unsigned int)(val*100.0);
num[3]=tmp/1000;}
else
{N=1;
tmp=(unsigned int)(val*10.0);
}
}
if(0.0<=val&&val<10.0)//xx.xx
{
if(num[3]==10)
{N=2;// 小数点2位
tmp=(unsigned int)(val*100.0);
}
else
{N=2;
tmp=(unsigned int)(val*100.0);
}
}
num[2]=(tmp/100)%10;
num[1]=(tmp/10)%10;
num[0]=tmp%10;
}
else//超出了显示范围ERR
{
num[3]=10;// 空
num[2]=10; // 空
num[1]=12; // E
num[0]=0; //O
}
}
void Dispval(float x)
{
unsigned char k;
//ValtoNum(x);//
Float2Num(x);
for(k=0;k<4;k++)
{ Dataport=0x00;//消隐0X00共阴 、0xFF共阳
SeleWei=SeleWei|0x0f;
SeleWei=SeleWei&wei[k];//个位先 wei[]={0xf7,0xfb,0xfd,0xfe}
if(k==N)
Dataport=LED[num[k]]|0x80; //共阴
// Dataport=(LED[num[k]]&0x7F); //共阳
else
Dataport=LED[num[k]];
seg_delay(200);
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化