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

          新聞中心

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

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

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

          上一頁 1 2 下一頁

          關(guān)鍵詞: 51單片機(jī)315M匯編程

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();