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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

問flag如何判斷是第幾個負跳變,問題多多

[復制鏈接]
跳轉到指定樓層
樓主
ID:80909 發表于 2015-5-29 17:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
電機測速:INT0采用下降沿負跳變觸發方式,第一個負跳變T0開始計時另flag=0,第二個負跳變停止計時另flag=1,為一個周期的時間即轉一圈的時間,然后換算為r/min.為了使顯示清楚,用T1控制大約每隔0.3秒采集刷新顯示一次。
#include <reg51.h>
#include <absacc.h>
#include <intrins.h>
#define DUAN XBYTE[0X8004]
#define WEI XBYTE[0x8002]
#define uchar unsigned char
#define uint  unsigned int
uchar tabledu[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};
uchar QIAN,BAI,SHI,GE,CNT,FLAG=0;//此處falg初值為0

unsigned long T,N;
void timer1(void) interrupt 3
{
TH1=0X3C;
TL1=0XB0;
CNT--;
if(CNT==0)
{
  CNT=3;
  EX0=1;
  IE0=0;
}
}
void int0(void) interrupt 0
{


if(FLAG==1)
{
  TR0=0;
  T=TH0*256+TL0;
  N=30000000/T;
  QIAN=N/1000;
  BAI=N%1000/100;
  SHI=N%1000%100/10;
  GE=N%1000%100%10;
  FLAG=0;
  EX0=0;
}
else
{
  TR0=1;
  TH0=0;
  TL0=0;
   FLAG=1;
}
}
void delay(uint t)
{
for(;t>0;t--);

}
main()
{
CNT=3;
TMOD=0X11;
EA=1;
ET1=1;
TH1=0X3C;
TL1=0XB0;
IT0=1;
TR1=1;
TF1=0;
for(;;)
{
  WEI=1;
  DUAN=tabledu[GE];
  delay(20);
  WEI=2;
  DUAN=tabledu[SHI];
  delay(20);
  WEI=4;
  DUAN=tabledu[BAI];
  delay(20);
  WEI=8;
  DUAN=tabledu[QIAN];
  delay(20);
}
}


問題,第一個負跳變來臨,INT0中斷,執行else后面括號的程序,T0開始計時,怎么就i另flag=1了呢,或者第二個負跳變來臨flag怎么知道??應該是第二個負跳變來臨,再執行中斷程序,如何知道第二個負跳變來臨?不明白。想了半天了,氣死我了都。還有DUAN , WEI后為啥需要延時??
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:79908 發表于 2015-5-30 07:35 | 只看該作者
你定義一個全局變量來計算進中斷函數次數試一試
回復

使用道具 舉報

板凳
ID:80909 發表于 2015-5-30 09:54 | 只看該作者
電子愛好者life 發表于 2015-5-30 07:35
你定義一個全局變量來計算進中斷函數次數試一試

現在的問題就是,第一次負跳變中斷執行,flag置0,第二次負跳變來了還要執行中斷的,這個中斷程序里自己怎么識別?o(︶︿︶)o 唉我是門外漢,不懂啊。程序是別人編寫的運行正確。
回復

使用道具 舉報

地板
ID:79908 發表于 2015-5-30 23:14 | 只看該作者
找妹子 發表于 2015-5-30 09:54
現在的問題就是,第一次負跳變中斷執行,flag置0,第二次負跳變來了還要執行中斷的,這個中斷程序里自己 ...

首先啟動定時中斷1,每200ms 檢測打開外部中斷,第一次進入外部中斷執行else里的內容,并使flag=1;第二次進入外部中斷執行flag=1里的內容,并關閉定時器和外部中斷,這樣就實現兩次進入中斷后不再進入外部中斷了。
回復

使用道具 舉報

5#
ID:80909 發表于 2015-5-31 12:19 | 只看該作者
電子愛好者life 發表于 2015-5-30 23:14
首先啟動定時中斷1,每200ms 檢測打開外部中斷,第一次進入外部中斷執行else里的內容,并使flag=1;第二 ...

3克油!!
回復

使用道具 舉報

6#
ID:80909 發表于 2015-5-31 14:36 | 只看該作者
電子愛好者life 發表于 2015-5-30 23:14
首先啟動定時中斷1,每200ms 檢測打開外部中斷,第一次進入外部中斷執行else里的內容,并使flag=1;第二 ...

謝謝,這個解釋我懂了這個程序。嗨喲 就是為啥DUAN、WEI分配后,必須有延時delay程序啊??
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区久久 | 一区二区三区亚洲精品国 | 欧美成人一区二免费视频软件 | 午夜视频免费在线观看 | 久久久久午夜 | 在线色| 国产成人精品免高潮在线观看 | 欧美成年人网站 | 伊人国产精品 | 99久久精品免费看国产四区 | 国产精品成人一区 | 在线看av网址 | 欧美人妇做爰xxxⅹ性高电影 | 精品色| 午夜在线电影网 | а天堂中文最新一区二区三区 | www成人啪啪18 | 亚洲欧美在线视频 | 91视频大全 | 日韩在线免费播放 | 天天干天天爱天天爽 | 日韩国产一区二区三区 | 天天综合久久网 | 精品国产乱码一区二区三区a | 欧美日韩亚洲视频 | 国产一区二区在线播放 | 精品久久久久久国产 | 国产成人精品一区二区三区四区 | 成人精品在线观看 | 亚洲精品丝袜日韩 | 作爱视频免费看 | 成人免费视频播放 | 在线视频国产一区 | 成人综合视频在线 | 成年人在线播放 | 中文字幕福利视频 | 高清成人av | a黄视频| 免费一级片 | 中文字幕在线观看第一页 | 午夜免费网站 |