<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機的315M接收頭接收匯編程序(從機)

          51單片機的315M接收頭接收匯編程序(從機)

          作者: 時間:2016-11-28 來源:網絡 收藏
          ;----------------------------------------------------------------
          ;以下為微波輸出(有盜情)的發(fā)射程序
          ;----------------------------------------------------------------
          ;微波輸出(有盜情)發(fā)射編碼101給主機進行報警
          WBFS: CLR LED1 ;指示燈亮
          SETB FSBB ;B端為1
          CLR FSCC ;C端為0
          SETB FSDD ;D端為1
          CLR FSKZ ;允許發(fā)射
          ACALL TZFS ;調用停止發(fā)射程序
          RET ;返回
          ;----------------------------------------------------------------
          ;以下為聯(lián)絡主機的發(fā)射程序
          ;----------------------------------------------------------------
          ;聯(lián)絡主機發(fā)射編碼001給主機
          GJFS: CLR LED1 ;指示燈亮
          CLR FSBB ;B端為0
          CLR FSCC ;C端為0
          SETB FSDD ;D端為1
          CLR FSKZ ;允許發(fā)射
          ACALL TZFS ;調用停止發(fā)射程序
          RET ;返回
          ;----------------------------------------------------------------
          ;以下為電源低壓的發(fā)射程序
          ;----------------------------------------------------------------
          ;子機電源低壓發(fā)射編碼010給主機進行報警
          DYFS: CLR LED1 ;指示燈亮
          CLR FSBB ;B端為0
          SETB FSCC ;C端為1
          CLR FSDD ;D端為0
          CLR FSKZ ;允許發(fā)射
          ACALL TZFS ;調用停止發(fā)射程序
          RET ;返回
          ;----------------------------------------------------------------
          ;以下為停止發(fā)射程序
          ;----------------------------------------------------------------
          TZFS: ACALL YS2 ;延時
          ACALL YS2 ;延時
          SETB FSKZ ;停止發(fā)射
          CLR FSBB ;B端為0
          CLR FSCC ;C端為0
          CLR FSDD ;D端為0
          SETB LED1 ;指示燈滅
          RET ;返回
          ;----------------------------------------------------------------
          ;以下為初始化程序
          ;----------------------------------------------------------------
          CLEAR1:MOV P1MO,#P1MA ;P1端口狀態(tài)
          MOV P1M1,#P1MB
          MOV SP,#50H ;設推棧初值
          SETB FSDY ;關閉發(fā)射編碼IC電源
          SETB FSKZ
          CLR FSDD ;發(fā)射電路不發(fā)射(D端為0)
          CLR FSCC ;發(fā)射電路不發(fā)射(C端為0)
          CLR FSBB ;發(fā)射電路不發(fā)射(B端為0)
          CLR CGDY ;關傳感器電源
          CLR SPK1 ;關報警喇叭
          RET
          ;----------------------------------------------------------------
          ;以下為進入防盜后AD轉換后初始化程序
          ;----------------------------------------------------------------
          CLEAR2:MOV P1MO,#P1MA ;P1端口狀態(tài)
          MOV P1M1,#P1MB
          ;MOV SP,#50H ;設推棧初值
          SETB FSDY ;關閉發(fā)射編碼IC電源
          SETB FSKZ
          CLR FSDD ;發(fā)射電路不發(fā)射(D端為0)
          CLR FSCC ;發(fā)射電路不發(fā)射(C端為0)
          CLR FSBB ;發(fā)射電路不發(fā)射(B端為0)
          SETB CGDY ;開傳感器電源
          CLR SPK1 ;關報警喇叭
          RET
          ;----------------------------------------------------------------
          ;以下為外中斷(接收頭收到信號)處理程序
          ;----------------------------------------------------------------
          INT00:CLR EX0 ;關外中斷
          MOV A,P3 ;收到子機的反饋信號則判斷是否正確
          ANL A,#JSBM ;屏蔽P3.7、P3.6、P3.1、P3.0
          MOV 34H,A
          JNB JSVT,$ ;等待主機停止發(fā)射
          ;SETB EA ;開總中斷允許
          RETI
          ;----------------------------------------------------------------
          ;以下為處理程序
          ;----------------------------------------------------------------
          ;中斷處理程序
          INTT0:CLR EA ;關總中斷
          PUSH ACC ;進棧保護ACC數(shù)據
          PUSH PSW ;進棧保護PSW數(shù)據
          MOV TH0,#3CH ;設T1為100mS
          MOV TL0,#0B0H
          INC 30H ;ms時間計數(shù)器
          MOV A,30H
          CJNE A,#100,LOP2 ;計時計數(shù)器,10s進位1次
          MOV 30H,#00H ;ms時間計數(shù)器清零,重新開始計時
          MOV R0,#01H ;10s到標志
          LOP2: POP PSW ;PSW出棧
          POP ACC ;ACC出棧
          SETB EA ;開總中斷
          RETI ;中斷返回
          ;----------------------------------------------------------------
          ;以下為AD轉換程序,監(jiān)測電源電源
          ;----------------------------------------------------------------
          ;AD轉換
          ADAD:ACALL ADC_Power_On ;開ADC電源,第一次使用時要打開內部模擬電源
          ;開ADC電源,可適當加延時,1mS以內就足夠了
          ACALL Set_ADC_Channel_0 ;設置P1.0作為A/D轉換通道
          ACALL Get_AD_Result ;測量電壓并且取A/D轉換結果
          MOV A, ADC_Chl0 ;A/D轉換結果
          RET
          ;┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
          ADC_Power_On:
          PUSH ACC
          ORL ADC_CONTR,#80H ;開A/D轉換電源
          MOV A, #20H
          ACALL Delay ;開A/D轉換電源后要加延時,ImS以內就足夠了
          POP ACC
          RET
          ;┈┈┈┈┈┈┈┈┈┈┈
          Set_ADC_Channel_0:
          MOV ADC_CONTR,#ADC_Powerl0
          ;選擇P1.0作為A/D轉換通道
          MOV A,#05H ;更換A/D轉換通道后要適當延時,使輸入電壓穩(wěn)定
          ;以后如果不更換A/D轉換通道的話,不需要加延時
          ACALL Delay ;切換A/D轉換通道,加延時20uS~200uS就可以了,
          ;也輸入電壓源的內阻有關
          ;如果輸入電壓信號源的內阻在10K以下,可不加延時
          RET
          ;┈┈┈┈┈┈┈┈┈┈┈
          Get_AD_Result:
          PUSH ACC ;入棧保護
          MOV ADC_DATA,#0
          ORL ADC_CONTR,#00001000B ;啟動 AD 轉換
          Wait_AD_Finishe:
          MOV A,#00010000B ;判斷 AD 轉換是否完成
          ANL A,ADC_CONTR
          JZ Wait_AD_Finishe ;AD 轉換尚未完成,繼續(xù)等待
          ANL ADC_CONTR,#11100111B ;清0 ADC_FLAG,ADC_START位,停止A/D轉換
          MOV A,ADC_DATA
          MOV ADC_Chl0,A ;保存 AD 轉換結果
          POP ACC
          RET
          ;┈┈┈┈┈┈┈┈┈┈┈
          Delay:
          PUSH 02 ;將寄存器組0的R2入棧
          PUSH 03 ;將寄存器組0的R3入棧
          PUSH 04 ;將寄存器組0的R4入棧
          MOV R4,A
          Delay_Loop0:
          MOV R3,#200 ;2 CL0CK┈┈┈┈┈┈┈┈+
          Delay_Loop1: ;
          MOV R2,#249 ;2 CL0CK┈+
          Delay_Loop: ; │1002 CLOCK│200406 CLOCK
          DJNZ R2, Delay_LooP ;4 CL0CK
          DJNZ R3, Delay_LooP1 ;4 CL0CK ┈+
          DJNZ R4, Delay_LooP0 ;4 CL0CK┈┈┈┈┈┈┈┈+
          POP 04
          POP 03
          POP 02
          RET
          ;----------------------------------------------------------------
          ;----------------------------------------------------------------
          ;以下為延時子程序
          ;----------------------------------------------------------------
          ;延時子程序
          YS1: MOV R6,#100
          Y11: MOV R7,#0FFH
          Y12: NOP
          NOP
          NOP
          DJNZ R7,Y12
          DJNZ R6,Y11
          RET
          YS2: MOV R5,#08H ;中長時間延時
          Y20: MOV R6,#0FFH
          Y21: MOV R7,#0FFH
          Y22: NOP
          NOP
          NOP
          DJNZ R7,Y22
          DJNZ R6,Y21
          DJNZ R5,Y20
          RET
          ;----------------------------------------------------------------
          YS3: MOV R5,#05H ;長長時間延時
          Y30: MOV R6,#0FFH
          Y31: MOV R7,#0FFH
          Y32: NOP
          NOP
          NOP
          DJNZ R7,Y32
          DJNZ R6,Y31
          DJNZ R5,Y30
          RET
          ORG 0400H
          NOP ;設置軟件陷阱
          NOP
          NOP
          LJMP KS
          END
          ;*****************************************************************

          上一頁 1 2 下一頁

          關鍵詞: 51單片機315M匯編程

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();