求:用单片机C语言编一位数码管的数字显示 要求可以从0变化到9

如题所述

//1位静态显示

#include<reg52.h>
#include<intrins.h>
//p0接数码管的A~H;

uchar led[]={0xA0,0xBD,0x64,0x2C,0x39, 0x2A, 0x22,0xBC,0x20,0x28};//0-9数字摸。
unsigned int dat;
main()
{while()
{
P0=led(dat);//显示dat变量,这里只能显示数字0~9;
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-07
//程序功能:000-999显示
//2012-
//作者:李超峰
//版本:VER:1.0
//=============================
#include <reg51.h>
sbit SEG=P1^5;
unsigned char SEGTAB[10]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
////////延时子函数////////////////////
void delay(int x)
{
int i,j;
for(i=0;i<x;i++)
for(j=0;j<120;j++);
}
///////////主函数部分///////////////////
main(void)
{
while(1)
{
int i;
for(i=0;i<9;i++)
{
SEG=0;
P0=SEGTAB[i];
delay(1000);
}
}

}本回答被提问者采纳
第2个回答  2013-01-03
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit wei=P1^0;
sbit duan=P1^1;
uchar num;
void delay(uint z);
char code table[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};

void main()
{
wei=1;
P3=0xfe;
while(1)
{

for (num=0;num<10;num++)
{ duan=1;
P2=table[num];
duan=0;

delay(500);
duan=1;
P2=table[num];
duan=0;
}

}

}
void delay(uint z)
{
uint x,y;
for(x=110;x>0;x--)
for(y=z;y>0;y--);
}

我感觉这个程序适合初学者简单易懂
第3个回答  2012-10-17
要有延时子函数,一楼的缺少延时子函数
0-9数字摸,这个跟数码管是共阴、共阳有关。
第4个回答  2012-10-23
#include <reg52.h>

#define uchar unsigned char
#define uint unsigned int
sbit sm1= P3^7;

unsigned char table1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 };

void delay_50ms(uint t)
{
uint k;
for(;t>0;t--)
for(k=0;k<6245;k++) ;

}
void main()
{

uchar i;

while(1)
{
for(i=0;i<10;i++)
{
P0=table1[i];
sm1=0;
delay_50ms(30);

}

}
}

求:用单片机C语言编一位数码管的数字显示 要求可以从0变化到9
{while(){ P0=led(dat);\/\/显示dat变量,这里只能显示数字0~9;} }

单片机数码管显示0到999c语言程序怎么编
TL0=(65535-50000)%256;s++;if(s>20){s=0; if(sz==1)time++; if(time>999){time=0;} if(sz==0){time=0;\/\/清零 }

单片机数码管如何从1显示到9
把 数码管的 1-9 的 对应的码算出来就好了 例如:#include <AT89X51.H>\/\/数字0-9的字形码unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};unsigned char dispcount;void delay02s(void);void main(void){ P1_0=0;\/\/选通第一位数码管 while(...

51单片机c语言设计,按键控制数码管,依次按下显示0到9循环
include<reg51.h> sbit k1=P1^0;define uint16 unsigned int define uchar unsigned char uchar code shuzu[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void delay(){ uint16 i=1000;while(i--);} void main(){ uchar n ;P2=0xfe;P1=0xff;while(1){ if...

51单片机c语言设计,按键控制数码管,依次按下显示0到9循环?
假设你的是共阳极数码管,P0接数码。按键接P2^0;include<reg52.h> typedef unsinged int uint;sbit key=P2^0;unsigned char tab[]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void denay(uint x){ uint i,j;for(i=x;i>0;i--)for(j=110;j>0;j--)} void main(){ u...

单片机汇编语言让数码管显示0到9
LOOP LJMP MAINDISPLAY: PUSH ACC MOVC A, @A+DPTR MOV P1, A POP ACC RETDELAY:DL1:DJNZ R6, DL1DL2:DJNZ R6, DL2 DJNZ R7, DL1 RETTABLE: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FHEND 再试试看。

单片机数码管从0到9的显示并循环的原理图
这个原理图很简单的。比如这个:

单片机汇编语言让数码管显示0到9
1、小建议,釆用STC的51芯片替代AT的,釆用595替代164。2、新建项目,做好准备。数码管段选表。延时函数。uchari;变量i;wk=1;打开位选,P0=0xf7;11110111第4位数码管显示,wk=0;关闭位选。while(1)\/\/死循环效果{}。3、数码管段选表。延时函数。uchari;变量i;wk=1;打开位选,P0=0x...

我想要实现单片机: 数码管每隔1s显示从0-9怎么实现? 全部代码。_百度知 ...
S1=1;P0=LED_Num[m];delay(1);S1=0; \/\/扫描显示位,稍作延时(对于单位数码管可直接置高置低,此为扫描的写法,单位不需要延时,不需要写for循环)} } void delay(uchar x) \/\/延时函数,防止数码管显示不稳定 { uchar k;while(x--)for(k=0;k<125;k++);} 这个是共阳极的,共阴...

单片机数字9到0显示程序代码?
这里给出一种基于Arduino平台的单片机数字0到9显示的程序代码,可供参考:c++ Copy code int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; \/\/定义LED引脚 int numPins[][7] = { \/\/定义数字0~9的LED点阵图形 {1, 1, 1, 1, 1, 1, 0}, \/\/0 {0, 1, 1, 0,...

相似回答