89C52单片机的共阴数码管怎么显示数字(c语言) 10
我想在任意一位能够显示任意一个数,能实现吗??要怎么写,我把这个程序作为一个调用程序,向大神求救!!!#include<reg52.h>#defineDataPortP0...
我想在任意一位能够显示任意一个数,能实现吗??要怎么写,我把这个程序作为一个调用程序,向大神求救!!!
#include<reg52.h>
#define DataPort P0
#define SegPort P2
unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char table[]={0,1,2,3,4,5,6,7,8,9};
unsigned char dofly_DuanMa[8]={0};
unsigned char dofly_WeiMa[]={0,1,2,3,4,5,6,7};
void Delay(unsigned int t);
void Code(unsigned char dofly_DuanMa[])
{
unsigned char i=0;
while(1)
{
SegPort=dofly_WeiMa[i];
DataPort=dofly_DuanMa[i];
Delay(200);
i++;
if(8==i)
i=0;
}
}
void Delay(unsigned int t)
{
while(--t);
}
而main程序关于这部分的程序是这样的
uint temp=0;
unsigned char dofly_DuanMa[8]={0};
unsigned char i=0,j=0;
temp=t;
for(i=0;i<8;i++)
{
for(j=0;j<10;j++)
{
if(table[j]==temp%10)
dofly_DuanMa[i]=tab[j];
}
temp=temp/10;
}
为什么烧到单片机里数码管没有任何反应???求大神救命!!! 展开
#include<reg52.h>
#define DataPort P0
#define SegPort P2
unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char table[]={0,1,2,3,4,5,6,7,8,9};
unsigned char dofly_DuanMa[8]={0};
unsigned char dofly_WeiMa[]={0,1,2,3,4,5,6,7};
void Delay(unsigned int t);
void Code(unsigned char dofly_DuanMa[])
{
unsigned char i=0;
while(1)
{
SegPort=dofly_WeiMa[i];
DataPort=dofly_DuanMa[i];
Delay(200);
i++;
if(8==i)
i=0;
}
}
void Delay(unsigned int t)
{
while(--t);
}
而main程序关于这部分的程序是这样的
uint temp=0;
unsigned char dofly_DuanMa[8]={0};
unsigned char i=0,j=0;
temp=t;
for(i=0;i<8;i++)
{
for(j=0;j<10;j++)
{
if(table[j]==temp%10)
dofly_DuanMa[i]=tab[j];
}
temp=temp/10;
}
为什么烧到单片机里数码管没有任何反应???求大神救命!!! 展开
展开全部
你这是全部的程序吗?怎么不见主程序main()的具体程序?你这程序就这么写的,怎么能编译通过呢?不编译,你又怎么把程序烧到单片机里的,那怎么可能有反应呢?
你确定void Code(unsigned char dofly_DuanMa[])
这个是子函数吗?在子函数中怎么可能有while(1)呢?
这都是什么呀?
你确定void Code(unsigned char dofly_DuanMa[])
这个是子函数吗?在子函数中怎么可能有while(1)呢?
这都是什么呀?
追问
谢谢批评呐,我其实那时候不知道while(1)一般只能在主程序中使用,这段程序说白了就是有两段程序功能可以,所以我拿来想连在一起用,毕竟只学了一点C的皮毛,这一块是从来都没有触碰到的。
非常感谢,我其实只是想问问我的逻辑有没有错误,就是我打算把一个任意数据放入一个数组,通过for循环一位一位输入,然后通过for再一位一位输出,这样可以让共阴数码管显示这个数据吗?
追答
就是用数码管显示几位数吗,很简单的事,书上,网上都有很多很多的例子,根本用不着什么
“通过for循环一位一位输入,然后通过for再一位一位输出”,又是什么呀?
真的是对这些不了解,还是先学习一下有关单片机的基础吧。
东莞市友贸实业有限公司_
2023-11-22 广告
2023-11-22 广告
第五代双倍数据速率DDR5双列直插式内存模块是一种高速、高性能的内存模块,适用于需要高带宽和低延迟的应用场景。与前几代内存模块相比,DDR5双列直插式内存模块具有更高的数据传输速率和更低的功耗,同时提供了更大的内存容量和更高的可靠性。在数据...
点击进入详情页
本回答由东莞市友贸实业有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询