学习目标:
用普中51单片机写一个八个数码管中选用任意相邻两个数码管,用来循环显示0-99之间的数据,数据显示间隔为0.5s。
学习内容:
随机数码管 00-99 循环0.5s 显示。
数码管是一种数字显示器件,它由多个发光二极管(LED)组成,可以显示数字、字母、符号等。数码管的原理是利用LED的发光特性,通过控制LED的亮灭来显示数字等信息。数码管通常有共阳极和共阴极两种类型,其中共阳极的数码管的所有LED的阳极都连接在一起,而共阴极的数码管的所有LED的阴极都连接在一起。在使用数码管时,需要根据具体的型号和类型来确定引脚的使用方式,一般来说,数码管的引脚包括电源引脚、控制引脚和数据引脚等。其中电源引脚用于连接电源,控制引脚用于控制数码管的亮灭和显示内容,数据引脚用于传输显示的数字等信息。在使用数码管时,需要根据具体的引脚定义和使用方式来进行连接和控制。
延时的方式完成:
简单用延时完成!文章来源:https://www.toymoban.com/news/detail-724703.html
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
};
void delay(uint z) {
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void led_q(int i)
{
int j;
for(j=0;j<2;j++)
{
LSA=0;
LSB=0;
LSC=0;
}
P0=table[i%10];
delay(10);
for(j=0;j<2;j++)
{
LSA=1;
LSB=0;
LSC=0;
}
P0=table[i/10];
delay(10);
P0 = 0x00;
}
void main()
{
uchar i=0,j=0;
while(1)
{
for(j=0;j<25;j++)
{
led_q(i);
}
i++;
if(i == 100)
i=0;
}
}
定时器的方式完成:
代码如下:文章来源地址https://www.toymoban.com/news/detail-724703.html
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
};
void delay(uint z) {
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void led_q(int i)
{
int j;
for(j=0;j<2;j++)
{
LSA=0;
LSB=0;
LSC=0;
}
P0=table[i%10];
delay(10);
for(j=0;j<2;j++)
{
LSA=1;
LSB=0;
LSC=0;
}
P0=table[i/10];
delay(10);
P0 = 0x00;
}
void main()
{
uchar i=0,j=0;
TMOD = 0x01; //设置定时器0为模式1
TH0 = 0xFC; //给定时器赋初值,定时1ms
TL0 = 0x67;
TR0 = 1; //启动定时器0
while(1)
{
if(TF0 == 1) //判断定时器是否溢出
{
TF0 = 0; //清除TF0标志
TH0 = 0xFC; //给定时器赋初值,定时1ms
TL0 = 0x67;
for(j=0;j<25;j++)
{
led_q(i);
}
i++;
if(i == 100)
i=0;
}
}
}
成功就是一把梯子,双手插在口袋的人是爬不上去的。
到了这里,关于【51单片机-数码管】:用51单片机写一个八个数码管中选用任意相邻两个数码管,用来循环显示0-99之间的数据,数据显示间隔为0.5s的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!