专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

数码管动态显示

作者:李俊轩   来源:本站原创   点击数:  更新时间:2013年07月18日   【字体:

一天的坚持没有白费了,呵呵。又一个模块学会了,下午的时间利用了定时器编了一下数码管的动态显示程序,其实数码管动态就是使单片机不断地向数码管输送数据,使其速度极快地显示内容,当然极快是快到人的眼睛分辨不出来它在送数据时的间隙,下面我把程序编了人的眼睛看得分辨出来的效果和程序写出来一下。

程序如下:#include<reg52.h>
unsigned char wei[]={
     0x00,
     0x01,
     0x02,
     0x03,
     0x04,
     0x05,
     0x06,
     0x07
     };//数码管位的数据组
unsigned char duan[]={
     0x06,
     0x5b,
     0x4f,
     0x66,
     0x6d,
     0x7d,
     0x07
     };//数码管段的数据组
int x,y;
void main()
{int a=0;
TMOD |= 0x01;//打开单片机计时工作方式
TMOD &= 0xfd;
TH0 = (65536-5000)/256;//赋初值
TL0 = (65536-5000)%256;
TR0 = 1;//定时器打开
while(1)
{
if(TF0==1)
{
 TF0=0;
 TH0 = (65536-50000)/256;
 TL0 = (65536-50000)%256;
 a++;
 if(a==1)
 {
 a=0;

 P0 = wei[x];//位操作显示
 x++;
 if(x==7)
 x=0;

 P1 = duan[y];//段操作显示
 y++;
 if(y==7)
 y=0;
 }
}
}
}

在这里要声明一下,我的开发板是P0.0   ,P0 .1  P0.2控制位操作的。P1口控制段选内容的。

当然这个程序如果把时间调快一点的话,我们看到的是数码管显示1至7的内容了。这就是数码管动态显示。加油。努力。相信我行的。

关闭窗口

相关文章