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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

主芯片用的是stc15系列的單片機,有一個邏輯關(guān)系,不知道能不能實現(xiàn)。

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:721008 發(fā)表于 2020-4-15 13:29 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我有一個邏輯關(guān)系,不知道能不能實現(xiàn),用的是AD7606的采樣芯片,采樣芯片在第一次采集電壓值時啟動定時,定時時間為10秒,在這個十秒內(nèi),采樣芯片一直在采樣。然后我想實現(xiàn)的是,從第一次采樣到十秒結(jié)束,如果采樣芯片采集的電壓一直都是同樣的電壓,那么十秒結(jié)束后輸出一個信息到外部設(shè)備;如果采樣芯片在這十秒內(nèi)采集到了另外一個電壓,那么定時立馬結(jié)束,跳出這個定時十秒的程序,輸出信息給外部設(shè)備。我試了延時程序和定時器定時,都沒有實現(xiàn)(不排除是程序的問題),本人單片機在入門中,還請大神指點,謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:94031 發(fā)表于 2020-4-15 14:31 | 只看該作者
AD采樣每次都不一樣,是在一定范圍波動的,這個情況你得注意。
回復(fù)

使用道具 舉報

板凳
ID:94031 發(fā)表于 2020-4-15 14:35 | 只看該作者
不如你把最后想實現(xiàn)的過程說清楚,不一定要你現(xiàn)在的思路。
回復(fù)

使用道具 舉報

地板
ID:584814 發(fā)表于 2020-4-15 14:46 | 只看該作者
立馬結(jié)束跳出的,在編程中一般稱作為中斷,可自行百度。
回復(fù)

使用道具 舉報

5#
ID:282850 發(fā)表于 2020-4-15 15:10 | 只看該作者
這個問題有點水平,說明樓主善于思考,試回答:
1、采樣芯片采集的電壓一直都是同樣的電壓,需保證相同,AD的值本來就有很小的變化的,要考慮取幾位有效數(shù)來比對。
2、延時程序本身與執(zhí)行是相沖突的,重寫延時程序,在延時程序里加入AD采樣及跳出程序,可能也可以實現(xiàn)
3、定時器定時,我一般采用中斷方式,邏輯與你想要的不對。如果在主程序中反復(fù)讀TA值,并if,估計能實現(xiàn)。
回復(fù)

使用道具 舉報

6#
ID:452950 發(fā)表于 2020-4-15 15:54 | 只看該作者
假設(shè)采樣頻率為100MS一次,就可以設(shè)置循環(huán)條件,采樣100次即為10s,若檢測到與上次不一樣則提前跳出。注意要考慮采樣過程消耗的時間,若相對采樣間隔時間較大,則需要計算,使延時時間和采樣持續(xù)時間合計等于采樣間隔時間。
uchar i=0,j=0,k=0;
while(i<100)
{
j=采樣函數(shù)();if((k!=j)&&(i>0))break;
k=j;
i++;
delay(100);//延時100ms
}
輸出j和k();//如果有變化,j為后者,k為前者;如果無變化,采樣100次后兩者一致

回復(fù)

使用道具 舉報

7#
ID:213173 發(fā)表于 2020-4-15 18:33 | 只看該作者
實現(xiàn)樓主想要的功能沒有問題。問題是樓主指的同樣的電壓與另外一個電壓怎么定義,波動范圍是多少?
回復(fù)

使用道具 舉報

8#
ID:452950 發(fā)表于 2020-4-15 18:50 | 只看該作者
采樣范圍可以在采樣函數(shù)里面處理,根據(jù)精度需求給采樣得到的不同數(shù)值范圍分級,將范圍轉(zhuǎn)化成級數(shù),只輸出級數(shù)就可以了。
回復(fù)

使用道具 舉報

9#
ID:388197 發(fā)表于 2020-4-15 22:41 | 只看該作者
僅作邏輯參考,代碼隨便敲的,難免遺漏個括號分號什么的.

#define Range 5                 //采樣值范圍(因為每次采樣都有細小的波動)小于這個值則認為值無變化
u8 FlagSample = 0;             //采樣標志.
u8 FlagChange = 0;            //在采樣時間內(nèi)采樣值是否有變化標志
u16 Timer = 0;                  //計時變量
u16 First_Adc_Value = 0;   //首次采樣值
u16 Value = 0;                  //其他采樣值

u16 Get_Adc_Value()        //ADC采樣,返回值為采樣值
{
    ..........
}
main()
{
    .....
    .....
   if(需要采樣)
   {
       FlagSample = 1;
       First_Adc_Value = Get_Adc_Value();     //首次采樣
       while(FlagSample == 1)
       {
            Value = Get_Adc_Value();
            FlagChagnge = 0;                          //清值變化標志
            if(Value == First_Adc_Value)          //如果相等則繼續(xù)
           {
                continue;
           }else   if(First_Adc_Value > Value)   //如果首次采樣大于期間采樣
           {
                 if(First_Adc_Value - Value  < Range)  //如果兩者相差小于設(shè)定范圍
                 {
                       continue;                           //則認為二者相等,繼續(xù)循環(huán).
                 }else                                       //否則(兩者相差大于5)則認為值有變化
                {
                       FlagSample = 0;                //關(guān)掉采樣標志
                       Timer = 0;                        //定時清0,方便下次使用
                       FlagChange = 1;                //將有變化標志置1,表示有變化
                       break;
                }
           }else  if(First_Adc_Value < Value)    //如果首次采樣小于期間采樣
            {
                 ...我就不寫了...照著上面依次類推就好了....
            }
       }
       if(FlagChange == 1)
       {
                輸出值變了
       }else
      {
                輸出值沒變
      }
   }
}

void T0_ISR()      interrupt 1  定時器中斷函數(shù),假設(shè)是1ms中斷
{
     ....
    .....
     if(FlagSample == 1)
     {
          Timer ++;
          if(Timer >= 10000)        // 10秒
          {
              Timer = 0;
              FlagSample = 0;
          }
     }else
     {
          Timer = 0;
     }
}
回復(fù)

使用道具 舉報

10#
ID:721008 發(fā)表于 2020-4-16 10:26 | 只看該作者
wulin 發(fā)表于 2020-4-15 18:33
實現(xiàn)樓主想要的功能沒有問題。問題是樓主指的同樣的電壓與另外一個電壓怎么定義,波動范圍是多少?

是這樣的,我這個主要是為了測量電流傳感器的,在采樣電阻前端采集電壓值,電壓值只有兩個狀態(tài),一個狀態(tài)的電壓范圍是0.6~0.8V,另外一個狀態(tài)的電壓范圍是1.3~.5V.
回復(fù)

使用道具 舉報

11#
ID:213173 發(fā)表于 2020-4-16 13:55 | 只看該作者
ADMIN_ALLENY 發(fā)表于 2020-4-16 10:26
是這樣的,我這個主要是為了測量電流傳感器的,在采樣電阻前端采集電壓值,電壓值只有兩個狀態(tài),一個狀態(tài) ...

給你寫一個編程思路,具體應(yīng)用還要擴展完善。
以STC15系列為依據(jù)
void Timer0Init()        //50毫秒@12.000MHz
{
        AUXR &= 0x7F;        //定時器時鐘12T模式 16位自動重裝
        TMOD &= 0xF0;        //設(shè)置定時器模式
        TL0 = 0xB0;                //設(shè)置定時初值
        TH0 = 0x3C;                //設(shè)置定時初值
        TF0 = 0;                //清除TF0標志
        TR0 = 1;                //定時器0開始計時
        EA  = 1;                //開總中斷
        ET0 = 1;                //開T0中斷
}

void Timer0Interrupt() interrupt 1
{
        if(flag)                                        //啟動檢測
        {
                num++;                                        //計時
                Vin=GetADCResult(ch);        //讀取ADC輸入信號電壓轉(zhuǎn)換值
                                                                //電壓范圍0~VCC Vin=0~1023
                if(Vin<Vin_L||Vin>Vin_H)//判斷電壓范圍
                {
                        sign_A=1;                        //輸出信號1
                        flag=0;                                //清0啟動標志
                        num=0;                                //清0計數(shù)變量
                }
                if(num>=200)                        //10秒到 結(jié)束
                {
                        sign_B=1;                        //輸出信號2
                        flag=0;                                //清0啟動標志
                        num=0;                                //清0計數(shù)變量
                }
        }
}
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩精品一区二区三区四区 | 精精国产xxxx视频在线 | h片在线播放 | 国产精品久久国产愉拍 | www亚洲一区 | 亚洲精品一区二区三区蜜桃久 | 影视先锋av资源噜噜 | 日日夜夜av | 深夜福利影院 | 国产精品亚洲第一区在线暖暖韩国 | 99在线免费观看视频 | 精品亚洲一区二区 | 色综合天天综合网国产成人网 | 亚洲精品久久久久中文字幕欢迎你 | 91精品国产麻豆 | 日韩三极 | 超碰精品在线 | 精品国产免费一区二区三区演员表 | 国产福利二区 | 亚洲一区二区三区免费观看 | 中文字幕在线免费视频 | 日韩成人在线网站 | 久久久精品一区二区三区 | 日本国产精品视频 | 欧美不卡一区二区 | 久久久久久久久蜜桃 | 午夜无码国产理论在线 | 91精品国产高清一区二区三区 | 日本在线黄色 | 一级毛片视频 | 亚洲天堂中文字幕 | 国产伦精品一区二区三区高清 | 午夜av电影院 | 一区二区免费视频 | 99久久久无码国产精品 | a级性视频 | 色婷婷综合网站 | 精品免费国产视频 | 国产成人精品久久二区二区 | 久久久久久久久99精品 | 精品国产乱码久久久久久闺蜜 |