找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3851|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

奶爸業(yè)余單片機(jī)學(xué)習(xí)之:定時(shí)器使用方法——非中斷,TF0(TF1)值軟件重置法

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:65546 發(fā)表于 2014-8-29 08:42 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
http://www.cnblogs.com/czf-gd/p/3929456.html
============定時(shí)器使用方法——非中斷,TF值軟件重置法========

第一:設(shè)置特殊功能寄存器TMOD,配置好工作模式。
第二:設(shè)置計(jì)數(shù)寄存器TH0和TL0的初值。
第三:設(shè)置TCON,通過TR0置1來讓定時(shí)器開始計(jì)數(shù)。
第四:判斷TCON寄存器的TF0位,監(jiān)測定時(shí)器溢出情況。


實(shí)例:
//LED由三極管及73HC138控制
//用定時(shí)器0實(shí)現(xiàn)亮與滅之間的1秒時(shí)
# include <reg52.h>
sbit led2 = P0^0;
sbit addr0 = P1^0;
sbit addr1 = P1^1;
sbit addr2 = P1^2;
sbit addr3 = P1^3;
sbit enled1 = P1^4;
int main()
{
  unsigned char time0 = 0;
  addr0 = 0, addr1= 1, addr2 = 1,addr3 = 1, enled1 = 0; //38譯碼器控制led2時(shí)的I/O狀態(tài)(根據(jù)譯碼器真值表)
  led2 = 0;//先點(diǎn)亮LED2

  TR0 = 1;//啟動(dòng)定時(shí)器0
  TMOD = 0x01;//定時(shí)器0、工作方式1
  TH0 = 0xB8;TL0 = 0x00;//已20ms定時(shí)時(shí),裝入的初值
  TF0 = 0;//單片機(jī)上電后,TF0/1默認(rèn)為0,因此此步可省略。

  while(1)//主程序大循環(huán)
  {
    if(TF0 == 1)//判斷TF0是否為1(溢出),若溢出則執(zhí)行if內(nèi)語句
    {
      TF0 = 0;//TF0軟件重置
      TH0 = 0xB8;TL0 = 0x00;//給定時(shí)器0存儲寄存器裝入計(jì)數(shù)值為20ms時(shí)的初值(初值=65536-計(jì)數(shù)值)
      time0++;//TF0每溢出一次(20ms),變量time0加1,
      if(time0 >= 50)        //當(dāng)time0從0變50時(shí),則1秒時(shí)間已到
      {
        time0 = 0;//time0清零,重新計(jì)數(shù)
        led2 = ~led2;//led2取反,實(shí)現(xiàn)亮滅之間1秒變化
      }
    }
  }
  return 0;
}


評分

參與人數(shù) 1威望 +45 黑幣 +45 收起 理由
admin + 45 + 45 共享資料的積分獎(jiǎng)勵(lì),,希望大家多多發(fā)布

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2014-8-29 18:34 | 只看該作者
很好 適合初學(xué)者
回復(fù)

使用道具 舉報(bào)

板凳
ID:65546 發(fā)表于 2014-8-29 22:27 | 只看該作者
admin 發(fā)表于 2014-8-29 18:34
很好 適合初學(xué)者

謝謝管理員鼓勵(lì)!
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表