亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5471|回復: 1
打印 上一主題 下一主題
收起左側

51單片機定時器0演示程序-與PCA計數的區別

[復制鏈接]
跳轉到指定樓層
樓主
ID:26188 發表于 2015-2-18 01:09 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
定時器與PCA計數的區別:
定時計數器從零或指定值自加到溢出后產生中斷,后自動或程序加載指定值到計數器,PCA有和定時器
相同的溢出中斷,但在多數情況下使用比較裝載值相等的方式產生中斷,比較產生中斷能根據設定狀態
,由硬件自動執行特定位翻轉或PWM
//數據類型定義
struct Times
{//定時器結構數據類型
unsigned int    Match;    //重裝值容器
unsigned int    Dou;      //擴展精度自加容器
unsigned int    Doub;     //擴展精度終點容器
}Times0;                  //結構變量名
==========================================================================================*/
void Times0_Setup()
{
//設定計數脈沖模式================
    //AUXR|= 0x80;   //定時器0工作在1T模式
    AUXR&= 0x7F;   //定時器0工作在12T模式
//設定工作方式====================
    TMOD&=0xF0;    //清除定時器0的所有狀態,隱含13位計數器
    //TMOD|=0x0C;    //使用外部中斷INT0做計數脈沖
    TMOD|=0x01;    //16位定時
    //TMOD|=0x02;    //8位自動重裝模式
    //TMOD|=0x03;    //雙8位定時
//裝入重裝值======================
//13位定時器
    //TL0 = Times0.Match;         //低8位裝載
    //TH0 = Times0.Match >> 5;    //高5位裝載
//16位軟件重裝定時器
    TL0 = Times0.Match;         //低8位裝載
    TH0 = Times0.Match >> 8;    //高8位裝載
//8位重裝定時器
    //TH0 = TL0 = Times0.Match;
//開始定時
    ET0=1;         //開定時器0中斷
    TR0=1;         //定時器0開始運行
    EA=1;          //開總中斷
}

//中斷函數()
void tm0_isr() interrupt 1 using 1
{
//16位模式需要軟件重裝
      TL0 = Times0.Match;
      TH0 = Times0.Match >> 8;
//Times0.Match是ms級,加入判斷Times0.Dou變量自減或自加可以達到秒或分鐘級
      if (Times0.Dou-- == 0)
      {//Dou自減,直到等于0
          Times0.Dou = Times0.Doub;    //Doub重裝
//=======================Times0事件做出處理=========================
//==================================================================
      }
}


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

使用道具 舉報

沙發
ID:91009 發表于 2015-9-24 22:40 | 只看該作者
先看看
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表