專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

單片機(jī)中斷定時程序的應(yīng)用

作者:李俊軒   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時間:2013年07月18日   【字體:

 學(xué)習(xí)進(jìn)度真的有點(diǎn)慢,我覺得也許我不應(yīng)該顧這顧那了,學(xué)習(xí)東西不能太“貪”,既學(xué)這方面的又學(xué)那方面的,學(xué)知識更要靠自己,自己為主,別人為輔。不能既學(xué)中斷,定時,計(jì)數(shù),又想著學(xué)數(shù)碼管,按鍵的控制,我想這樣只能讓我魚和熊掌兼失也。所以,李俊軒。好好的給自己定一個目標(biāo),然后努力吧,不要再撿了芝麻又丟了瓜了。

這是最近一直沒有寫日志的原因吧,最近學(xué)習(xí)的進(jìn)度感覺特別慢。哎。又是浪費(fèi)了一些天了,罪過罪過。

昨天楊老師給我布置的作業(yè)我想了好久都沒有做出來,哎,失敗,特別是那句更何況你是一個大學(xué)生,也許吧,我都沒有做到一個學(xué)生的樣,接下來的日子要好好努力了。至于13至27的顯示,我想我會完成的,再給自己點(diǎn)時間,在51hei看N次這課中斷http://www.torrancerestoration.com/mcuteach/234.html 后今天終于真正的把定時和中斷應(yīng)用和利用好了,做了幾個程序,都成功了,呵呵,下面把其中一個程序拿出來作點(diǎn)留念吧。畢竟學(xué)這方面的知識浪費(fèi)了自己不少時間,也許是自己努力還不夠吧,現(xiàn)在想來,定時中斷這些其實(shí)也挺簡單的,只是之前聽我們老師說,定時和中斷會了,你的單片機(jī)就上了一個臺階了。所以自己把定時中斷看得太高,太難學(xué)了。相信一句話:“一步一個腳印,堅(jiān)持必有奇跡”,但更要把一些困難看得低一點(diǎn),只要平時多思考,我相信我可以學(xué)好單片機(jī)的,雖然一個13至27現(xiàn)在把我難倒了,但我相信隨著我知識學(xué)習(xí)的深入,這不是什么大問題的。努力。

程序:#include<reg52.h>
int j=0;int i=0,a=0;
unsigned char number[10]={
      0xc0,
      0xf9,
      0xa4,
      0xb0,
      0x99,
      0x92,
      0x82,
      0xf8,
      0x80,
      0x90
      };
void delay()
{
 int x,y;
 for(x=1001;x>0;x--)
  for(y=120;y>0;y--);
}
void main()

 TMOD |= 0x10;
 TMOD &= 0xdf;
 TH1 = (65536-50000)/256;
 TL1 = (65536-50000)%256;
 ET1 = 1;
 EA = 1;
 TR1 = 1;
 while(1)
 {
  P2 =~(1<<j++);
   delay();
  if(j==8)
  j=0;
 }
}
void timer0() interrupt 3

 TH1 = (65536-50000)/256;
 TL1 = (65536-50000)%256;

 a++;
 if (a==40)
 { 
 a = 0;
 

 P0 = number[i];
 i++;
 if(i==10)
 i=0;
 
 }
}


 

程序是用P2口控制LED燈以1S速度做流水燈功能的,P0口是用定時中斷控制數(shù)碼管加1的。

關(guān)閉窗口

相關(guān)文章