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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

請教用51單片機(jī)怎么做到長延時(shí),延時(shí)幾分鐘甚至小時(shí)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:699948 發(fā)表于 2022-10-3 09:24 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. #include <REGX52.H>
  2. void Delay1ms(unsigned int xms)                //@11.0592MHz
  3. {
  4.         unsigned char i, j;
  5.         while(xms)
  6.         {
  7.         i = 2;
  8.         j = 199;
  9.         do
  10.         {
  11.                 while (--j);
  12.         } while (--i);
  13.         xms--;
  14. }
  15.         }

  16. void main()
  17. {
  18.         
  19.         while(1)
  20.         {
  21.                 P2=0x55 ;
  22.                 Delay1ms(300000);
  23.                 P2=0xFF;
  24.                 Delay1ms(1000);
  25.         }
  26. }
復(fù)制代碼
像這樣寫2分鐘以內(nèi)測試還算正常,設(shè)定5分鐘就不對(duì)了,下載后實(shí)際測試只有幾十秒
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:57657 發(fā)表于 2022-10-3 12:27 | 只看該作者
用定時(shí)器中斷(8位自動(dòng)重裝初值模式)進(jìn)行延時(shí)。
回復(fù)

使用道具 舉報(bào)

板凳
ID:97554 發(fā)表于 2022-10-3 12:56 | 只看該作者
長時(shí)間的需要時(shí)鐘芯片了吧?你這樣讓單片機(jī)一個(gè)勁的給你執(zhí)行延時(shí)命令是不是有點(diǎn)兒過分啊。
回復(fù)

使用道具 舉報(bào)

地板
ID:91150 發(fā)表于 2022-10-3 13:20 | 只看該作者
這一句 Delay1ms(300000); 會(huì)出問題。  void Delay1ms(unsigned int xms)里設(shè)定了xms是unsigned int ,不能超過65535。  可能是 300000/65535=4.577... ,執(zhí)行4個(gè)65535次后再有(0.577...x65535=)37860次。不會(huì) 匯編  看不懂匯編,不敢確定。
回復(fù)

使用道具 舉報(bào)

5#
ID:155507 發(fā)表于 2022-10-3 13:43 | 只看該作者
100us以下用delay
100us~1ms看情況用delay或定時(shí)器
1ms以上用定時(shí)器

一個(gè)定時(shí)器產(chǎn)生不同時(shí)間心跳例子

http://www.zg4o1577.cn/bbs/forum.p ... 494&pid=1099428
回復(fù)

使用道具 舉報(bào)

6#
ID:624769 發(fā)表于 2022-10-3 15:15 來自觸屏版 | 只看該作者
做個(gè)100ms的延時(shí),循環(huán)執(zhí)行36000次為1小時(shí)
回復(fù)

使用道具 舉報(bào)

7#
ID:517951 發(fā)表于 2022-10-3 17:18 | 只看該作者
51單片機(jī)有T0,T1兩個(gè)定時(shí)器, 定時(shí)器加上計(jì)數(shù)就可以做到1s, 再用軟件計(jì)數(shù)方法就能夠分鐘,小時(shí)計(jì)數(shù)了。 精度要求不能太高。 對(duì)時(shí)間精度有要求,就要用到實(shí)時(shí)時(shí)鐘IC, 1302、DS887等。
回復(fù)

使用道具 舉報(bào)

8#
ID:526108 發(fā)表于 2022-10-3 17:25 | 只看該作者
做個(gè)時(shí)鐘功能
回復(fù)

使用道具 舉報(bào)

9#
ID:121859 發(fā)表于 2022-10-3 17:31 | 只看該作者
Delay1ms(300000);肯定不對(duì)的,你傳參是unsigned int,最大65535,所以這個(gè)調(diào)用的結(jié)果相當(dāng)于
Delay1ms(300000%65536);即:Delay1ms(37856);
回復(fù)

使用道具 舉報(bào)

10#
ID:195496 發(fā)表于 2022-10-3 18:16 | 只看該作者
定時(shí)器做基本的中斷,加上時(shí)分秒,天,變量,就全有了
回復(fù)

使用道具 舉報(bào)

11#
ID:1007932 發(fā)表于 2022-10-3 19:36 | 只看該作者
用定時(shí)器,和軟件定時(shí)也差不多,都是計(jì)數(shù),定時(shí)器是硬件,工作時(shí)CPU還可以干別的事,精度也更高,但是,定時(shí)器有8位/16位,同理軟件定時(shí)也有char int.....,所以理論上軟件定時(shí)只要把計(jì)數(shù)變量類型改大就能長時(shí)間定時(shí),不夠還可以套娃,但誤差都會(huì)很大。另外定時(shí)器精度是和晶振掛鉤的,用時(shí)鐘芯片如果晶振精度不夠也一樣。
回復(fù)

使用道具 舉報(bào)

12#
ID:46065 發(fā)表于 2022-10-3 20:23 | 只看該作者
unsigned int xms    改成 long xms
回復(fù)

使用道具 舉報(bào)

13#
ID:235438 發(fā)表于 2022-10-4 01:01 | 只看該作者
利用定時(shí)器中斷,然后設(shè)定個(gè)全局變量,外部可以用while來判斷
代碼格式大概如下:
long timer_cnt=0;
//100ms 中斷
中斷{
    if (timer_cnt>0) timer_cnt++;
}

P2=0x55 ;
timer_cnt=1;    //使能計(jì)數(shù)
while(timer_cnt<3000);//等待計(jì)數(shù)到300秒
timer_cnt=0;   //停止計(jì)數(shù)
P2=0xFF;

回復(fù)

使用道具 舉報(bào)

14#
ID:1046594 發(fā)表于 2022-10-4 10:26 | 只看該作者
肯定要使用定時(shí)器 而且這種阻塞式的定時(shí)器 長時(shí)間延時(shí)不建議用
回復(fù)

使用道具 舉報(bào)

15#
ID:1046596 發(fā)表于 2022-10-4 10:59 | 只看該作者
wxxl 發(fā)表于 2022-10-3 20:23
unsigned int xms    改成 long xms


unsigned int xms    改成 long xms  也是不對(duì)的,這樣改,那個(gè)延時(shí)1ms的函數(shù)就不是1ms了,肯定要慢了。


把主程序中:Delay1ms(300000);
改成
Delay1ms(60000);
Delay1ms(60000);
Delay1ms(60000);
Delay1ms(60000);
Delay1ms(60000);
用5個(gè)來代替
回復(fù)

使用道具 舉報(bào)

16#
ID:1034262 發(fā)表于 2022-10-4 11:17 | 只看該作者
軟件實(shí)現(xiàn),你要延時(shí)幾年都可以。
回復(fù)

使用道具 舉報(bào)

17#
ID:699948 發(fā)表于 2022-10-4 20:04 | 只看該作者
npn 發(fā)表于 2022-10-3 12:27
用定時(shí)器中斷(8位自動(dòng)重裝初值模式)進(jìn)行延時(shí)。

好的,謝謝
回復(fù)

使用道具 舉報(bào)

18#
ID:699948 發(fā)表于 2022-10-4 20:06 | 只看該作者
楊雪飛 發(fā)表于 2022-10-3 12:56
長時(shí)間的需要時(shí)鐘芯片了吧?你這樣讓單片機(jī)一個(gè)勁的給你執(zhí)行延時(shí)命令是不是有點(diǎn)兒過分啊。

哈哈,剛學(xué)還不太懂
回復(fù)

使用道具 舉報(bào)

19#
ID:699948 發(fā)表于 2022-10-4 20:06 | 只看該作者
wjhhhhh 發(fā)表于 2022-10-3 13:20
這一句 Delay1ms(300000); 會(huì)出問題。  void Delay1ms(unsigned int xms)里設(shè)定了xms是unsigned int ,不能 ...

好的,謝謝指教
回復(fù)

使用道具 舉報(bào)

20#
ID:699948 發(fā)表于 2022-10-4 20:07 | 只看該作者
angmall 發(fā)表于 2022-10-3 13:43
100us以下用delay
100us~1ms看情況用delay或定時(shí)器
1ms以上用定時(shí)器

好的,謝謝
回復(fù)

使用道具 舉報(bào)

21#
ID:699948 發(fā)表于 2022-10-4 20:07 | 只看該作者
rayin 發(fā)表于 2022-10-3 17:18
51單片機(jī)有T0,T1兩個(gè)定時(shí)器, 定時(shí)器加上計(jì)數(shù)就可以做到1s, 再用軟件計(jì)數(shù)方法就能夠分鐘,小時(shí)計(jì)數(shù)了。 精 ...

好的,謝謝指教
回復(fù)

使用道具 舉報(bào)

22#
ID:699948 發(fā)表于 2022-10-4 20:11 | 只看該作者
謝謝大家指教,不一一回復(fù)了,剛?cè)腴T看來還要多學(xué)習(xí)下
回復(fù)

使用道具 舉報(bào)

23#
ID:883242 發(fā)表于 2022-10-4 21:21 | 只看該作者
多用幾個(gè)變量,循環(huán)嵌套。
回復(fù)

使用道具 舉報(bào)

24#
ID:740383 發(fā)表于 2022-10-5 09:08 | 只看該作者
笑死,一個(gè)簡單的小問題一群人重重復(fù)復(fù)的回復(fù),顯著自己了,樓主小白又不懂,估計(jì)也不懂定時(shí)器怎么開啟把!一步一個(gè)腳印,哪有一步登天的,人家只需要P口變化(也許是LED亮滅),就解決Delay1ms();所出現(xiàn)的問題就好了
回復(fù)

使用道具 舉報(bào)

25#
ID:491577 發(fā)表于 2022-10-5 14:44 | 只看該作者
延時(shí)函數(shù)不是自己瞎琢磨,是用軟件自動(dòng)生成的。用STC的燒錄軟件就有延時(shí)函數(shù),直接復(fù)制使用就行。
比如:89C52單片機(jī),12M主頻。
最長9999ms
void Delay9999ms()                //@12.000MHz
{
        unsigned char i, j, k;

        _nop_();
        i = 76;
        j = 253;
        k = 255;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}

回復(fù)

使用道具 舉報(bào)

26#
ID:699948 發(fā)表于 2022-10-5 15:44 | 只看該作者
wxxl 發(fā)表于 2022-10-3 20:23
unsigned int xms    改成 long xms

謝謝,這樣改最簡單,真是細(xì)節(jié)決定成敗
回復(fù)

使用道具 舉報(bào)

27#
ID:310441 發(fā)表于 2022-10-11 06:59 來自觸屏版 | 只看該作者
楊雪飛 發(fā)表于 2022-10-3 12:56
長時(shí)間的需要時(shí)鐘芯片了吧?你這樣讓單片機(jī)一個(gè)勁的給你執(zhí)行延時(shí)命令是不是有點(diǎn)兒過分啊。

我也覺得。樓主可能自己都沒考慮清楚,應(yīng)用場景都沒說清楚,那么長的延時(shí)可能都可以通過外部計(jì)時(shí)休眠再喚醒了。
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 丝袜一区二区三区 | 亚洲欧美激情视频 | 亚洲精品久久嫩草网站秘色 | 久久久久亚洲精品国产 | 久久精品99 | 中文字幕一区在线观看视频 | 在线观看成人小视频 | 欧美一二三| 亚洲国产精品99久久久久久久久 | 亚洲综合三区 | 亚洲成av人片在线观看 | 日韩色图视频 | 播放一级毛片 | 日韩精品在线观看免费 | 91久色| 国产精品亚洲综合 | 久久九精品| 免费黄色录像视频 | 日韩电影中文字幕 | 中文字幕av在线 | 一区欧美 | 一区二区不卡高清 | 久久99精品久久久 | av在线成人| 午夜综合 | 香蕉视频一区二区 | 国产一区二区三区在线看 | 亚洲色图第一页 | 99精品久久99久久久久 | 一区二区三区亚洲精品国 | 欧美日韩不卡合集视频 | 91大神在线资源观看无广告 | 天天色综 | 懂色中文一区二区在线播放 | 婷婷激情在线 | 国产精品久久久久久久久图文区 | 999久久久久久久久6666 | 精品一区国产 | www..99re| 国产精品色哟哟网站 | 一区在线视频 |