简介:
先位选再段选
搞清楚哪个口是控制位选的哪个口是控制段选的
例如本例中的P0口是控制位选的,P2口是控制段选的
利用人眼的视觉暂留,延时不能太长,且重复操作
本文将利用动态显示显示1000-9999的加一显示器
代码如下
#include<reg51.h>
#include <intrins.h>//包含移位标准库函数头文件#define uint unsigned int
#define uchar unsigned char
#define unint unsigned int
int wx[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};
uchar code duma[]= {0x3F, 0x06, 0x5B, 0x4F,
0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F,};
void delay(int time)
{int x,y;for(x=time;x>0;x–)for(y=56;y>0;y–);}
void display(int temp)
{int ge,shi,bai,qian;
ge=temp%10;
qian=temp/1000;
bai=(temp-qian1000)/100 ;
shi=(temp-qian1000-bai*100)/10;
P2 =0x1c;
P0 = duma[qian];
delay(10);
P2 =0x18;
P0=duma[bai];
delay(10);
P2 =0x14;
P0 =duma[shi];
delay(10);
P2=0x10;
P0 = duma[ge];
delay(10);
}
void main()
{int xx,num=1000;
while(1)
{if(num==10000)num=1000;

本文介绍了如何使用C51单片机通过动态显示技术来制作一个从1000到9999的加一计数器。通过控制P0口进行位选,P2口进行段选,并利用人眼视觉暂留效应,配合延迟函数实现数字滚动。代码中展示了具体的操作过程和关键函数。
最低0.47元/天 解锁文章
1605

被折叠的 条评论
为什么被折叠?



