男女午夜激情_www.天堂av.com_亚洲综合小说区_亚洲欧美自拍视频_成年精品_久久www免费人成—看片_激情综合五月天_久久高潮视频_最新国产成人ab网站_国产精品卡一

機電之家資源網
單片機首頁|單片機基礎|單片機應用|單片機開發|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發
培訓信息
贊助商
多機紅外通信接收端(匯編程序代碼)
多機紅外通信接收端(匯編程序代碼)
 更新時間:2008-7-26 20:29:42  點擊數:2
【字體: 字體顏色

/***************************************************************+
*文件名: Receive.asm
*版權:  www.zlgmcu.com
*日期:  16:27 04-3-16
*功能:  多機紅外通信接收端程序代碼
****************************************************************/
$NOMOD51
$INCLUDE (REG932.INC)

INFR  EQU P0.4   ;定義紅外接收端口
MOTOR_CONTROL EQU P0.5   ;定義外部設備控制端口

HEADFLAG BIT 0x10   ;定義幀頭出錯標志
BITFLAG  BIT 0x11   ;定義位出錯標志
DATA1  DATA 0x30   ;定義DATA1全局變量
DATA2  DATA 0x31   ;定義DATA2全局變量
;-------------------------------------
 ORG 0000H
 AJMP MAIN
 ORG 003BH
 AJMP KEY_ISR
;-------------------------------------
 ORG 0080H
MAIN:
 MOV P0M1,#0x00   ;定義P0口模式
 MOV P0M2,#0x00

 ACALL KEYISR_INIT   ;調用按鍵中斷初始化程序
 ACALL DELAY100US
LOOP:
 ACALL POWER_DOWN   ;調用完全掉電程序
 AJMP LOOP
 RET
;-------------------------------------
;功能:鍵盤中斷初始化
;-------------------------------------
KEYISR_INIT:
 MOV KBMASK,#0x10   ;P04鍵盤中斷
 MOV KBCON,#0x00   ;清鍵盤中斷標志位
 SETB EKBI    ;鍵盤中斷使能
 SETB EA    ;開中斷
 RET
;-------------------------------------
;功能:完全掉電
;-------------------------------------
POWER_DOWN:
 MOV PCONA,#0xFF   ;功能模塊掉電
 MOV PCON,#0x03   ;進入完全掉電狀態
 RET
;-------------------------------------
;功能:幀校驗
;-------------------------------------
READHEAD:
 MOV A,#4    
 ACALL DELAY_N00US   ;延時400us
 JNB INFR,SKIP1   ;INFR為0,跳至SKIP1
 SETB HEADFLAG   ;INFR為1,置幀錯誤標志
SKIP1:
 ACALL DELAY100US   ;延時100us
 JNB INFR,SKIP2   ;再次讀INFR,并對其進行判斷,其為0,跳
 SETB HEADFLAG   ;為1,置幀錯誤標志
SKIP2:
 MOV A,#5
 ACALL DELAY_N00US   ;延時500us

 MOV A,#4
 ACALL DELAY_N00US   ;延時400us
 JB INFR,SKIP3   ;INFR為1,跳至SKIP3
 SETB HEADFLAG   ;INFR為0,置幀錯誤標志
SKIP3:
 ACALL DELAY100US   ;延時100us
 JB INFR,SKIP4   ;再次讀INFR,并對其進行判斷,其為1,跳
 SETB HEADFLAG   ;為0,置幀錯誤標志
SKIP4:
 MOV A,#5
 ACALL DELAY_N00US 
 
 MOV A,#4    
 ACALL DELAY_N00US   ;延時400us
 JNB INFR,SKIP5   ;INFR為0,跳至SKIP5
 SETB HEADFLAG   ;INFR為1,置幀錯誤標志
SKIP5:
 ACALL DELAY100US   ;延時100us
 JNB INFR,SKIP6   ;再次讀INFR,并對其進行判斷,其為0,跳
 SETB HEADFLAG   ;為1,置幀錯誤標志
SKIP6:
 MOV A,#5
 ACALL DELAY_N00US   ;延時500us
 RET
;-------------------------------------
;功能:從紅外線傳送的數據上讀取1字節
;出口參數:A
;-------------------------------------
READBYTE:
 CLR A    ;將A清0
 MOV R7,#8    ;定義循環次數8
READBYTE_START: 
 ACALL DELAY100US   ;延時100US
 JB INFR,BIT1   ;讀INFR,為1,則跳至BIT1
BIT0: ANL A,#0xEF    ;為0,清最高位為0
 JMP READBIT_OVER 
BIT1: ORL A,#0x80    ;為1,置最高位為1
READBIT_OVER:
 RL A    ;左移1位
 
 MOV R4,A    ;保存A
 MOV A,#4
 ACALL DELAY_N00US   ;延時400us
 MOV A,R4    ;還原A
 DJNZ R7,READBYTE_START  
 RET
;-------------------------------------
;功能:讀取接收到的紅外數據
;出口參數:DATA1,DATA2
;-------------------------------------
READDATA:
 ACALL READBYTE   ;讀取一字節
 MOV DATA1,A    ;存入DATA1
 ACALL READBYTE   ;讀取一字節
 MOV DATA2,A    ;存如DATA2
 RET
;-------------------------------------
;功能:延時100US
;注:在7.373Mhz情況下
;-------------------------------------
DELAY100US:
 MOV R7,#182
LOOP1:
 DJNZ R7,LOOP1 
 RET
;-------------------------------------
;功能:延時N x 100us,
;入口參數:A
;-------------------------------------
DELAY_N00US:
 MOV R5,A
LOOP_N00US:
 ACALL DELAY100US
 DJNZ R5,LOOP_N00US
 RET
;-------------------------------------
;功能:MS級延時
;入口參數:A
;-------------------------------------
DELAYMS:
 MOV R3,A
LOOPMS1:
 MOV R4,#10
LOOPMS2:
 ACALL DELAY100US
 DJNZ R4,LOOPMS2
 DJNZ R3,LOOPMS1
 RET
;-------------------------------------
;功能:鍵盤中斷服務程序
;-------------------------------------
KEY_ISR:
 CLR EA    ;關中斷
 MOV PCONA,#0x00   ;外部功能模塊上電
 JNB INFR,$    ;讀取INFR,等待其為1,
 MOV A,#5
 ACALL DELAYMS    ;延時5ms
 
 JB INFR,$    ;等待INFr為0
 ACALL READHEAD   ;幀頭校驗
 ACALL READDATA   ;讀數據
 
 MOV A,DATA1    
 CJNE A,#0x01,NONE_CONTROL  ;判斷數據,
 SETB MOTOR_CONTROL   ;為1,則開外部設備(燈)
 /*
 MOV A,DATA2
 CJNE A,#0x02,NONE_CONTROL  ;判斷數據,
 SETB MOTOR_CONTROL   ;為2,則開外部設備(燈)
 */
NONE_CONTROL:
 
 MOV KBCON,#0x00   ;清鍵盤中斷標志
 SETB EA    ;開中斷
 RETI
;-------------------------------------
 END
;-------------------------------------

  • 上一篇: 多機紅外通信發送端(C程序代碼)
  • 下一篇: 多機紅外通信接收端(C程序代碼)
  • 發表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網友評論:(只顯示最新5條。)
    關于我們 | 聯系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發消息66821730(技術支持)點擊這里給我發消息66821730(廣告投放) 點擊這里給我發消息41031197(編輯) 點擊這里給我發消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業自行提供,該企業負責信息內容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(濱江)機電一體化學會
    中國行業電子商務100強網站

    網站經營許可證:浙B2-20080178-1
    主站蜘蛛池模板: 四会市| 湛江市| 崇信县| 禹州市| 米泉市| 民权县| 平武县| 崇阳县| 沿河| 石狮市| 鸡西市| 会泽县| 望城县| 台江县| 洛宁县| 石景山区| 嵩明县| 新平| 巢湖市| 曲麻莱县| 政和县| 仁布县| 昌黎县| 芜湖县| 孝感市| 灌阳县| 富宁县| 竹溪县| 阳朔县| 大兴区| 江门市| 饶河县| 子洲县| 日照市| 灯塔市| 汤阴县| 东莞市| 马关县| 陆良县| 县级市| 昌都县|