C51单片机的数码管显示函数,便捷数码管段选
头文件及相关引脚的定义
#include<reg52.h>
#include<intrins.h>
sbit wei = P2^7;//位选
sbit duan = P2^6;//段选
数码管显示函数
void led_play(unsigned char place,unsigned char date)
{
wei=1;//开位选
P0=_crol_(0xfe,place);
/*将10000000左循环place位,即可打开第place个数码管,
所以place直接为0、1....6、7,即可,不用写麻烦的十六进制*/
wei=0;//关位选
duan=1;//开段选
P0=date;//数据
duan=0;//关段选
delay(3);//显示3ms,可自行调整
P0=0xff;//数码管消隐
}
``
在程序中如下使用即可
```c
void main()
{
while(1)
{//leddata是数码管显示的值对应的16进制码,下方给出
led_play(0,leddata[1]);//第一段数码管
led_play(1,leddata[2]);//第二段数码管
}
}
数码管显示的值对应的16进制码
```c
unsigned char code leddata[]={
0x3F, //"0"
0x06, //"1"
0x5B, //"2"
0x4F, //"3"
0x66, //"4"
0x6D, //"5"
0x7D, //"6"
0x07, //"7"
0x7F, //"8"
0x6F, //"9"
0x77, //"A"
0x7C, //"B"
0x39, //"C"
0x5E, //"D"
0x79, //"E"
0x71, //"F"
0x76, //"H"
0x38, //"L"
0x37, //"n"
0x3E, //"u"
0x73, //"P"
0x5C, //"o"
0x40, //"-"
};