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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

求教關(guān)于定時(shí)器的問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:38265 發(fā)表于 2013-10-14 17:41 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

請(qǐng)教一下各位,我做了一個(gè)倒計(jì)時(shí)的程序,用了兩個(gè)定時(shí)器,一個(gè)掃描數(shù)碼管一個(gè)計(jì)時(shí)。我想做當(dāng)分和秒都到0的時(shí)候蜂鳴器響1秒,可是程序做好以后別的都正常,就是蜂鳴器響的時(shí)候,數(shù)碼管就會(huì)全部熄滅,只有隨機(jī)一位數(shù)碼管顯示0,蜂鳴器停止后顯示才會(huì)恢復(fù)正常。請(qǐng)教一下各位這是什么情況?前段時(shí)間做了一個(gè)交通燈也是這樣,兩個(gè)定時(shí)器會(huì)互相影響。
這是定時(shí)器部分的程序:(麻煩大家?guī)兔匆幌履睦镉袉?wèn)題)
void time_T0() interrupt 1          //掃描數(shù)碼管
{
  TH0=0x47;                //定時(shí)器0重裝初值
  TL0=0x47;
  count++;
  if(count==3)
   {
     count=0;        
         P0=table[dispbuf[dis]];  //數(shù)碼管 段
         P2=tabwei[dis];                  //數(shù)碼管 位
         dis++;
         if(dis==8)
            dis=0;
   }
  dispbuf[0]=minute/10;        //顯示分十位         
  dispbuf[1]=minute%10;        //顯示分個(gè)位
  dispbuf[2]=second/10;        //顯示秒十位
  dispbuf[3]=second%10;        //顯示秒個(gè)位
}

void time_T1() interrupt 3          //計(jì)時(shí)
{
  TH1=0xdb;           //定時(shí)器1重裝初值
  TL1=0xff;
  time++;
  if(second==0&&minute==0)  //當(dāng)分和秒同時(shí)為0時(shí)
   {                              
         TR1=0;        //關(guān)閉定時(shí)器1
         minute=0;
         second=0;
         beep=0;        //蜂鳴器開(kāi)
         delayms(1000);        //延時(shí)1秒
         beep=1;         //蜂鳴器關(guān)
   }
  if(time==100)
   {
     time=0;  //time加到100歸零
         second--;        //秒減1
         if(second==-1)
          {                     
                second=59;        //秒減到0時(shí),重新回到59
                minute--;        //分減1                                 
          }
   }
  dispbuf[0]=minute/10;                 
  dispbuf[1]=minute%10;
  dispbuf[2]=second/10;
  dispbuf[3]=second%10;
  dispbuf[4]=num1/10;
  dispbuf[5]=num1%10;
  dispbuf[6]=num2/10;
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:27916 發(fā)表于 2013-10-14 21:07 | 只看該作者
delayms(1000);導(dǎo)致,這個(gè)函數(shù)寫(xiě)在了中斷里面,導(dǎo)致另一個(gè)中斷不能及時(shí)響應(yīng),建議中斷里面的程序盡量少、精簡(jiǎn)
你這個(gè)也可以通過(guò)修改中斷優(yōu)先級(jí)來(lái)決解,使T0中斷優(yōu)先級(jí)高于T1
回復(fù)

使用道具 舉報(bào)

板凳
ID:38265 發(fā)表于 2013-10-14 21:21 | 只看該作者
青蘋(píng)果 發(fā)表于 2013-10-14 21:07
delayms(1000);導(dǎo)致,這個(gè)函數(shù)寫(xiě)在了中斷里面,導(dǎo)致另一個(gè)中斷不能及時(shí)響應(yīng),建議中斷里面的程序盡量少、精 ...

謝謝指導(dǎo),還想問(wèn)一下
if(second==0&&minute==0)  //當(dāng)分和秒同時(shí)為0時(shí)
   {                             
         TR1=0;        //關(guān)閉定時(shí)器1
         minute=0;
         second=0;
         beep=0;        //蜂鳴器開(kāi)
         delayms(1000);        //延時(shí)1秒
         beep=1;         //蜂鳴器關(guān)
   }
這段程序如果不放在中斷里,放到主程序里也不能正常運(yùn)行時(shí)為什么呢?還有,怎么樣修改中斷優(yōu)先級(jí)呢?我剛開(kāi)始學(xué)習(xí)使用定時(shí)中斷,麻煩你了,謝謝!
回復(fù)

使用道具 舉報(bào)

地板
ID:38265 發(fā)表于 2013-10-14 21:38 | 只看該作者
青蘋(píng)果 發(fā)表于 2013-10-14 21:07
delayms(1000);導(dǎo)致,這個(gè)函數(shù)寫(xiě)在了中斷里面,導(dǎo)致另一個(gè)中斷不能及時(shí)響應(yīng),建議中斷里面的程序盡量少、精 ...

我知道了,設(shè)置PT0=1,把T0設(shè)為高級(jí)中斷,現(xiàn)在問(wèn)題解決了,謝謝你,非常感謝!!
回復(fù)

使用道具 舉報(bào)

5#
ID:27916 發(fā)表于 2013-10-15 09:03 | 只看該作者
放到主程序里,估計(jì)會(huì)一直叫個(gè)不停吧
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美一级片在线看 | 成人精品国产一区二区4080 | 精品网站999| 岛国视频 | 黑人巨大精品欧美黑白配亚洲 | 精品免费视频 | 精品一区二区免费视频 | 日韩综合在线 | 国产区在线视频 | 国产精品高潮呻吟久久久久 | 九九免费视频 | 夜夜骚| 欧美亚洲另类丝袜综合网动图 | 日本视频在线 | 国产精品久久久久久久久 | 国产精品网址 | 亚洲精品视频在线看 | 国产av毛片 | 欧美视频网 | 欧美日韩在线一区二区 | 黄一级| 毛片网在线观看 | 精品国产鲁一鲁一区二区张丽 | 欧美一级在线观看 | 婷婷久久一区 | 三级av在线 | 国产一区二区在线播放视频 | 黄一区二区三区 | 中文字幕一区二区三 | 欧美一区二区三区 | 亚洲精品一区二区三区蜜桃久 | 欧美日韩黄 | 在线播放国产一区二区三区 | 国产资源在线观看 | 午夜精品一区二区三区在线观看 | 欧美性久久 | 99久久中文字幕三级久久日本 | 国产一级特黄aaa大片评分 | 久久久男人的天堂 | 成人三级影院 | 欧美日韩在线一区二区三区 |