欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

數碼管1秒鐘自動加1

作者:李俊軒   來源:本站原創   點擊數:  更新時間:2013年07月18日   【字體:

今晚注定是個無眠之夜,人需要有一種信念,并為之努力,如果能夠這樣的話,我想再大的困難也不是什么困難了,今天晚上看了亞運會開幕式,除了感嘆國家進步,作為一個廣東人,也很驕傲以外,我更看重的是晚會上的場景,幾乎百分之七十(這個數字是比較保守的估計)以上都使用到了LED燈技術,看完以后很興奮,不僅感概當初沒有選錯專業,這不正是我們電子類的東西嗎?很多東西都要用到電子,我們的世界,因為有了電子,有了單片機,而讓我們的生活變得豐富多彩了。

看著里面的LED燈變幻莫測的樣子,真的想自己編點東西會“動一動”的,呵呵,所以把今天學到的數碼管動態顯示再加以應用了,雖然這個程序搞了很久,但卻成功了,呵呵,得出的結論是,一個成功是由無數的失敗換來的,值!

下面是我編的一個程序,實現數碼管在0至100之間,數碼管以1秒的速度自動加1;程序如下:#include<reg52.h>
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口控制段選內容的。

關閉窗口

相關文章