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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關于51單片機測速模塊的問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:595886 發表于 2019-9-13 20:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位前輩,這兩天我在做小車測速,然后液晶1602顯示小車速度,兩個測速模塊輸出端接到兩個外部中斷口,采用下降沿觸發,每進入一次中斷,計數加一。測速模塊就是通過碼盤計數那一種。但是我發現無論我怎么改程序,液晶都不能正確顯示。最后我發現應該是測速模塊的問題。我發現就算輪子沒有轉,中斷里面的計數也會一直加,并且加的速度很快。我想問問各位前輩,這是怎么回事?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:155507 發表于 2019-9-13 22:50 | 只看該作者
這個問題就是你的程序問題
沒有程序、沒有原理圖、沒有實物,誰能知道怎么來找問題,否則只能靠猜了

回復

使用道具 舉報

板凳
ID:595886 發表于 2019-9-14 00:40 | 只看該作者
有沒有前輩幫忙看一下啊
回復

使用道具 舉報

地板
ID:478885 發表于 2019-9-14 04:54 | 只看該作者
用示波器觀察一下,外部中斷口輪子沒有轉肯定有脈沖,碼盤不會有問題,問題出在碼盤供電濾波
回復

使用道具 舉報

5#
ID:595886 發表于 2019-9-14 10:40 | 只看該作者
angmall 發表于 2019-9-13 22:50
這個問題就是你的程序問題
沒有程序、沒有原理圖、沒有實物,誰能知道怎么來找問題,否則只能靠猜了

前輩,這就是我的測試程序,就是把外部中斷的脈沖數顯示到開發板的數碼管上,結果脈沖數一直在增加。
  1. #include<reg52.h>

  2. sbit ADDR0=P1^0;
  3. sbit ADDR1=P1^1;
  4. sbit ADDR2=P1^2;
  5. sbit ADDR3=P1^3;
  6. sbit ENLED=P1^4;

  7. unsigned char code LedChar[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
  8. unsigned char LedBuff[6]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};

  9. unsigned long second=0;
  10. unsigned int count=0;
  11. unsigned char i=0;
  12. bit dir=0;
  13. unsigned int count1;

  14. void main()
  15. {
  16.         ENLED=0;
  17.         ADDR3=1;
  18.         
  19.         EA=1;
  20.         TMOD&=0xF0;
  21.         TMOD|=0x01;
  22.         TH0=0xFC;
  23.         TL0=0x67;
  24.         ET0=1;
  25.         TR0=1;
  26.         EX0=1;
  27.         IT0=1;

  28.         while(1)
  29.         {
  30.                 if(dir)
  31.                 {
  32.                         dir=0;
  33.                         LedBuff[0]=LedChar[count1%10];
  34.                         LedBuff[1]=LedChar[count1/10%10];
  35.                         LedBuff[2]=LedChar[count1/100%10];
  36.                         LedBuff[3]=LedChar[count1/1000%10];
  37.                         LedBuff[4]=LedChar[count1/10000%10];
  38.                         LedBuff[5]=LedChar[count1/100000%10];
  39.                 }
  40.         }
  41. }

  42. void InterruptTimer0() interrupt 1
  43. {
  44.         TH0=0xFC;
  45.         TL0=0x67;
  46.         count++;
  47.         if(count>=1000)
  48.         {
  49.                 count=0;
  50.                 dir=1;
  51.         }
  52.         P0=0xFF;
  53.         P1=(P1&0xF8)|i;        
  54.         P0=LedBuff[i];
  55.         if(i<5) i++;
  56.         else i=0;              
  57. }

  58. void OutTimer0()  interrupt 0
  59. {
  60.         count1++;
  61. }
復制代碼
回復

使用道具 舉報

6#
ID:595886 發表于 2019-9-14 10:41 | 只看該作者
swzh 發表于 2019-9-14 04:54
用示波器觀察一下,外部中斷口輪子沒有轉肯定有脈沖,碼盤不會有問題,問題出在碼盤供電濾波

碼盤供電我是把單片機的5V電源引出來之后,又加了一個100uf的電容之后再給測速模塊供電的,應該不是供電問題
回復

使用道具 舉報

7#
ID:213173 發表于 2019-9-14 16:59 | 只看該作者
就是這樣酷 發表于 2019-9-14 10:40
前輩,這就是我的測試程序,就是把外部中斷的脈沖數顯示到開發板的數碼管上,結果脈沖數一直在增加。

count1變量需要定時清0,否則怎么計算速度?
回復

使用道具 舉報

8#
ID:595886 發表于 2019-9-17 22:25 | 只看該作者
wulin 發表于 2019-9-14 16:59
count1變量需要定時清0,否則怎么計算速度?

是啊,測速的時候清零啊
回復

使用道具 舉報

9#
ID:595886 發表于 2019-9-17 22:57 | 只看該作者
wulin 發表于 2019-9-14 16:59
count1變量需要定時清0,否則怎么計算速度?

是啊,測速的時候清零啊
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久综合99 | 亚洲精品91| 日韩中文字幕在线观看 | 99久久精品国产一区二区三区 | 久久天堂| 国产农村妇女精品一二区 | 91在线看片 | 国产亚洲一区在线 | 亚洲小说图片 | 久久国产精品一区 | 中文字幕在线看人 | 免费黄色大片 | 日韩三级电影一区二区 | 黄视频网站免费观看 | 欧洲毛片 | 欧美高清视频一区 | 久久精品一 | 国产精品福利在线 | 黄色一级免费 | 免费成人毛片 | 国产精品欧美大片 | 久久一区二区三区四区 | 蜜桃毛片 | 99re视频在线 | av网址在线 | 国产日韩在线观看一区 | 国产精品久久久久无码av | 一区二区三区在线播放视频 | 国产一级视频在线观看 | 91视频在线观看 | 中文字幕在线视频网站 | 国产精品久久久久久久久久久免费看 | 精品一区二区三区免费视频 | 精品乱码一区二区 | 日本亚洲欧美 | 国产精品呻吟久久av凹凸 | 国产操操操 | 五月天婷婷狠狠 | 国产精品久久av | 国产欧美一区二区精品忘忧草 | 久久久99国产精品免费 |