微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 数码管动态显示

数码管动态显示

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

程序如下:#include
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;
}
}
}
}

在这里要声明一下,我的adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=17&is_app=0&jk=a8aafff7e2952a1c&k=%BF%AA%B7%A2%B0%E5&k0=%BF%AA%B7%A2%B0%E5&kdi0=0&luki=2&n=10&p=baidu&q=98059059_cpr&rb=0&rs=1&seller_id=1&sid=1c2a95e2f7ffaaa8&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1831118&u=http%3A%2F%2Fwww%2E51hei%2Ecom%2Fmcu%2F1999%2Ehtml&urlid=0" id="2_nwl" mpid="2" target="_blank">开发板是P0.0 ,P0 .1 P0.2控制位操作的。P1口控制段选内容的。

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top