PK200

首页 > 游戏资讯 > 正文

51单片机四位数码管动态显示程序,51单片机4位数码管显示程序

时间:2024-03-30 06:36:39

新年快乐。新年过后继续学习。

51单片机四位数码管动态显示程序,51单片机4位数码管显示程序

7段数码管由8个LED组成,其中7个细长LED显示0到9的数字和字母ABCDEF,1个圆形LED显示小数点。

类型分为共阳极和共阴极。

共阴极:LED的所有阴极连接在一起。 7SEG-MPX1-CC

共阳极:LED 的所有阴极连接在一起。 7SEG-MPX1-CA

用普通阴极数码管显示数字和字符

主意:

1. 1 字节为8 位。 P2端口P2^0到P2^7也是8位,可以控制8个LED灯的开/关。

使用工具软件生成7段数码管0-9、a-f的表格值。

//如果C语言中一行太长,则使用尾随作为换行符。这不会影响语句编译。 u8 a[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};//0-9,A-F

2.使用for循环将数组中的值赋值给P2口,延迟一段时间,动态显示

size=sizeof(a)/sizeof(a[0]);//计算数组元素个数while(1){for(num=0;num4位7段共阳极数码管运行时显示数字从1 到9999 个想法:

1.1-9999基本上由0到9的10个数字组成。四位数码管分别显示千位、百位、十位、个位。

2、采用PNP晶体管开关控制四个数码管的显示。数码管只在高电平下工作。

3、现实中只有一个数码管同时工作,但是10毫秒左右的延迟可以欺骗人的眼睛,以为有四个数码管同时工作。马苏。

#include#define u8 unsigned char#define u16 unsigned int#define LED P0sbit sw1=P2^0;//控制开关sbit sw2=P2^1;sbit sw3=P2^2;sbit sw4=P2^3;u8 a[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0-9void延时(u16毫秒);//延时函数void显示(u16数);//数字显示管上的数字void main(){u16 count=0; while(1){count++; //从1开始显示(count); if(10000==count) count=0; //计数时0设为10000 } }void display(u16 number){led=a[number/1000];//千个sw1=1;lay(9);sw1=0;led=a[(number/100)% 10];//个数百位sw2=1;lay(9);sw2=0;led=a[(number/10)%10];//十位个数sw3=1; delay(9); sw3=0;led=a[number %10];//个位数sw4=1;lay(9);sw4=0;}void Late(u16 ms){ u16 x,y; for(x=0;