这是静态数码管最后一位的显示
#include<reg51.h>
typedef unsigned char u8;
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void main()
{
LSA=1;
LSB=0;
LSC=0;
P0=smgduan[8];
while(1);
}
// 单片机数码管动态显示学号1830508(注多位数码管用静态显示电路会很复杂,所以一般多用动态显示),方法有多种,下面是一个仿真例程可以参考。
#include<reg51.h>
#define uchar unsigned char
// 此表为 LED 的字模 0 1 2 3 4 5 6 7 8 9 a b c d e f
unsigned char code LED7Code[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
void delay(uchar z)
{
uchar i,j;
for(i=0;i<120;i++)
for(j=0;j<z;j++);
}
void main()
{
while(1)
{
P0=0xff;
P2=LED7Code[0];
P0=0xfe;
delay(5);
P0=0xff;
P2=LED7Code[1];
P0=0xfd;
delay(5);
P0=0xff;
P2=LED7Code[8];
P0=0xfb;
delay(5);
P0=0xff;
P2=LED7Code[3];
P0=0xf7;
delay(5);
P0=0xff;
P2=LED7Code[0];
P0=0xef;
delay(5);
P0=0xff;
P2=LED7Code[5];
P0=0xdf;
delay(5);
P0=0xff;
P2=LED7Code[0];
P0=0xbf;
delay(5);
P0=0xff;
P2=LED7Code[8];
P0=0x7f;
delay(5);
}
}
那稍微说下怎么写这个呗
追答问你是开发板和电路,却不回答,就不能发程序代码吗?
是你要程序,却又不愿意做一点事,就该别人为你做事吗?
追问其实我只是想要问下思路,我现在还没学这个,只是提前在自学而已,不是很懂才问的,是要发手打的代码吗,等一下,麻烦了
追答看你的程序,应该是8位共阴数码管动态扫描显示电路,只不过是你只显示了一个。
程序如下
#include<reg51.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
u8 num[]={1,8,3,0,5,0,8};//显示的学号
void delay(u8 x)
{
u16 j;
while(x--)
for(j=1000;j>0;j--);
}
void main()
{
u8 j;
P0=smgduan[num[j]];
LSA=0;
LSB=0;
LSC=0;
while(1)
{
for(j=0;j<7;j++)
{
P0=smgduan[num[j]];//显示7个学号
delay(50);//延时
}
}
}
仿真结果
手机APP有问题,在追答里看不全程序,用电脑上网看程序吧
本回答被提问者和网友采纳