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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2486|回復: 8
收起左側

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

[復制鏈接]
ID:595886 發表于 2019-9-13 20:24 | 顯示全部樓層 |閱讀模式
各位前輩,這兩天我在做小車測速,然后液晶1602顯示小車速度,兩個測速模塊輸出端接到兩個外部中斷口,采用下降沿觸發,每進入一次中斷,計數加一。測速模塊就是通過碼盤計數那一種。但是我發現無論我怎么改程序,液晶都不能正確顯示。最后我發現應該是測速模塊的問題。我發現就算輪子沒有轉,中斷里面的計數也會一直加,并且加的速度很快。我想問問各位前輩,這是怎么回事?
回復

使用道具 舉報

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

回復

使用道具 舉報

ID:595886 發表于 2019-9-14 00:40 | 顯示全部樓層
有沒有前輩幫忙看一下啊
回復

使用道具 舉報

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

使用道具 舉報

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. }
復制代碼
回復

使用道具 舉報

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

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

使用道具 舉報

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

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

使用道具 舉報

ID:595886 發表于 2019-9-17 22:25 | 顯示全部樓層
wulin 發表于 2019-9-14 16:59
count1變量需要定時清0,否則怎么計算速度?

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

使用道具 舉報

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久久国产综合精品女不卡 | 欧美精品免费观看二区 | 欧美在线一二三 | 国产高清在线精品一区二区三区 | 亚洲一区二区三区免费在线 | www.com久久久 | 亚洲精品久久久一区二区三区 | 欧美八区 | 99精品国产一区二区三区 | 成人免费淫片aa视频免费 | 久久久久久精 | 国产麻豆乱码精品一区二区三区 | h视频在线播放 | 精品国产不卡一区二区三区 | 中文字幕亚洲一区 | av男人的天堂在线 | 国产精品久久久亚洲 | 国产精品久久久久久久久久妇女 | 91在线成人 | 九九久久在线看 | 欧美日本一区 | 91亚洲精品国偷拍自产在线观看 | 久久国产精品一区二区三区 | 亚洲精品乱 | 久久国产亚洲精品 | 欧美成人精品 | 亚洲一区二区三区四区五区中文 | 国产精品一区二区三区久久 | www.99热这里只有精品 | 二区三区视频 | 9久9久9久女女女九九九一九 | 天天澡天天狠天天天做 | 成人一区在线观看 | 99re在线观看 | 狠狠草视频| 日本一道本视频 | 久色一区 | 一级毛片在线播放 |