您的位置 首页 系统

数码管1秒钟主动加1

看着里面的LED灯变幻莫测的样子,真的想自己编点东西会动一动的,呵呵,所以把今天学到的数码管动态显示再加以应用了,虽然这个程序搞了很

看着里边的LED灯变化多端的姿态,真的想自己编点东西会“动一动”的,呵呵,所以把今日学到的数码管动态显现再加以应用了,尽管这个程序搞了好久,但却成功了,呵呵,得出的结论是,一个成功是由很多的失利换来的,值!

下面是我编的一个程序,完成数码管在0至100之间,数码管以1秒的速度主动加1;程序如下:#include
unsigned char table[]= {//数码管数组显现内容
0x3f,
0x06,
0x5b,
0x4f,
0x66,
0x6d,
0x7d,
0x07,
0x7f,
0x6f
};
int shi,ge,bai,a;//界说变量
unsigned int temp=0;//给数码管赋初值
void timer1();//显现程序调用声明
void delay()//数码管位选守时约1MS
{
int i,j;
for(i=1;i>0;i–)
for(j=120;j>0;j–);
}
void main()
{
TMOD |= 0x10;//守时设置的翻开
TMOD &= 0xdf;
TH1 = (65536-50000)/256;
TL1 = (65536-50000)&256;
ET1 = 1;
TR1 = 1;
while(1)//完成位选和段选的操作及调用
{
bai=temp/100;
shi = temp%100/10;
ge = temp%10;
timer1();
P0 = 0x00;
P1 = table[bai];
delay();
P0 = 0x01;
P1 = table[shi];
delay();
P0 = 0x02;
P1 = table[ge];
delay();
}
}
void timer1() //段选内容,完成1S主动加1功用
{
if(TF1==1)
{
TF1=0;
TH1 = (65536-50000)/256;
TL1 = (65536-50000)&256;
a++;
if(a==20)
{
a=0;
temp++;
if(temp==100)
temp=0;
}
}
}

当然,仍是声明,我的开发板是由P0.1至P0.3操控位选的,由P1口操控段选内容的。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/xitong/318124.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部