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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

用STC15w404AS制作功放機無信號自動關(guān)機

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:350962 發(fā)表于 2018-6-13 13:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
自己制作了一個藍牙5.0的功放機,為了節(jié)能,需要在有信號時自動開機,無信號等待5分鐘后自動關(guān)機。手頭正好有STC15w404AS,于是用STC15w404AS制作了無信號自動關(guān)機的電路。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

來自 5#
ID:350962 發(fā)表于 2018-6-13 21:27 | 只看該作者
本帖最后由 ac9979 于 2018-6-14 09:22 編輯

    原計劃用LM339 四電壓比較器 加 成品延時電路搞定,發(fā)現(xiàn)成品延時電路用的就是STC15w404AS, 覺得應(yīng)該可以把兩芯片集成到一起,更簡潔,畢竟功放機的空間不夠多。稍微一研究發(fā)現(xiàn)STC15w404AS獨自就能實現(xiàn),我還是許多年前讀書的時候接觸過單片機,已經(jīng)全部還給老師了,零基礎(chǔ)開始設(shè)計。
     今天學習了本站的基礎(chǔ)教程《4課:第一個單片機小程序》、《Keil教程(1)》,已經(jīng)編了我的第一個STC程序,將STC15w404AS第1腳接一個發(fā)光二極管,串一個1K的電阻接到地,第7、8腳接VCC,10腳接地,第11、12接PC的串口+MX232變成TTL電平與電腦通訊,目的就是把發(fā)光二極管搞亮,抄《4課:第一個單片機小程序》:
void main() //程序從這里開始執(zhí)行
{
while(1) //這句的作用就是反復(fù)的執(zhí)行下面這個{}中包含的4句
    {
     P1_2=1;  //(1)熄滅燈
     DELAY(); //(2)延時一段時間
     P1_2=0;  //(3)點亮燈
     DELAY(); //(4)延時一段時間
    }
}
結(jié)果此處 P1_2=1;  編譯不過,提示未定義,百度一下,第1腳叫P1.2,P1=00000100,應(yīng)該就把P1.2置成高電平燈就亮了,所以P1=0XFF 就OK了。P1=0X00,燈就應(yīng)該滅。

20180613_213023.jpg (932.09 KB, 下載次數(shù): 115)

20180613_213023.jpg

評分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

沙發(fā)
ID:350962 發(fā)表于 2018-6-13 13:24 | 只看該作者
設(shè)計思路,藍牙芯片收到藍牙信號后,IIS總線的DATA電壓會達到1.2V左右,每5秒鐘檢測此信號電壓,如果電壓超過1V,此時軟件延時器清零,如果低于1V,則開始調(diào)用軟件延時器開始延時300秒。
回復(fù)

使用道具 舉報

板凳
ID:1 發(fā)表于 2018-6-13 18:00 | 只看該作者
好思路,能分享源碼與圖紙嗎?
回復(fù)

使用道具 舉報

地板
ID:162136 發(fā)表于 2018-6-13 19:10 | 只看該作者
手上有時基電路估計更方便。
回復(fù)

使用道具 舉報

6#
ID:350962 發(fā)表于 2018-6-13 21:28 | 只看該作者
本帖最后由 ac9979 于 2018-6-14 00:01 編輯

   用stc-isp-15xx-v6.86.exe軟件將生成的HEX文件寫入404AS,老是提示"正在檢測目標單片機 ... ",百度一下,原來是上電時才能寫入。發(fā)現(xiàn)LED燈幾乎不閃,估計是延時時間太短,用STC自動生成的軟件延時計算器替換《4課:第一個單片機小程序》的延時程序,提示_nop_()未定義,百度一下,需要#include "intrins.h",編譯OK,源代碼如下:
#include <at89x52.h>
#include "intrins.h"
void DELAY()                //@11.0592MHz
{
        unsigned char i, j, k;

        _nop_();
        _nop_();
        i = 43;
        j = 6;
        k = 203;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}




void main() //程序從這里開始執(zhí)行
{
while(1) //這句的作用就是反復(fù)的執(zhí)行下面這個{}中包含的4句
    {
      P1=0XFF;  //(1)熄滅燈
     DELAY(); //(2)延時一段時間
      P1=0X00  //(3)點亮燈
     DELAY(); //(4)延時一段時間
    }
}
LED就每秒閃一下。證明我的第一個STC程序已經(jīng)運行正常,然后準備照著stc-isp-15xx-v6.86.exe軟件里的示范程序《STC15F4K60S4 系列 通過BandGap電壓精確測量外部輸入電壓值舉例》編寫7腳電壓檢測。

評分

參與人數(shù) 1黑幣 +80 收起 理由
admin + 80 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

7#
ID:74784 發(fā)表于 2018-6-13 23:27 | 只看該作者
一片  555就可以搞定

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

8#
ID:303383 發(fā)表于 2018-6-14 07:54 | 只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
回復(fù)

使用道具 舉報

9#
ID:350962 發(fā)表于 2018-6-15 15:06 | 只看該作者
進過學習和消化,將紅色LED轉(zhuǎn)接到P3.6口,將P1口空出來,p1.2作為信號檢測端,終于將程序改了出來(具體工作見范例STC15.PDF第923頁)

  1. #include "reg51.h"
  2. #include "intrins.h"

  3. typedef unsigned char BYTE;
  4. typedef unsigned int WORD;

  5. WORD idata Vbg_RAM _at_ 0xef;               //對于只有256字節(jié)RAM的MCU存放地址為0EFH

  6. //注意:需要在下載代碼時選擇"在ID號前添加重要測試參數(shù)"選項,才可在程序中獲取此參數(shù)
  7. WORD code Vbg_ROM _at_ 0x0ff7;            //4K程序空間的MCU

  8. sfr P1M1 = 0x91;    //PxM1.n,PxM0.n     =00--->Standard,    01--->push-pull
  9. sfr P1M0 = 0x92;    //                  =10--->pure input,  11--->open drain
  10. sfr P0M1 = 0x93;
  11. sfr P0M0 = 0x94;
  12. sfr P2M1 = 0x95;
  13. sfr P2M0 = 0x96;
  14. sfr P3M1 = 0xB1;
  15. sfr P3M0 = 0xB2;
  16. sfr P4M1 = 0xB3;
  17. sfr P4M0 = 0xB4;
  18. sfr P5M1 = 0xC9;
  19. sfr P5M0 = 0xCA;
  20. sfr P6M1 = 0xCB;
  21. sfr P6M0 = 0xCC;
  22. sfr P7M1 = 0xE1;
  23. sfr P7M0 = 0xE2;


  24. sfr ADC_CONTR   =   0xBC;                   //ADC控制寄存器
  25. sfr ADC_RES     =   0xBD;                   //ADC高8位結(jié)果
  26. sfr ADC_LOW2    =   0xBE;                   //ADC低2位結(jié)果
  27. sfr P1ASF       =   0x9D;                   //P1口第2功能控制寄存器

  28. #define ADC_POWER   0x80                    //ADC電源控制位
  29. #define ADC_FLAG    0x10                    //ADC完成標志
  30. #define ADC_START   0x08                    //ADC起始控制位
  31. #define ADC_SPEEDLL 0x00                    //540個時鐘
  32. #define ADC_SPEEDL  0x20                    //360個時鐘
  33. #define ADC_SPEEDH  0x40                    //180個時鐘
  34. #define ADC_SPEEDHH 0x60                    //90個時鐘

  35. /*----------------------------
  36. 軟件延時
  37. ----------------------------*/
  38. void Delay(WORD n)           //@11.0592MHz 延遲1ms
  39. {
  40.     unsigned char i, j;

  41.     while (n--)
  42.     {
  43.                                 _nop_();
  44.                                 _nop_();
  45.                                 _nop_();
  46.                                 i = 11;
  47.                                 j = 190;
  48.                                 do
  49.                                 {
  50.                                         while (--j);
  51.                                 } while (--i);
  52.     }
  53. }



  54. BYTE GetADC(BYTE ch)
  55. {
  56.     ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
  57.     Delay(2);                               //ADC上電并延時
  58.     ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
  59.     _nop_();                                //等待4個NOP
  60.     _nop_();
  61.     _nop_();
  62.     _nop_();
  63.     while (!(ADC_CONTR & ADC_FLAG));        //等待ADC轉(zhuǎn)換完成
  64.     ADC_CONTR &= ~ADC_FLAG;                 //清除ADC標志

  65.     return ADC_RES;
  66. }





  67. void main()
  68. {
  69.     BYTE ADCbg;
  70.     BYTE ADCp0, ADCp1, ADCp2, ADCp3, ADCp4, ADCp5, ADCp6, ADCp7;            
  71.     WORD V0, V1, V2, V3, V4, V5, V6, V7;
  72.         P3M0 = 0xC0;      //led接在p3.6上,設(shè)為強推挽模式,參數(shù)說明見STC15.PDF第401頁
  73.     P3M1 = 0X00;


  74.         while (1)
  75.     {
  76.            
  77.                                 P1M0 = 0x00;
  78.                                 P1M1 = 0xFF;           //設(shè)為高阻模式
  79.                                 
  80.                 //第一步:通過ADC的第9通道測試Bandgap電壓的ADC測量值
  81.                                 ADC_RES = 0;                            //清除結(jié)果寄存器
  82.                                 P1ASF = 0x00;                           //不設(shè)置P1ASF,即可從ADC的第9通道讀取內(nèi)部Bandgap電壓的ADC測量值
  83.                                 GetADC(0);
  84.                                 GetADC(0);
  85.                                 ADCbg = GetADC(0);
  86.                         
  87.                 //第二步:通過ADC的第2通道測試外部輸入電壓的ADC測量值    說明見STC15.PDF第926頁
  88.                                   ADC_RES = 0;                            //清除結(jié)果寄存器
  89.                                 P1ASF = 0x01;                           //設(shè)置P1.0口為模擬通道
  90.                                 GetADC(0);
  91.                                 GetADC(0);
  92.                                 ADCp0 = GetADC(0);

  93.                                   ADC_RES = 0;                            //清除結(jié)果寄存器
  94.                                 P1ASF = 0x02;                           //設(shè)置P1.1口為模擬通道
  95.                                 GetADC(1);
  96.                                 GetADC(1);
  97.                                 ADCp1 = GetADC(1);

  98.                                   ADC_RES = 0;                            //清除結(jié)果寄存器
  99.                                 P1ASF = 0x04;                           //設(shè)置P1.2口為模擬通道
  100.                                 GetADC(2);
  101.                                 GetADC(2);
  102.                                 ADCp2 = GetADC(2);

  103.                                   ADC_RES = 0;                            //清除結(jié)果寄存器
  104.                                 P1ASF = 0x08;                           //設(shè)置P1.3口為模擬通道
  105.                                 GetADC(3);
  106.                                 GetADC(3);
  107.                                 ADCp3 = GetADC(3);

  108.                                    ADC_RES = 0;                            //清除結(jié)果寄存器
  109.                                 P1ASF = 0x10;                           //設(shè)置P1.4口為模擬通道
  110.                                 GetADC(4);
  111.                                 GetADC(4);
  112.                                 ADCp4 = GetADC(4);

  113.                                   ADC_RES = 0;                            //清除結(jié)果寄存器
  114.                                 P1ASF = 0x20;                           //設(shè)置P1.5口為模擬通道
  115.                                 GetADC(5);
  116.                                 GetADC(5);
  117.                                 ADCp5 = GetADC(5);

  118.                                   ADC_RES = 0;                            //清除結(jié)果寄存器
  119.                                 P1ASF = 0x40;                           //設(shè)置P1.6口為模擬通道
  120.                                 GetADC(6);
  121.                                 GetADC(6);
  122.                                 ADCp6 = GetADC(6);

  123.                                   ADC_RES = 0;                            //清除結(jié)果寄存器
  124.                                 P1ASF = 0x80;                           //設(shè)置P1.7口為模擬通道
  125.                                 GetADC(7);
  126.                                 GetADC(7);
  127.                                 ADCp7 = GetADC(7);

  128.                

  129.                 //第三步:通過公式計算外部輸入的實際電壓值
  130.                                 //Vx = Vbg_RAM * ADCx / ADCbg;            //使用RAM中的Bandgap電壓參數(shù)進行計算
  131.                                 V2 = Vbg_ROM * ADCp2 / ADCbg;          //使用ROM中的Bandgap電壓參數(shù)進行計算
  132.         
  133.                          if( V2 > 50 )
  134.                           P3 = 0X40;  //燈亮
  135.                    else
  136.                           P3=  0X00        ;  //燈滅
  137.                
  138.                
  139.                          Delay(1000);                        
  140.         }
  141. }
復(fù)制代碼
將耳機線插入手機,播放音樂,LED燈將閃爍,證明檢測到了信號,停止放音樂,LED燈滅,證明工作正常。P1.2口設(shè)為高阻狀態(tài),并用220K歐的電阻接地,否則會受到雜波干擾,記住隔直電容,把手機燒了就問題大了。
   手頭正好有某寶上買的成品延時電路,用的就是404AS芯片(記住是3按鍵的那種,4按鍵的用的新唐的單片機),把數(shù)碼管拆了,就可以利用此電路做為一個8信號檢測,無信號自動關(guān)機的成品了。

20180615_144508.jpg (627.6 KB, 下載次數(shù): 133)

20180615_144508.jpg

評分

參與人數(shù) 1黑幣 +80 收起 理由
admin + 80 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

10#
ID:350962 發(fā)表于 2018-6-16 14:50 | 只看該作者
最后把成品曬一下。

20180616_141107_001.jpg (369.59 KB, 下載次數(shù): 129)

成品

成品

20180615_232101.jpg (746.36 KB, 下載次數(shù): 137)

擴展電路板

擴展電路板

電路圖.jpg (92.65 KB, 下載次數(shù): 124)

電路圖

電路圖
回復(fù)

使用道具 舉報

11#
ID:350962 發(fā)表于 2018-6-19 16:51 | 只看該作者
本帖最后由 ac9979 于 2018-6-20 10:43 編輯

經(jīng)過幾天的試用,將心得分享一下:
1、電源用的開關(guān)電源,要做好屏蔽工作,否則干擾太大,電路無法工作。我先加電感濾波,效果不明顯,加0.1uF電容,也不明顯,后來 我用銅箔將開關(guān)電源裹緊,接地,工作正常。試驗時用電腦的USB電源則工作正常。
2、實際使用過程中發(fā)現(xiàn)有干擾信號導(dǎo)致無效開機,因此使用持續(xù)信號開機,每30秒清一次干擾。30秒內(nèi)有7個信號即可開機,本程序每250ms檢測一次信號,開機需2秒。
3、實際使用中,功放機關(guān)機有沖擊噪音,20000uf電容放電時間很長,超過10秒以上,因此關(guān)機指令執(zhí)行后,暫停30秒,躲避關(guān)機沖擊噪音,防止頻繁開關(guān)機。



無信號自動關(guān)機.zip

118.03 KB, 下載次數(shù): 60, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報

12#
ID:350962 發(fā)表于 2018-6-19 16:59 | 只看該作者

20180619_134817.jpg (795.4 KB, 下載次數(shù): 114)

20180619_134817.jpg
回復(fù)

使用道具 舉報

13#
ID:60263 發(fā)表于 2019-5-10 18:00 | 只看該作者
不錯,也要做一個
回復(fù)

使用道具 舉報

14#
ID:548116 發(fā)表于 2019-5-29 15:55 | 只看該作者
ac9979 發(fā)表于 2018-6-13 21:27
原計劃用LM339 四電壓比較器 加 成品延時電路搞定,發(fā)現(xiàn)成品延時電路用的就是STC15w404AS, 覺得應(yīng)該可 ...

用  STC15w 的頭文件    P12  不是P1_2   你沒有學習到位啊   
回復(fù)

使用道具 舉報

15#
ID:169354 發(fā)表于 2019-5-31 10:59 | 只看該作者
555定時器搞定
回復(fù)

使用道具 舉報

16#
ID:350962 發(fā)表于 2019-11-5 22:28 | 只看該作者

555是搞不定的,藍牙會收到各種雜波信號,會誤觸發(fā)。當無信號自動關(guān)機時,會有沖擊噪音,又會誤觸發(fā),導(dǎo)致繼續(xù)開機。
回復(fù)

使用道具 舉報

17#
ID:725317 發(fā)表于 2020-4-9 09:43 來自手機 | 只看該作者
挺不錯的
回復(fù)

使用道具 舉報

18#
ID:704585 發(fā)表于 2020-4-10 11:43 | 只看該作者
多謝樓主分享
回復(fù)

使用道具 舉報

19#
ID:1011885 發(fā)表于 2022-3-21 10:26 | 只看該作者
真不錯,大神厲害
回復(fù)

使用道具 舉報

20#
ID:1017092 發(fā)表于 2022-4-9 21:26 來自手機 | 只看該作者
Lan582 發(fā)表于 2022-3-21 10:26
真不錯,大神厲害

很有用,我也想做個
回復(fù)

使用道具 舉報

21#
ID:824664 發(fā)表于 2023-3-14 22:08 | 只看該作者
創(chuàng)新思路,有使用價值,好好學習、
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩在线高清 | 一区二区三区免费网站 | 99久热在线精品视频观看 | www日韩 | 日韩1区| 天天射网站 | 精品国产乱码久久久久久闺蜜 | 亚洲国产精品人人爽夜夜爽 | 最近日韩中文字幕 | 中文字幕一区二区三区精彩视频 | 久久国产精品一区二区三区 | 亚洲一区二区电影在线观看 | 日韩免费一区 | 亚洲视频 欧美视频 | 天天干天天操天天看 | 中文字幕日韩一区 | 日韩一区二区福利 | 亚洲免费视频在线观看 | 国产三级| 欧美成人免费在线 | 午夜精品91 | 三级黄色大片网站 | 中文字幕色站 | 久久精品aaa | 国产一区二区麻豆 | 国产乱码久久久久久一区二区 | 国产成人网 | 国产精品自拍啪啪 | 亚洲欧美精品在线观看 | 一级a性色生活片久久毛片波多野 | 午夜影院在线观看 | 毛片网在线观看 | 日本成人在线观看网站 | 亚洲第一区国产精品 | 国产一区二 | 国产欧美一区二区三区久久人妖 | 国产精品久久久久久久免费大片 | 91文字幕巨乱亚洲香蕉 | 视频一区 亚洲 | 一区二区三区中文字幕 | 天天干视频 |