FMUSER更輕鬆地傳輸視頻和音頻!

[電子郵件保護] WhatsApp的+ 8618078869184
語言

    51單片機控制的立體聲調頻發射器讓BH1415F

     

    51單片機控制的立體聲調頻發射器讓BH1415F

    說明:1,控制使用MCS51,用最小應用系統設計,外圍電路非常簡單! 16按鍵設計,可以控制80.0〜109.9MHz頻率範圍;
    2,4位共陽極LED顯示頻率;
    產品特點:1,可獨立設置百,十,十位,小數點的頻率;
    2,發射頻率的預置;
    3,單聲道/立體聲控制;帶立體聲發射器的指令;
    -------------------------------------------------- -------------------------------------
    ; ***************************;
    ;數控調頻控制器;
    ; ***************************;
    ;
    ; 26H-29H小數位顯示,有點,十,百BCD碼數,24H-25H放電頻率控制數據(十六進制)
    ;
    CONBITL EQU 21H;頻率控制字節低8
    CONBITH EQU 22H;頻率控制字節的高八位
    關鍵字EQU 23H;當存儲鍵值P1端口掃描
    ;
    ;
    ORG 0000H;程序的起始地址
    LJMP START;轉移開始執行
    ORG 0003H;
    RETI;不中斷程序
    ORG 000BH;
    RETI;不中斷程序
    ORG 0013H;
    RETI;不中斷程序
    ORG 001BH;
    RETI;不中斷程序
    ORG 0023H;
    RETI;不中斷程序
    ORG 002BH;
    RETI;不中斷程序
    ;
    ;初始化程序
    CLEARMEN:MOV R0,#20H; 20H-29H循環中清除
    MOV R1,#0AH;
    CLEARLOOP:MOV @ R0,#00H;
    INC R0;
    DJNZ R1,CLEARLOOP;
    MOV P0,#0FFH,其中四個端口設置
    MOV P1,#0FFH;
    MOV P2,#0FFH;
    MOV P3,#0FFH;
    CLR P3.0; BH1415禁止操作
    CLR P3.1;
    CLR P3.2;
    LCALL KEYFUN15;家庭立體聲傳輸模式,打開立體聲發射器指示燈
    CLEAR1:MOV PCON,#00H;控制寄存器清零
    MOV 29H,#00H;設置88MHZ的初始值(示為088.0)
    MOV 28H,#08H;
    MOV 27H,#08H;
    MOV 26H,#00H;
    LCALL DISPUPDAT;寫道BH1415芯片(修改傳輸頻率)
    RET;子程序返回
    ;
    ;主
    START:LCALL CLEARMEN;電初始化
    MAIN:LCALL關鍵字;調查按鍵子程序
    LCALL顯示,LED顯示時間
    AJMP MAIN;轉移主循環
    NOP;電腦錯誤處理
    NOP;
    AJMP START;重新初始化
    ;
    ; 4 * 4矩陣按鍵掃描例行檢查
    關鍵字:MOV P1,#0FFH;
    CLR P1.0;
    MOV A,P1;
    ANL A,#0F0H;
    CJNE A,#0F0H,KEYCON;
    SETB P1.0;
    CLR P1.1;
    MOV A,P1;
    ANL A,#0F0H;
    CJNE A,#0F0H,KEYCON;
    SETB P1.1;
    CLR P1.2;
    MOV A,P1;
    ANL A,#0F0H;
    CJNE A,#0F0H,KEYCON;
    SETB P1.2;
    CLR P1.3;
    MOV A,P1;
    ANL A,#0F0H;
    CJNE A,#0F0H,KEYCON;
    SETB P1.3;
    RET;
    KEYCON:LCALL DL10MS;去抖處理
    MOV A,P1;
    ANL A,#0F0H;
    CJNE A,#0F0H,KEYCHE;
    KEYOUT:RET;干擾,子程序返回
    KEYCHE:MOV A,P1;
    MOV關鍵字,A;
    CJLOOP:LCALL DISPLAY;
    MOV A,P1;
    ANL A,#0F0H;
    CJNE A,#0F0H,CJLOOP;
    MOV R7,#00H;
    MOV DPTR,#密鑰表;
    CHEKEYLOOP:MOV A,R7;
    MOVC A,@ A + DPTR;
    XRL A,關鍵字;
    JZ KEYOK; 0(等於)轉KEYOK
    INC R7,範圍,再加上一些查表的
    CJNE R7,#10H,CHEKEYLOOP;
    RET;
    ;
    KEYOK:MOV A,R7;
    MOV B,A,B為
    RL A;左
    ADD A,B;增加(由關鍵3字節指令處理JMP 3)
    MOV DPTR,#KEYFUNTAB;
    JMP @ A + DPTR;
    KEYFUNTAB:LJMP KEYFUN00;
    LJMP KEYFUN01;
    LJMP KEYFUN02;
    LJMP KEYFUN03
    LJMP KEYFUN04
    LJMP KEYFUN05
    LJMP KEYFUN06
    LJMP KEYFUN07
    LJMP KEYFUN08
    LJMP KEYFUN09
    LJMP KEYFUN10
    LJMP KEYFUN11
    LJMP KEYFUN12
    LJMP KEYFUN13
    LJMP KEYFUN14
    LJMP KEYFUN15,跳轉到該程序的15th關鍵功能
    RET;批量傳輸錯誤返回
    ;
    ;對應P1端口值表中的鍵數(同時按下兩個鍵是無效的操作)
    密鑰表:DB 0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH
    DB 0EBH,0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77H,0FFH,0FFH
    ;
    ;該計劃的第0關鍵功能
    KEYFUN00:INC 29H;
    MOV A,29H;
    CLR℃;
    CJNE A,#02H,FUN00;
    FUN00:JC FUN00OUT;
    MOV 29H,#00H;
    FUN00OUT:MOV A,29H;
    XRL A,#01H;
    JNZ F00OUT1;
    MOV 28H,#00H;
    AJMP F00OUT;
    F00OUT1:MOV 28H,#08H;
    F00OUT:LCALL DISPUPDAT;
    RET;返回
    ;
    ;該計劃的1st關鍵功能
    KEYFUN01:INC 28H;
    MOV A,28H;
    CLR℃;
    CJNE A,#0AH,FUN01;
    FUN01:JC FUN01OUT;
    MOV 28H,#00H;
    FUN01OUT:MOV A,29H;
    XRL A,#01H;
    JNZ F01OUT;
    MOV 28H,#00H;
    AJMP F001OUT;
    F01OUT:MOV A,28H;
    XRL A,#08H;
    JZ F001OUT;
    MOV A,28H;
    XRL A,#09H;
    JZ F001OUT;
    MOV 28H,#08H;
    F001OUT:LCALL DISPUPDAT;
    RET;返回
    ;
    ;該2nd鍵功能程序
    KEYFUN02:INC 27H;個位數加1
    MOV A,27H;
    CLR℃;
    CJNE A,#0AH,FUN02;確定比10是否少
    FUN02:JC FUN02OUT;小於10變成FUN02OUT
    MOV 27H,#00H;大於或等於10被清零0
    FUN02OUT:LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
    RET;
    ;
    ;該計劃的3rd關鍵功能
    KEYFUN03:INC 26H;個位數加1
    MOV A,26H;
    CLR℃;
    CJNE A,#0AH,FUN03,判斷是不是小於10
    FUN03:JC FUN03OUT;小於10變成FUN03OUT
    MOV 26H,#00H;大於或等於10被清零0
    FUN03OUT:LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
    RET;返回
    ;
    ; 04關鍵功能的程序(預設頻率鍵)
    KEYFUN04:MOV 29H,#01H;預置109.0MHZ發射頻率
    MOV 28H,#00H
    MOV 27H,#09H
    MOV 26H,#00H
    LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
    RET
    ;
    ; 05關鍵功能的程序(預設頻率鍵)
    KEYFUN05:MOV 29H,#01H;預置108.0MHZ發射頻率
    MOV 28H,#00H
    MOV 27H,#08H
    MOV 26H,#00H
    LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
    RET
    ;
    ; 06關鍵功能的程序(預設頻率鍵)
    KEYFUN06:MOV 29H,#01H;預置105.0MHZ發射頻率
    MOV 28H,#00H
    MOV 27H,#05H
    MOV 26H,#00H
    LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
    RET
    ;
    ;程序(頻率預置密鑰)的7th關鍵功能
    KEYFUN07:MOV 29H,#01H;預置100.0MHZ發射頻率
    MOV 28H,#00H
    MOV 27H,#00H
    MOV 26H,#00H
    LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
    RET
    ;
    ; 08關鍵功能的程序(預設頻率鍵)
    KEYFUN08:MOV 29H,#00H;預置傳輸頻率98.0MHZ
    MOV 28H,#09H
    MOV 27H,#08H
    MOV 26H,#00H
    LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
    RET
    ;
    ; 09關鍵功能的程序(預設頻率鍵)
    KEYFUN09:MOV 29H,#00H;預置傳輸頻率96.0MHZ
    MOV 28H,#09H
    MOV 27H,#06H
    MOV 26H,#00H
    LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
    RET
    ;
    ;程序(頻率預置密鑰)的10th關鍵功能
    KEYFUN10:MOV 29H,#00H;預置傳輸頻率94.0MHZ
    MOV 28H,#09H
    MOV 27H,#04H
    MOV 26H,#00H
    LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
    RET
    ;
    ; 11關鍵功能的程序(預設頻率鍵)
    KEYFUN11:MOV 29H,#00H;預置傳輸頻率92.0MHZ
    MOV 28H,#09H
    MOV 27H,#02H
    MOV 26H,#00H
    LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
    RET
    ;
    ;程序(頻率預置密鑰)的12th關鍵功能
    KEYFUN12:MOV 29H,#00H;預置傳輸頻率90.0MHZ
    MOV 28H,#09H
    MOV 27H,#00H
    MOV 26H,#00H
    LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
    RET
    ;
    ;程序(頻率預置密鑰)的13th關鍵功能
    KEYFUN13:MOV 29H,#00H;預置傳輸頻率88.0MHZ
    MOV 28H,#08H
    MOV 27H,#08H
    MOV 26H,#00H
    LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
    RET
    ;
    ;程序(頻率預置密鑰)的14th關鍵功能;預置傳輸頻率87.0MHZ
    KEYFUN14:MOV 29H,#00H
    MOV 28H,#08H
    MOV 27H,#07H
    MOV 26H,#08H
    LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
    RET
    ;
    ; 15關鍵功能的程序(立體聲/單聲道設置鍵)
    KEYFUN15:CPL 03H;
    JNB 03H,單聲道;
    CLR P3.3;
    LCALL PUTBIT;
    RET;返回
    MON SETB P3.3;
    LCALL PUTBIT;
    RET;返回
    ;
    ; BCD碼轉換為十六進制,和5個控制代碼的合成操作碼,寫控制芯片
    DISPUPDAT:LCALL BCDB;
    LCALL CONCOMMAND;
    LCALL PUTBIT;發送控制字到BH1415
    RET;返回
    ;
    ; BCD碼轉換為十六進制的程序
    BCDB:MOV CONBITL,#00H;控制字0
    MOV CONBITH,#00H;控制字0
    MOV CONBITL,26H;小數位控制字到低8
    MOV A,27H;個位數由10操作
    MOV B,#10;
    LCALL MULLOOP;調乘法子程序
    MOV A,28H; 100十位數的乘法運算
    MOV B,#100;
    LCALL MULLOOP;調乘法子程序
    MOV A,29H;
    JNZ ADD3E8;百位是一個回合ADD3E8(加1000操作)
    RET;百位數是0退出
    ADD3E8:CLR℃;明確的二進制標誌
    MOV A,#0E8H;低8位加法器
    ADD A,CONBITL;積累
    MOV CONBITL,A;回CONBITL
    MOV A,#03H;高八位加法
    ADDC A,CONBITH;
    MOV CONBITH,A;回CONBITH
    RET;返回
    ;
    ;乘法和積累的過程(四個小數顯示BCD碼轉換成二進制數)
    MULLOOP:MUL AB;乘法
    清除進位標誌; CLR的ç
    ADD A,CONBITL;情節與CONBITL加入低8
    MOV CONBITL,A;回CONBITL
    MOV A,CONBITH;
    ADDC A,B,融入了高8位累加器與CONBITH
    MOV CONBITH,A;回CONBITH
    RET;返回
    ;
    ;頻率控制數據和5個控制代碼的合成BH1415控制字
    CONCOMMAND:ANL CONBITH,#07H;
    MOV A,20H;
    ORL A,CONBITH;
    MOV CONBITH,A;
    RET;返回
    ;
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ;;顯示程序;;
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ;共陽極LED顯示屏,代碼P0端口輸出部分,P2口輸出掃描字
    顯示:MOV R1,#26H,顯示的第一個地址
    MOV R5,#0FEH;讓掃描字
    播放:MOV A,R5;為A
    MOV P2,A; P2端口輸出
    MOV A,@ R1;讀取顯示數據
    MOV DPTR,#TAB;採取的第一個地址段碼表
    MOVC A,@ A + DPTR;調查分部
    MOV P0,A;從P0輸出
    MOV A,R5;讀取掃描的單詞
    JB ACC.1,PLAY1;十(LED),不顯示小數點
    CLR P0.7;十歲,顯示小數點
    PLAY1:LCALL DL1MS,點燃了一毫秒
    INC R1;指向下一個顯示數據
    JNB ACC.3,ENDOUT;是第四個LED燈,出口
    RL A;相反,留下了
    MOV R5,A;回R5
    SETB P0.7;關十進制
    AJMP播放;傳輸播放週期
    ENDOUT:MOV P2,#0FFH;展會結束了顯示輸出
    MOV P0,#0FFH;
    RET;返回
    ;
    沉陽科秒錶0-9
    TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0FFH
    ;
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ;;發送控制字節子程序;;
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ;
    PUTBIT:MOV A,CONBITL;低8位控制字為A
    SETB P3.2; BH1415啟用(寫)
    LCALL放,送8
    MOV A,CONBITH;高八位控制字為A
    LCALL放,送8
    CLR P3.2; BH1415寫禁止
    CLR P3.0;重置
    CLR P3.1;重置
    RET;返回
    ;
    ;字節發送子程序
    PUT:MOV R3,#8;發送八個控制
    CLR℃;清Ç
    PUT1:RRC A;進右(開始低)
    MOV P3.0,C,低到P3.0端口
    NOP;延緩4微秒
    NOP;
    NOP;
    NOP;
    SETB P3.1;鎖存數據(上升沿鎖存數據)
    NOP;延緩4微秒
    NOP;
    NOP;
    NOP;
    CLR P3.1;
    DJNZ R3,PUT1; 8位未完成輪到他PUT1復發
    8成品末端; RET
    ;
    ; 513微秒級延時子程序
    DL513:MOV R3,#0FFH
    DL513LOOP:DJNZ R3,DL513LOOP
    RET
    ;
    ; 1毫秒延時子程序(LED燈用)
    DL1MS:MOV R4,#02H
    DL1MSLOOP:LCALL DL513
    DJNZ R4,DL1MSLOOP
    RET
    ;
    ; 10毫秒延時子程序(抖動消除通過)
    DL10MS:MOV R6,#0AH
    DL10MSLOOP:LCALL DL1MS
    DJNZ R6,DL10MSLOOP
    RET
    ;
    ;
    結束

     

     

     

     

    列出所有問題

    暱稱

    電子郵件

    問題

    我們的其他產品:

    專業調頻電台設備包

     



     

    酒店IPTV解決方案

     


      輸入電子郵件以獲取驚喜

      fmuser.org

      es.fmuser.org
      it.fmuser.org
      fr.fmuser.org
      de.fmuser.org
      af.fmuser.org ->荷蘭語
      sq.fmuser.org ->阿爾巴尼亞人
      ar.fmuser.org ->阿拉伯語
      hy.fmuser.org - >亞美尼亞
      az.fmuser.org ->阿塞拜疆
      eu.fmuser.org ->巴斯克
      be.fmuser.org ->白俄羅斯語
      bg.fmuser.org - >保加利亞
      ca.fmuser.org ->加泰羅尼亞語
      zh-CN.fmuser.org ->中文(簡體)
      zh-TW.fmuser.org - >中國(繁體)
      hr.fmuser.org ->克羅地亞語
      cs.fmuser.org ->捷克
      da.fmuser.org ->丹麥語
      nl.fmuser.org - >荷蘭
      et.fmuser.org ->愛沙尼亞語
      tl.fmuser.org ->菲律賓
      fi.fmuser.org ->芬蘭語
      fr.fmuser.org - >法國
      gl.fmuser.org ->加利西亞語
      ka.fmuser.org ->喬治亞
      de.fmuser.org ->德語
      el.fmuser.org - >希臘
      ht.fmuser.org ->海地克里奧爾語
      iw.fmuser.org ->希伯來語
      hi.fmuser.org ->印地語
      hu.fmuser.org - >匈牙利
      is.fmuser.org ->冰島語
      id.fmuser.org ->印尼語
      ga.fmuser.org ->愛爾蘭
      it.fmuser.org - >意大利
      ja.fmuser.org ->日語
      ko.fmuser.org ->韓文
      lv.fmuser.org ->拉脫維亞
      lt.fmuser.org - >立陶宛
      mk.fmuser.org ->馬其頓語
      ms.fmuser.org ->馬來語
      mt.fmuser.org ->馬耳他語
      no.fmuser.org - >挪威
      fa.fmuser.org ->波斯語
      pl.fmuser.org ->波蘭語
      pt.fmuser.org ->葡萄牙語
      ro.fmuser.org - >羅馬尼亞
      ru.fmuser.org ->俄語
      sr.fmuser.org ->塞爾維亞語
      sk.fmuser.org ->斯洛伐克
      sl.fmuser.org - >斯洛文尼亞
      es.fmuser.org ->西班牙語
      sw.fmuser.org ->斯瓦希里語
      sv.fmuser.org ->瑞典語
      th.fmuser.org - >泰國
      tr.fmuser.org ->土耳其語
      uk.fmuser.org ->烏克蘭語
      ur.fmuser.org ->烏爾都語
      vi.fmuser.org - >越南
      cy.fmuser.org ->威爾士語
      yi.fmuser.org - >意第緒語

       
  •  

    FMUSER更輕鬆地傳輸視頻和音頻!

  • 聯絡我們

    地址:
    305廣州市環浦路273號匯蘭大廈510620室

    電子郵件:
    [電子郵件保護]

    電話/ WhatApps:
    + 8618078869184

  • 分類

  • 電子通訊

    名字或全名

    Email

  • 貝寶的解決方案  西聯匯款中國銀行
    電子郵件:[電子郵件保護]   WhatsApp:+8618078869184 Skype:sky198710021 跟我聊天
    版權所有2006-2020技術支持 www.fmuser.org

    聯絡我們