欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

12M,89C52單片機,1602顯示,定時器倒計時兩種時間單位問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:693676 發表于 2020-4-5 16:42 來自觸屏版 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
請問各位大神,我用一個定時器1,按鍵設置倒計時一段時間,時間單位是秒,時間到繼電器斷開;繼電器一斷馬上倒計時另一段時間,時間單位是豪秒,時間到繼電器吸合。請問樣子思路可行嗎,我寫了定時器1程序,但是仿真只會倒計時一段時間,后面不會倒計時了,我是初學者,寫的程序很簡單,請單片機大神幫幫忙
/*------------------------------------------------
                 定時器1中斷子程序
------------------------------------------------*/
void Timer1_isr(void) interrupt 3
{
  TH1=(65536-50000)/256;//定時器裝初值
  TL0=(65536-50000)%256;
          count++; //中斷次數累加
        if(count==20) //20次50毫秒為1秒
        {
                count=0;
                Pon--;                // 單片機工作默認繼電器閉合,Pon上電時間倒計時,單位秒
                write_twodate(9,Pon);        //變化送到LCD顯示
        }
        if(Pon==0)
        {
         JDQ=0;                  //繼電器斷開
         count++;                   //繼電器斷電后,Poff掉電時間倒計時
        }
        if(count==1)         //1次為1毫秒,這里是錯誤的,實際為50ms,還沒想到辦法轉換不同單位
        {
                count=0;
                Poff--;          //Poff掉電時間倒計時,單位毫秒
                write_onedate(10,Poff);        //變化送到LCD顯示
        }
         if(Poff==0)
         {
            JDQ=1;                //繼電器吸合
            TR1=0;      //定時器1關閉,即倒計時關閉
                TR0=1;           // 定時器0開啟,即按鍵掃描開啟
                }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:693676 發表于 2020-4-5 16:50 來自觸屏版 | 只看該作者
而且前一段時間會不停循環倒計時,改了之后還是一樣
回復

使用道具 舉報

無效樓層,該帖已經被刪除
地板
ID:213173 發表于 2020-4-6 06:20 | 只看該作者
以兩種時間單位(s/ms)倒計時沒有任何技術問題,不過以1ms周期刷新LCD不現實。就算LCD能完成但肉眼根本無法分辨。給你改為1ms中斷周期并增加一個標志位allow用于區分兩種時間單位的倒計時,至于LCD顯示ms問題只能呵呵了。
void Timer1_isr(void) interrupt 3
{
        TH1=(65536-1000)/256;//定時器裝初值
        TL0=(65536-1000)%256;
        if(allow==0)
        {
                count++; //中斷次數累加
                if(count==1000) //1000次1毫秒為1秒
                {
                        count=0;
                        Pon--;                // 單片機工作默認繼電器閉合,Pon上電時間倒計時,單位秒
                        write_twodate(9,Pon);        //變化送到LCD顯示
                        if(Pon==0)
                        {
                                JDQ=0;                  //繼電器斷開
                                allow=1;
                        //        count++;                   //繼電器斷電后,Poff掉電時間倒計時
                        }
                }
        }
        else
        {       
//                if(count==1)         //1次為1毫秒,這里是錯誤的,實際為50ms,還沒想到辦法轉換不同單位
//                {
//                        count=0;
                Poff--;          //Poff掉電時間倒計時,單位毫秒
                write_onedate(10,Poff);        //變化送到LCD顯示
//                }
                if(Poff==0)
                {
                        JDQ=1;                //繼電器吸合
                        TR1=0;      //定時器1關閉,即倒計時關閉
                        TR0=1;           // 定時器0開啟,即按鍵掃描開啟

                        allow=0;//到此一輪倒計時結束,等待定時器1再次開啟
                }
        }
}
回復

使用道具 舉報

5#
ID:693676 發表于 2020-4-6 15:52 來自觸屏版 | 只看該作者
wulin 發表于 2020-4-6 06:20
以兩種時間單位(s/ms)倒計時沒有任何技術問題,不過以1ms周期刷新LCD不現實。就算LCD能完成但肉眼根本無 ...

多謝老哥,有個問題,我按你的設置,但是倒計時跑得很快,差不多正常一秒十分之一,晶振設置確實是12M,仿真跑得很快
回復

使用道具 舉報

6#
ID:693676 發表于 2020-4-6 20:23 來自觸屏版 | 只看該作者
許許許 發表于 2020-4-6 15:52
多謝老哥,有個問題,我按你的設置,但是倒計時跑得很快,差不多正常一秒十分之一,晶振設置確實是12M, ...

解決了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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