久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3371|回復: 7
打印 上一主題 下一主題
收起左側(cè)

關(guān)于8051單片機芯片的計數(shù)器設置問題

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:648939 發(fā)表于 2019-12-11 12:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
中斷采用外部脈沖計數(shù),計數(shù)器1工作,我想設置收到脈沖400次后進入中斷,運行后發(fā)現(xiàn)最大只能設置255次,求幫忙解決。
代碼如下:
void Timer1Init()
{
        TMOD=0x60;  //設置定時器1,采用的是計數(shù)器0,工作模式1(M1=0,M0=1)                             
        TL1 =1;                //設置定時初值
        TH1 =1;     //設置定時重載值
        TF1 = 0;                        //清除TF1標志
        TR1 = 1;                        //定時器1開始計數(shù)
        EA=1;                        //開總中斷
        ET1=1;                        //開定時器1中斷   

}

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

使用道具 舉報

沙發(fā)
ID:94031 發(fā)表于 2019-12-11 14:02 | 只看該作者
你設置的是8位計數(shù)器,最大255,你可以設置16位計數(shù)器 TMOD=0x50;
回復

使用道具 舉報

板凳
ID:275826 發(fā)表于 2019-12-11 14:07 | 只看該作者
TMOD=0x60;改成TMOD=0x50;吧
回復

使用道具 舉報

地板
ID:235200 發(fā)表于 2019-12-11 14:10 | 只看該作者
TL1 =1;                //設置定時初值
TH1 =1;     //設置定時重載值
這兩條的初值應為0
要計數(shù)400次,要把TH1高8位和TL1低8位兩個8位寄存器的數(shù)據(jù)轉(zhuǎn)變?yōu)?6位的數(shù)據(jù)
如轉(zhuǎn)換結(jié)果存放count =(TH1<<8)+TL1,再用count來判斷是否400次
回復

使用道具 舉報

5#
ID:213173 發(fā)表于 2019-12-11 15:15 | 只看該作者
定時器被你設置為8位重裝,脈沖400次后進入中斷的初值也不對。所以最大只能設置255。示例如下:
  1. #include <reg51.h>

  2. sbit LED=P1^0;

  3. void InitTimer1(void)
  4. {
  5.         TMOD = 0x50;
  6.         TH1 = 0xFE;
  7.         TL1 = 0x70;
  8.         EA = 1;
  9.         ET1 = 1;
  10.         TR1 = 1;
  11. }

  12. void main(void)
  13. {
  14.         InitTimer1();
  15.         while(1);
  16. }

  17. void Timer1Interrupt(void) interrupt 3
  18. {
  19.         TH1 = 0xFE;
  20.         TL1 = 0x70;
  21.         LED=~LED;
  22. }
復制代碼

回復

使用道具 舉報

6#
ID:648939 發(fā)表于 2019-12-11 16:48 | 只看該作者
我現(xiàn)在設置成0x40可以計數(shù)到幾百了,就是不知道計數(shù)中斷的規(guī)則,設什么數(shù)字出什么結(jié)果。
void Timer1Init()
{
                TMOD=0x40;  //設置定時器1,采用的是計數(shù)器0,工作模式1(M1=0,M0=1)                             
        TL1 =8191;                //設置定時初值
        TH1 =8180;     //設置定時重載值
                TF1 = 0;                        //清除TF1標志
        TR1 = 1;                        //定時器1開始計數(shù)
        EA=1;                        //開總中斷
        ET1=1;                        //開定時器1中斷   

}
回復

使用道具 舉報

7#
ID:7485 發(fā)表于 2019-12-11 18:23 | 只看該作者
計數(shù)器計到65535就滿了,再加1就會溢出,就會產(chǎn)生中斷。65536減去你設定的初值就是你需要的次數(shù)。如65536-400就是你需要的初值。16進制就是FE6F,F(xiàn)E(254)是TH的初值,6F(111)是TL的初值。
回復

使用道具 舉報

8#
ID:213173 發(fā)表于 2019-12-12 09:00 | 只看該作者
t20ily 發(fā)表于 2019-12-11 16:48
我現(xiàn)在設置成0x40可以計數(shù)到幾百了,就是不知道計數(shù)中斷的規(guī)則,設什么數(shù)字出什么結(jié)果。
void Timer1Init( ...

你這樣設置TMOD=0x40;定時器是13位。參見5樓完整程序的回帖。
unsigned int X;//計數(shù)范圍0~65535
void InitTimer1(void)
{
        TMOD = 0x50;//T1模式1,外部計數(shù) 0101 0000
        TH1 = (65536-X)/256;//X=計數(shù)值
        TL1 = (65536-X)%256;//X=計數(shù)值
        EA = 1;
        ET1 = 1;
        TR1 = 1;
}
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品区二区三区日本 | 国产不卡一区 | 综合色播 | 久久婷婷av | 日本又色又爽又黄的大片 | 免费在线观看黄视频 | 欧美成人免费电影 | 久久久久久久久久久91 | 国产中文字幕在线观看 | av中文字幕在线观看 | 欧美一级黄带 | 91视视频在线观看入口直接观看 | 欧美日韩成人一区二区 | 国产精品久久久久久久久免费软件 | 国产a区| 精品国产欧美一区二区 | 国产高清久久 | 午夜小视频在线观看 | 一区二区三区四区五区在线视频 | 亚洲精品乱码久久久久久蜜桃91 | 一级毛片色一级 | 国产欧美在线播放 | av免费网站在线观看 | 久久久久久久国产 | 久草网址 | 日本三级电影在线观看视频 | 五月综合激情婷婷 | 日韩成人免费av | chinese中国真实乱对白 | 国产精品久久午夜夜伦鲁鲁 | 神马久久久久久久久久 | 天天综合操 | 日本黄色大片免费看 | www.中文字幕.com | 中文字幕一区在线观看视频 | 99精品在线 | 午夜视频一区 | 草久久 | 精品久久精品 | 精品日韩| 日韩午夜网站 |