四段共阴数码管从00到99的按键C语言程序
答案:4 悬赏:40 手机版
解决时间 2021-11-18 22:36
- 提问者网友:且恨且铭记
- 2021-11-18 04:35
四段共阴数码管从00到99的按键C语言程序
最佳答案
- 五星知识达人网友:七十二街
- 2021-11-18 05:51
#include
sbit wei1=P3^0;
sbit wei2=P3^1;
unsigned char code DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9
unsigned char Data[8]; //存储显示值的全局变量
void Delay(unsigned int t); //函数声明
main()
{
unsigned char num=0;
unsigned int j;
while(1)
{
Data[1]=DuanMa[num/10];
Data[0]=DuanMa[num%10];
num++;
if(num==100) //用于显示0~99
num=0;
for(j=0;j<5;j++)
{ wei1=0;
wei2=1;
P2=Data[1];
Delay(5000);
wei1=1;
wei2=0;
P2=Data[0];
Delay(5000);
}
}
}
void Delay(unsigned int t)
{
while(--t);
}
用的共阴极数码管,p2口接数码管数据输入端,p3.0和p3.1接使能端
sbit wei1=P3^0;
sbit wei2=P3^1;
unsigned char code DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9
unsigned char Data[8]; //存储显示值的全局变量
void Delay(unsigned int t); //函数声明
main()
{
unsigned char num=0;
unsigned int j;
while(1)
{
Data[1]=DuanMa[num/10];
Data[0]=DuanMa[num%10];
num++;
if(num==100) //用于显示0~99
num=0;
for(j=0;j<5;j++)
{ wei1=0;
wei2=1;
P2=Data[1];
Delay(5000);
wei1=1;
wei2=0;
P2=Data[0];
Delay(5000);
}
}
}
void Delay(unsigned int t)
{
while(--t);
}
用的共阴极数码管,p2口接数码管数据输入端,p3.0和p3.1接使能端
全部回答
- 1楼网友:动情书生
- 2021-11-18 07:43
还是自己慢慢编吧,不要什么都要别人给,是给自己学知识呢
- 2楼网友:躲不过心动
- 2021-11-18 06:56
题目的要求,没有说清楚。
- 3楼网友:轻熟杀无赦
- 2021-11-18 06:25
不知道你要不要用按键,我编了下面一个程序,Proteus仿真通过了,循环显示从00-99
#include
#define uchar unsigned char
sbit wei1=P2^0;
sbit wei2=P2^1;
sbit wei3=P2^2;
sbit wei4=P2^3;
uchar code dulatab[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f}; //数字编码0-9
uchar code welatab[]={0xf7,0xfb,0xfd,0xfe};//位控制字
void delay(uchar time)
{
uchar i,j;
for(i=0;i {
for(j=0;j<110;j++)
;
}
}
void writeled(uchar num,uchar addr)
{
//关显示
P2=0xff;
//送数据
P0=dulatab[num];
//开显示
P2=welatab[addr];
delay(4);
}
void display(uchar num)
{
uchar x,y;
x=num/10;
y=num%10;
writeled(x,1);
writeled(y,0);
}
void main()
{
uchar number,i;
while(1)
{
number++;
if(number==100)
{
number=0;
}
i=80;
while(i--)
{
display(number);
}
}
}
#include
#define uchar unsigned char
sbit wei1=P2^0;
sbit wei2=P2^1;
sbit wei3=P2^2;
sbit wei4=P2^3;
uchar code dulatab[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f}; //数字编码0-9
uchar code welatab[]={0xf7,0xfb,0xfd,0xfe};//位控制字
void delay(uchar time)
{
uchar i,j;
for(i=0;i {
for(j=0;j<110;j++)
;
}
}
void writeled(uchar num,uchar addr)
{
//关显示
P2=0xff;
//送数据
P0=dulatab[num];
//开显示
P2=welatab[addr];
delay(4);
}
void display(uchar num)
{
uchar x,y;
x=num/10;
y=num%10;
writeled(x,1);
writeled(y,0);
}
void main()
{
uchar number,i;
while(1)
{
number++;
if(number==100)
{
number=0;
}
i=80;
while(i--)
{
display(number);
}
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯