标题:
动态数码管
[打印本页]
作者:
人在江湖128
时间:
2017-12-18 13:02
标题:
动态数码管
这是我上个月做的动态数码管显示课程
里面包含51单片机源代码
请大家多多指导
#include "reg52.h"
#include "intrins.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
u8 code smgduan[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴 code 代码 编码
//void delay(u16 i)
//{
// while(i--);
//}
void DigDisplay()
{
static u8 j=0;
switch(j) //位选,选择点亮的数码管,
{
case(0):
LSA=0;LSB=0;LSC=0;j++; break;//显示第0位
case(1):
LSA=1;LSB=0;LSC=0;j++; break;//显示第1位
case(2):
LSA=0;LSB=1;LSC=0;j++; break;//显示第2位
case(3):
LSA=1;LSB=1;LSC=0;j++; break;//显示第3位
case(4):
LSA=0;LSB=0;LSC=1;j++; break;//显示第4位
case(5):
LSA=1;LSB=0;LSC=1;j++; break;//显示第5位
case(6):
LSA=0;LSB=1;LSC=1;j++; break;//显示第6位
case(7):
LSA=1;LSB=1;LSC=1;j=0; break;//显示第7位
}
}
void main()
{
u8 i;
u16 m;
while (1)
{
for(i=0;i<16;i++)
{
P0=smgduan[i];
for(m=0;m<30000;m++) //10000-50000
{
DigDisplay(); //数码管显示函数
}
}
// delay(500);//100-500
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1