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

標題: 單片機數碼管閃爍怎么解決 附程序電路圖 [打印本頁]

作者: 小灰灰、    時間: 2022-12-13 17:56
標題: 單片機數碼管閃爍怎么解決 附程序電路圖
[attach]307230[/attach]

2.png (196.83 KB, 下載次數: 117)

數碼管閃爍

數碼管閃爍

1.png (462.1 KB, 下載次數: 116)

兩個這種類型的顯示函數

兩個這種類型的顯示函數

0.png (268.87 KB, 下載次數: 126)

主函數

主函數

作者: 小灰灰、    時間: 2022-12-13 18:02
程序仿真后顯示兩個DS18B20的溫度,一直在切換,該怎么保持一段時間后再顯示下一個?主函數那里用了延時函數也沒用
作者: 小灰灰、    時間: 2022-12-13 18:06
就是這樣

1670925090421.gif (335.93 KB, 下載次數: 113)

1670925090421.gif

作者: lkc8210    時間: 2022-12-13 23:15


作者: wulin    時間: 2022-12-14 09:53
動態掃描數碼管顯示發生閃爍現象是因為掃描頻率過低,掃描頻率過低的原因是讀取DS18B20數據耗時過長和顯示函數編寫缺陷所致。4位數碼管掃描周期不得大于20ms。使用長時間的阻滯型延時會大大降低CPU工作效率。給你一個示例參考。 4位數碼管時鐘溫度表仿真.rar (332.16 KB, 下載次數: 24)


作者: wpppmlah    時間: 2022-12-14 10:16
這個方法試一下::
雙擊數碼管,打開數碼管的屬性,把觸發時間改一下.



作者: Longan.Wang    時間: 2022-12-14 11:35
動態掃描應該調快一點。
作者: Longan.Wang    時間: 2022-12-14 11:36
畢竟這是仿真,PC機的性能也會影響的。還是以實物為準。
作者: 小灰灰、    時間: 2022-12-14 15:15
lkc8210 發表于 2022-12-13 23:15

我是在主函數加for循環,也解決了
作者: 小灰灰、    時間: 2022-12-14 15:21
解決了,我是在主函數加了個for循環

NRW`Y$P@57VH_S1I7{8Z$2M.png (332.99 KB, 下載次數: 47)

NRW`Y$P@57VH_S1I7{8Z$2M.png

51hei錄屏20221214151953.gif (358.5 KB, 下載次數: 115)

51hei錄屏20221214151953.gif

作者: ldc2000    時間: 2022-12-17 03:31
wulin 發表于 2022-12-14 09:53
動態掃描數碼管顯示發生閃爍現象是因為掃描頻率過低,掃描頻率過低的原因是讀取DS18B20數據耗時過長和顯示 ...

大佬,下來后解壓不了呢,能重新發一下嗎
作者: laohu_zz    時間: 2022-12-27 18:15
顯示和功能處理分開,不要混淆一起,這樣比較好處理問題
作者: 2(┯_┯)    時間: 2023-1-1 18:30
調整一下顯示時間,顯示與數據運行區分開來
                                                   
作者: 小灰灰、    時間: 2023-2-24 15:42
lkc8210 發表于 2022-12-13 23:15

大佬,為什么我用了你這個會報錯?DS18B20.C(51): error C183: unmodifiable lvalue
  1. void Delay(int count)
  2. {
  3.         int i;
  4.         for(i=1;i<=count;i++);
  5. }
復制代碼

作者: lkc8210    時間: 2023-2-24 20:56
小灰灰、 發表于 2023-2-24 15:42
大佬,為什么我用了你這個會報錯?DS18B20.C(51): error C183: unmodifiable lvalue

完全不一樣好不好
作者: 13423265909    時間: 2023-2-24 22:22
控制好程序執行每一步的時間,一步步調DELAY也行,調到時序對的時候一般就行
作者: 小灰灰、    時間: 2023-2-25 20:26
lkc8210 發表于 2023-2-24 20:56
完全不一樣好不好

這是 全部程序仿,就 照著大佬  你發的圖片修的  ,哪不對 了  ?

多路溫度報警 (2).zip

107.49 KB, 下載次數: 5


作者: lkc8210    時間: 2023-2-26 11:04
小灰灰、 發表于 2023-2-25 20:26
這是 全部程序仿,就 照著大佬  你發的圖片修的  ,哪不對 了  ?

你的"Delay"是函數
我的"Delay"是變量
當然不一樣
作者: 小灰灰、    時間: 2023-2-26 11:40
lkc8210 發表于 2023-2-26 11:04
你的"Delay"是函數
我的"Delay"是變量
當然不一樣

那我該怎么寫?請大佬教教我
作者: angmall    時間: 2023-2-26 11:56
小灰灰、 發表于 2023-2-26 11:40
那我該怎么寫?請大佬教教我

給你改了

  1. /********************************************************************
  2. * 程序名;  基于DS18B20的測溫系統
  3. * 功  能: 實時測量溫度,超過上下限報警,報警溫度可手動調整。K1是用來
  4. * 進入上下限調節模式的,當按一下K1進入上限調節模式,再按一下進入下限
  5. * 調節模式。在正常模式下,按一下K2進入查看上限溫度模式,顯示1s左右自動
  6. * 退出;按一下K3進入查看下限溫度模式,顯示1s左右自動退出;按一下K4消除
  7. * 按鍵音,再按一下啟動按鍵音。在調節上下限溫度模式下,K2是實現加1功能,
  8. * K1是實現減1功能,K3是用來設定上下限溫度正負的。         
  9.                   
  10. *********************************************************************/
  11. #include<reg52.h>                                   //將AT89X52.h頭文件包含到主程序
  12. #include<intrins.h>                                   //將intrins.h頭文件包含到主程序(調用其中的_nop_()空操作函數延時)
  13. #define uint unsigned int                      //變量類型宏定義,用uint表示無符號整形(16位)
  14. #define uchar unsigned char                   //變量類型宏定義,用uchar表示無符號字符型(8位)

  15. uchar max=0x00,min=0x00;                   //max是上限報警溫度,min是下限報警溫度

  16. bit   s=0;                                                   //s是調整上下限溫度時溫度閃爍的標志位,s=0不顯示200ms,s=1顯示1s左右
  17. bit   s1=0;                                                   //s1標志位用于上下限查看時的顯示
  18. void display1(uint z);                            //聲明display1()函數(display.h頭文件中的函數,ds18b20.h要用應先聲明)
  19. #include"ds18b20.h"                                   //將ds18b20.h頭文件包含到主程序
  20. #include"keyscan.h"                                   //將keyscan.h頭文件包含到主程序
  21. #include"display.h"                                   //將display.h頭文件包含到主程序


  22. /***********************主函數************************/
  23. void main()
  24. {
  25.          unsigned char z;
  26.          unsigned int Delay=0;
  27.          beer=1;                                           //關閉蜂鳴器
  28.          led=1;                                                   //關閉LED燈
  29.          timer1_init(0);                           //初始化定時器1(未啟動定時器1)
  30.          get_temperature(1);                    //首次啟動DS18B20獲取溫度(DS18B20上點后自動將EEPROM中的上下限溫度復制到TH和TL寄存器)
  31.          get_temperature_1(1);
  32.          while(1)                                           //主循環
  33.          {         
  34.                                     //按鍵掃面函數
  35.                  
  36.                  keyscan();                                   //按鍵掃面函數
  37.                  if(Delay==0)
  38.                  {
  39.                  get_temperature(0);            //獲取溫度函數
  40.                  alarm();       
  41.                  }
  42.                  if(Delay==1000)
  43.                  {
  44.                  get_temperature_1(0);
  45.                  alarm_1();       
  46.                  }                  
  47.                  
  48.                  if(Delay++>=2000)Delay=0;
  49.                    display(temp,temp_d*0.625);//顯示函數
  50.          }
  51. }   
復制代碼

作者: 小灰灰、    時間: 2023-2-26 20:27
angmall 發表于 2023-2-26 11:56
給你改了

您好,我照您這樣改了之后確實可以連續報警了,但是一旦報警就停不下來了,溫度降下來了也還在報警是怎么回事?




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美专区在线观看 | 伊人网综合| 国产在线观看网站 | 日韩在线网址 | 欧美一级全黄 | 久久精品99久久久久久 | 91理论片午午伦夜理片久久 | 精品在线一区 | www.亚洲精品 | 久草福利在线 | 国产高清网站 | 亚洲视频在线播放 | 国产成人av一区二区三区在线观看 | 老司机深夜福利视频 | 在线色网| 国产女优在线 | 91中文字幕在线 | 国产亚洲欧美在线 | 国产在线欧美 | 成人影| 91精品国产乱码久久久 | 国产成人在线免费视频 | 亚洲久热 | 欧美日韩免费在线 | 久久99精品国产麻豆91樱花 | 97操碰| www.久草| 国产精品久久久久久久免费看 | 亚洲精品国产精品国自产观看浪潮 | 欧美日韩在线看 | 国产成人一区二区三区 | 亚洲一区二区三区视频 | 欧美一区二区三区在线视频 | 国产又色又爽又黄又免费 | 国产盗摄一区二区三区 | 亚洲高清免费 | 四虎永久在线 | 日韩欧美一区二区三区久久婷婷 | 狠狠干网 | 国产一区二区不卡视频 | 欧美成人一级 |