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

單片機(jī)輸出矩陣波實(shí)驗(yàn)

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2009年11月28日   【字體:

  這個(gè)程序的本意是輸出一個(gè)矩陣波,但是如果用單片機(jī)實(shí)驗(yàn)板來運(yùn)行的話就會(huì)發(fā)現(xiàn)似乎P1^1(即為第二個(gè)led管一直在發(fā)光),其實(shí)并不是程序有問題使得它一直在亮,而使通段的頻率對人眼睛來說太快了,根據(jù)視覺暫留,所以會(huì)覺得led一直在亮。我開始也是有此懷疑的,可以在程序里面修改使得通段的頻率變低,就可以看出來其實(shí)是一直在工作的。在注釋符號后面的程序就是更改后的;

#include<reg52.h>   
#define uint unsigned int
#define uchar unsigned char
sbit D1=P1^1;            //uint i=0;
void main()
{
  TMOD=0x01;
  TH0=(65536-50000)%256;
  TL0=(65536-5000)/256;
  EA=1;

  ET0=1;
  TR0=1;
  while(1)
    {
     while(TF0==0)       //if(TF0==0) i++;
       {                             //if(i==10)
    D1=~D1;                  //{  D1=~D1; }
       }
 }
}
void timer0() interrupt 1
{
    TH0=(65536-5000)/256;
    TL0=(65536-50000)%256;
}


更改后的程序變成了但計(jì)時(shí)器溢出十次,中斷運(yùn)行,即二十個(gè)溢出為此矩陣波的一個(gè)周期。

關(guān)閉窗口

相關(guān)文章