中级会员
- 积分
- 346
- 金钱
- 346
- 注册时间
- 2011-12-28
- 在线时间
- 84 小时
|
发表于 2017-5-18 21:47:20
|
显示全部楼层
就是上面几位朋友说的那样
1: 共阴的 可以直接驱动
2:共阳的,外接三极管即可
3:如下 仅供参考
共阴:
//----数码管---------------
sbit SMG1 = P1^4; //数码管第一位定义
sbit SMG2 = P1^5; //数码管第二位定义
sbit SMG3 = P1^6; //数码管第三位定义
sbit SMG4 = P1^7; //数码管第四位定义
int table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x40}; //共阴极数码管段值
/******************************************************************************
* 名称: Set_Display()
* 功能: 数码管显示函数
* 输入: 无
* 输出: 无
* 说明:
******************************************************************************/
void Display(void)
{
unsigned char b1, b2;
b1=g_MotorNum/10;
b2=g_MotorNum%10;
if(FX == 0)
P0=0x71;//显示F
else
P0=0x79;
SMG1=0;
delayms(3);
SMG1=1;
P0=0x40;
SMG2=0; //显示--
delayms(3);
SMG2=1;
P0=table[b1];
SMG3=0; //显示十位
delayms(3);
SMG3=1;
P0=table[b2];
SMG4=0;
delayms(3); //显示个位
SMG4=1;
} |
|