<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ò) 收藏
          ;防盜器子機(jī)程序
          FSDY EQU P1.7 ;發(fā)射電源端,高電平為輸出
          FSKZ EQUP1.6 ;發(fā)射控制端,低電平有效
          FSDD EQU P1.5 ;發(fā)射控制D端,高電平控制有效
          FSCC EQU P1.4 ;發(fā)射控制C端,高電平控制有效
          FSBB EQU P1.3 ;發(fā)射控制B端,高電平控制有效
          CGDY EQU P1.2 ;傳感器電源端,高電平為輸出
          SPK1 EQU P1.1 ;報(bào)警喇叭,高電平為輸出,暫時(shí)不用
          DYAD EQU P1.0 ;電源AD輸入端
          CGQ1 EQU P3.0 ;振動(dòng)傳感器
          CGQ2 EQU P3.1 ;微波傳感器
          JSVT EQU P3.2 ;接收頭VT端
          JSDD EQU P3.3 ;接收頭D輸出端,有效高電平輸出
          JSCC EQU P3.4 ;接收頭C輸出端,有效高電平輸出
          JSBB EQU P3.5 ;接收頭B輸出端,有效高電平輸出
          LED1 EQU P3.7 ;指示燈
          P1MO EQU 91H
          P1M1 EQU 92H
          P1MA EQU 00000001B
          P1MB EQU 10111110B
          JSBM EQU 00111100B;設(shè)置接收端口狀態(tài),屏蔽P3.7、P3.6、P3.1、P3.0
          KJBM EQU 00100000B;設(shè)定開機(jī)編碼為011(即接收頭B為0、C為1、D為1)
          ZDBM EQU 00110000B;設(shè)定振動(dòng)探測報(bào)警編碼為110
          WBBM EQU 00101000B;設(shè)定微波探測報(bào)警編碼為101
          DYBM EQU 00010000B;設(shè)定子機(jī)電源低壓報(bào)警編碼為010,也是接收尋車
          GJBM EQU 00001000B;設(shè)定2分鐘聯(lián)絡(luò)子機(jī)一次編號(hào)為001,也是接收啟動(dòng)
          DYBJ EQU 80H ;設(shè)定電源低電壓(9V以下)報(bào)警值
          ;┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
          ;A/D轉(zhuǎn)換程序。
          ADC_CONTR EQU 0C5H ;A/D轉(zhuǎn)換寄存器
          ADC_DATA EQU 0C6H ;A/D轉(zhuǎn)換結(jié)果寄存器,
          ;為10位A/D轉(zhuǎn)換結(jié)果的高8位
          ;ADC_LOW2 EQU 0BEH ;A/D轉(zhuǎn)換結(jié)果寄存器,低2位有效,
          ;為10位A/D轉(zhuǎn)換結(jié)果的低2位
          ;如果不用ADC_L0W2的低2位,
          ;只用ADC_DATA的8位,則為8位A/D轉(zhuǎn)換
          ADC_Powerl0 EQU 11100000B;P1.0作為A/D輸入
          ;定義變量
          ADC_Chl0 EQU 32H ;0通道A/D轉(zhuǎn)換結(jié)果
          ;┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
          ORG 0000H ;程序執(zhí)行開始地址
          LJMP KS ;跳至KS
          ORG 0003H ;外中斷0中斷程序入口
          LJMP INT00 ;中斷返回
          ORG 000BH ;定時(shí)器T0中斷程序入口
          LJMP INTT0 ;跳至INTT0中斷服務(wù)程序
          ORG 0013H ;外中斷1中斷入口
          RETI ;中斷返回
          ORG 001BH ;定時(shí)器T1中斷程序入口
          RETI ;中斷返回
          ORG 0023H ;串口中斷入口地址
          RETI
          ORG 100H
          ;開機(jī)初始化
          KS: ACALL CLEAR1 ;設(shè)定初值
          MOV PSW,#00H ;設(shè)程序狀態(tài)字寄存器為00
          MOV SCON,#00H ;設(shè)串行口控制寄存器為00
          CLR LED1 ;指示燈提示通電
          ACALL YS2 ;延時(shí)
          SETB LED1 ;關(guān)指示燈
          ;----------------------------------------------------------------
          ;開機(jī)檢測
          ACALL ADAD
          SUBB A,#DYBJ ;與預(yù)定值比較
          ACALL CLEAR1 ;重新設(shè)定初值
          JNC KS2 ;電壓低報(bào)警,正常才能開防盜器
          MOV A,#20 ;低壓則連續(xù)報(bào)警20次
          KS1: ACALL DYFS ;電壓低發(fā)射010報(bào)警信號(hào)
          CLR LED1 ;紅燈亮
          ACALL YS2 ;延時(shí)
          SETB LED1 ;紅燈滅
          ACALL YS2 ;延時(shí)
          DEC A
          JNZ KS1
          CLR LED1 ;紅燈閃20次后常亮
          ORL PCON,#2 ;進(jìn)入掉電模式,只有復(fù)位才能啟動(dòng)
          NOP
          NOP
          NOP
          AJMP KS ;軟件陷阱
          ;--------------------------------------------------
          ;電源電壓檢測(AD轉(zhuǎn)換)后進(jìn)入待機(jī)狀態(tài)
          ;--------------------------------------------------
          KS2: CLR IT0 ;外部中斷低電平觸發(fā)
          SETB EA ;開總中斷允許
          SETB EX0 ;開外部中斷0
          KS3: ORL PCON,#01H ;進(jìn)入待機(jī),只有外中斷或復(fù)位才能啟動(dòng)
          NOP ;退出中斷后設(shè)置軟件陷阱
          NOP
          NOP
          CJNE A,#KJBM,KS2 ;必須是開機(jī)信號(hào),信號(hào)不對(duì)返回繼續(xù)進(jìn)入待機(jī)
          ;--------------------------------------------------
          ;開始進(jìn)入防盜狀態(tài)
          ;--------------------------------------------------
          KS0: SETB CGDY ;打開振動(dòng)和微波探測頭電源
          CLR A ;A清零
          CLR LED1 ;進(jìn)入報(bào)警監(jiān)測狀態(tài),指示燈亮
          SETB SPK1 ;報(bào)警器響一下,進(jìn)入防盜狀態(tài)
          ACALL YS3 ;延時(shí)
          CLR SPK1 ;關(guān)報(bào)警器
          ACALL KJFS ;發(fā)射011回應(yīng)主機(jī),表示收到并進(jìn)入防盜狀態(tài)
          SETB LED1 ;指示燈滅
          ACALL YS2
          ;--------------------------------------------------
          ;
          ;--------------------------------------------------
          MOV TMOD,#00010001B;設(shè)定時(shí)器T1為計(jì)數(shù)器方式(方式1)
          MOV TH0,#3CH ;設(shè)T1為100mS
          MOV TL0,#0B0H
          SETB ET0 ;允許定時(shí)器T1中斷
          SETB TR0 ;啟動(dòng)計(jì)數(shù)器T1
          MOV 30H,#00H ;100ms時(shí)間計(jì)數(shù)器清零
          MOV R0,#00H ;10s時(shí)間到標(biāo)志位清零
          MOV 34H,#00H
          MOV 33H,#0FH
          MOV 35H,#00H
          MOV R1,#0FH
          ;--------------------------------------------------
          ;正式進(jìn)入防盜狀態(tài)
          ;--------------------------------------------------
          KS4: JNB CGQ1,KS5 ;檢測振動(dòng)傳感器是否輸出(有盜情)
          ACALL YS1
          JNB CGQ1,KS5
          CLR TR0 ;關(guān)定時(shí)中斷
          INC 35H
          MOV A,35H
          CJNE A,#10,S2
          DEC 35H
          SETB SPK1 ;報(bào)警器響一下
          ACALL YS2 ;延時(shí)
          CLR SPK1 ;關(guān)報(bào)警器
          SJMP KS5
          S2: ACALL ZDFS ;檢測到振動(dòng)傳感器有輸出,發(fā)射110報(bào)警信號(hào)
          ACALL YS2 ;延時(shí)
          SETB TR0 ;開定時(shí)中斷允許
          KS5: JB CGQ2,KS6 ;檢測微波傳感器是否輸出(有盜情)
          ;ACALL YS1
          ;JB CGQ2,KS6
          CLR TR0 ;關(guān)定時(shí)中斷
          DJNZ R1,S1
          INC R1
          SETB SPK1 ;報(bào)警器響一下,進(jìn)入防盜狀態(tài)
          ACALL YS2 ;延時(shí)
          CLR SPK1 ;關(guān)報(bào)警器
          SJMP KS6
          S1: ACALL WBFS ;檢測到微波傳感器有輸出,發(fā)射101報(bào)警信號(hào)
          ACALL YS2 ;延時(shí)
          SETB TR0 ;開定時(shí)中斷允許
          KS6: CJNE R0,#01H,KS7 ;10S檢測一次電源電壓
          CLR TR0 ;關(guān)定時(shí)中斷
          ACALL ADAD ;調(diào)用電源電壓檢測程序
          ACALL CLEAR2 ;重新設(shè)定初值
          SUBB A,#DYBJ ;與預(yù)定值比較
          CLR A ;A清零
          MOV R0,#00H ;10s時(shí)間到標(biāo)志位清零
          SETB TR0 ;開定時(shí)中斷允許
          JNC KS7 ;電壓低報(bào)警
          CLR TR0 ;關(guān)定時(shí)中斷
          ACALL DYFS ;電壓低發(fā)射010報(bào)警信號(hào)
          SETB TR0 ;開定時(shí)中斷允許
          DJNZ 33H,KS7
          CLR LED1
          CLR TR0 ;關(guān)定時(shí)中斷
          AJMP KS2
          KS7: MOV A,P3 ;收到子機(jī)的反饋信號(hào)則判斷是否正確
          ANL A,#JSBM ;屏蔽P3.7、P3.6、P3.1、P3.0
          CJNE A,#GJBM,KS8 ;檢測是否收到主機(jī)的關(guān)機(jī)信號(hào)
          CLR ET0 ;無信號(hào)則關(guān)定時(shí)器T1中斷
          CLR CGDY ;關(guān)傳感器電源
          CLR LED1 ;進(jìn)入報(bào)警監(jiān)測狀態(tài),指示燈亮
          SETB SPK1 ;報(bào)警器響一下,進(jìn)入防盜狀態(tài)
          ACALL YS2 ;延時(shí)
          CLR SPK1 ;關(guān)報(bào)警器
          ACALL YS3 ;延時(shí)
          SETB SPK1 ;報(bào)警器響一下,進(jìn)入防盜狀態(tài)
          ACALL YS3 ;延時(shí)
          CLR SPK1 ;關(guān)報(bào)警器
          ACALL GJFS ;調(diào)用關(guān)機(jī)發(fā)射程序
          SETB LED1 ;進(jìn)入報(bào)警監(jiān)測狀態(tài),指示燈亮
          JNB JSVT,$ ;等待主機(jī)停止發(fā)射
          AJMP KS2 ;返回進(jìn)入待機(jī)狀態(tài)
          KS8: CJNE A,#KJBM,S3
          JNB JSVT,$ ;等待主機(jī)停止發(fā)射
          AJMP KS0 ;返回進(jìn)入待機(jī)狀態(tài)
          S3: CJNE A,#DYBM,S4
          SETB SPK1 ;報(bào)警器響一下,進(jìn)入防盜狀態(tài)
          ACALL YS3 ;延時(shí)
          CLR SPK1 ;關(guān)報(bào)警器
          MOV R1,#01H
          S4: AJMP KS4
          ;****************************************************************
          ;----------------------------------------------------------------
          ;以下為子程序
          ;----------------------------------------------------------------
          ;----------------------------------------------------------------
          ;以下為開機(jī)發(fā)射程序
          ;----------------------------------------------------------------
          ;主機(jī)開機(jī)子機(jī)發(fā)射編碼011給主機(jī)以聯(lián)通
          KJFS: CLR LED1 ;指示燈亮
          CLR FSBB ;B端為0
          SETB FSCC ;C端為1
          SETB FSDD ;D端為1
          CLR FSKZ ;允許發(fā)射
          ACALL TZFS ;調(diào)用停止發(fā)射程序
          RET ;返回
          ;----------------------------------------------------------------
          ;以下為振動(dòng)輸出(有盜情)的發(fā)射程序
          ;----------------------------------------------------------------
          ;振動(dòng)輸出(有盜情)發(fā)射編碼110給主機(jī)進(jìn)行報(bào)警
          ZDFS: CLR LED1 ;指示燈亮
          SETB FSBB ;B端為1
          SETB FSCC ;C端為1
          CLR FSDD ;D端為0
          CLR FSKZ ;允許發(fā)射
          ACALL TZFS ;調(diào)用停止發(fā)射程序
          RET ;返回

          上一頁 1 2 下一頁

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

          評(píng)論


          技術(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); })();