173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

单片机数码管显示0到60

htxw 2023-03-15 资讯中心 26 ℃

用keil写51单片机数码管由0到60的程序,急,谢谢

#includereg51.h

#define uchar unsigned char

uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};

void delay(int a)

{

while(a--);

}

main()

{

uchar i;

while(1)

{

P2=table[i/10];

P3=table[i%10];

i++;

i%=61;

delay(60000);

}

}

用C语言编程,使51单片机数码管从0显示到60

#include REGX52.H

#includeintrins.h

#define uchar unsigned char

#define uint unsigned int

#define DataPort P0

#define RS_CLR RS = 0

#define RS_SET RS = 1

#define RW_CLR RW = 0

#define RW_SET RW = 1

#define EN_CLR EN = 0

#define EN_SET EN = 1

sbit RS = P1^3; //定义端口

sbit RW = P1^4;

sbit EN = P1^5;

sbit wx = P2^6;

sbit dx = P2^7;

sbit beep = P2^2;

unsigned char code table[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71};

/*

* 功 能:延时,若干毫秒

* 参 数:毫秒数

* 返回值:无

*/

void DelayMs(unsigned int i) //一个延时函数,这个函数在11.0592M晶振下的延时时间大概为1ms

{

unsigned int j,k;

for(j=i; j0; j--)

for(k=114; k0; k--);

}

/*

* 功 能:延时

* 参 数:延时的数量

* 返回值:无

*/

void delay(uint x)

{

uint a,b;

for(a=x; a0; a--)

for(b=10; b0; b--);

}

/*

* 功 能:显示计时的秒数

* 参 数:无

* 返回值:无

*/

void display(uchar d2, uchar d1)

{

P0 = table[d2];

dx = 1;

dx = 0;

P0 = 0xfe;

wx = 1;

wx = 0;

delay(5);

P0 = table[d1];

dx = 1;

dx = 0;

P0 = 0xfd;

wx = 1;

wx = 0;

delay(5);

}

void main()

{

uchar i, second=0, d1, d2, dat=0xFF;

while(1)

{

DelayMs(1000);

second++;

dat--;

P1 = dat;

if(second == 60)

{

second = 0;

}

d2 = second / 10;

d1 = second % 10;

for(i=50; i0; i--)

{

display(d2, d1);

}

}

}

单片机两个一位数码管,要实现0到60显示,然后灯闪,之后从60倒回00,且在03时两十数码管闪烁,

程序如下

#includereg51.h

sbit led=P3^0;

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

void delay()

{

unsigned int j;

for(j=20000;j0;j--);//修改j 的初值,可改变计数的速度

}

void main()

{

char n,x=1;//先加法计数

while(1)

{

P0=tab[n/10];//显示十位

P2=tab[n%10];//显示个位

if(x==-1)

led=!led;//从60倒回00时.灯闪

delay();

n+=x;

if(n=60)//要实现0到60显示

x=-1;//减法计数

if(n==0)//60倒回00

x=1;//加法计数

}

}

仿真图如下

如何把以下程序改成用单片机控制两个数码管显示00-60?

用单片机控制两个数码管显示00-60,这比较容易,用两位一体共阳数码管,用P0口输出段码管,用P2.0和P2.1控制位选端。用延时实现00-60循环显示,仿真图如下所示。

单片机数码管显示0到60的介绍就聊到这里吧,感谢您花时间阅读,谢谢。

本文标签:单片机数码管显示0到60

<