自在自线亚洲а∨天堂在线-中文字幕一区视频播放-扒开双腿猛进入喷水高潮叫声-欧美日本亚洲一区二区-老熟妇高潮偷拍一区二区-国产精品高清一区二区不卡-午夜色福利视频一区二区三区-亚洲国产成人精品福利在线观看-亚洲欧美成人一区二区在线电影

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
多機(jī)紅外通信發(fā)送端程序代碼(匯編)
多機(jī)紅外通信發(fā)送端程序代碼(匯編)
 更新時間:2008-7-26 20:29:40  點擊數(shù):2
【字體: 字體顏色

/***************************************************************
*文件名: host.asm
*版權(quán):  www.zlgmcu.com
*日期:  16:27 04-3-16
*功能:  多機(jī)紅外通信發(fā)送端程序代碼
***************************************************************/
$NOMOD51
$INCLUDE(REG932.INC)

KEY1 EQU P0.0   ;定義KEY1鍵
KEY2 EQU P0.1   ;定義KEY2鍵
INFR EQU P0.3   ;定義紅外發(fā)送引腳

PLLEN BIT TCR20.7
;------------------------------
 ORG 0000H   
 AJMP MAIN
 ORG 003BH
 AJMP KEY_ISR
;------------------------------
 ORG 0080H
MAIN:
 MOV P0M1,#0x00  ;定義P0口屬性
 MOV P0M2,#0x00
 MOV P2M1,#0x40  ;定義P2.6(OCA)口屬性
 MOV P2M2,#0x40
 
 ACALL CCU_INIT  ;CCU初始化
 ACALL KEYISR_INIT  ;鍵盤中斷初始化
LOOP: 
 ACALL POWER_DOWN  ;完全掉電
 AJMP LOOP
 RET
;-------------------------------
;功能:CCU初始化
;-------------------------------
CCU_INIT:
 MOV TOR2H,#0x02  ;CCU定時器重裝值
 MOV TOR2L,#0x05
 MOV OCRAH,#0x01  ;(OCRAH:OCRAL)=(TOR2H:TOR2L)/2,PWM的占空比為50%
 MOV OCRAL,#0x02
 MOV TCR21,#0x85  ;PLL預(yù)分頻為5+1
 MOV CCCRA,#0x01  ;非反相的PWM在比較匹配時置位,在CCU定時器向下溢出時清0
 
 SETB PLLEN   ;啟動PLL
 SETB OCA
 JNB PLLEN,$
 MOV TCR20,#0x82  ;設(shè)置輸出模式,非反相PWM
 RET
;--------------------------------
;功能:鍵盤中斷初始化
;--------------------------------
KEYISR_INIT:
 MOV KBMASK,#0x03  ;設(shè)置P01->P00為中斷源
 MOV KBCON,#0x00  ;清除鍵盤中斷標(biāo)志
 SETB EKBI   ;鍵盤中斷允許
 SETB EA   ;開中斷
 RET
;--------------------------------
;功能:完全掉電
;--------------------------------
POWER_DOWN:
 MOV PCONA,#0xFF  ;外部模塊掉電
 MOV PCON,#0x03  ;進(jìn)入完全掉電模式
 RET
;--------------------------------
;功能:按鍵判斷程序
;--------------------------------
READ_KEY:
 MOV A,#12   
 ACALL DELAYMS   ;延時12MS
 JNB KEY1,KEY1_DOWN  ;判斷KEY1是否按下
 JNB KEY2,KEY2_DOWN  ;判斷KEY2是否按下
 JMP NOKEY_DOWN  
KEY1_DOWN:    ;KEY1按下 
 JNB KEY1,$   ;等待KEY1為1
 ACALL START_DEVICE01  ;發(fā)送啟動設(shè)備1(燈)的指令
 JMP NOKEY_DOWN  
KEY2_DOWN:    ;KEY2按下
 JNB KEY2,$   ;等待KEY2為1
 ACALL START_DEVICE02  ;發(fā)送啟動設(shè)備2(門/窗)的指令
 JMP NOKEY_DOWN
NOKEY_DOWN:
 RET
;--------------------------------
;功能:啟動外部設(shè)備1
;--------------------------------
START_DEVICE01:    
 ACALL SEND_HEAD  ;發(fā)送幀頭
 MOV A,#0x01
 ACALL SEND_DATA  ;發(fā)送數(shù)據(jù) 
 RET
;--------------------------------
START_DEVICE02:
 ACALL SEND_HEAD  ;發(fā)送幀頭
 MOV A,#0x02
 ACALL SEND_DATA  ;發(fā)送數(shù)據(jù)
 RET
;--------------------------------
;功能:發(fā)送幀頭
;--------------------------------
SEND_HEAD:
 CLR INFR   ;拉低INFR
 MOV A,#50
 ACALL DELAYMS   ;延時50ms
 SETB INFR   ;拉高INFR
 MOV A,#10  
 ACALL DELAYMS   ;延時10ms
 
 CLR INFR   ;拉低INFR
 MOV A,#1 
 ACALL DELAYMS   ;延時1ms
 SETB INFR   ;拉高INFR
 MOV A,#1
 ACALL DELAYMS   ;延時1ms
 CLR INFR   ;拉低INFR
 MOV A,#1 
 ACALL DELAYMS   ;延時1ms
 RET
;--------------------------------
;功能:通過紅外載波發(fā)送數(shù)據(jù)
;入口參數(shù):R6
;--------------------------------
SEND_DATA:
 MOV R7,#8   ;循環(huán)次數(shù)
START_SEND:
 MOV A,R6
 RLC A   ;將最高位移入A
 JC BIT1   ;當(dāng)C為1時,跳至BIT1
 JMP BIT0   ;跳至BIT0
BIT1:
 SETB INFR   ;INFR置高
 AJMP SENDBIT
BIT0:
 CLR INFR   ;INFR置0
 MOV R6,A   ;將A保存進(jìn)R6
SENDBIT:
 ACALL DELAY400US  ;延時400us
 DJNZ R7,START_SEND
 RET
;---------------------------------
;功能:延時100us(7.373MHz時)
;---------------------------------
DELAY100US:
 MOV R5,#182
LOOP1:
 DJNZ R5,LOOP1
 RET
;---------------------------------
;功能:延時400us
;---------------------------------
DELAY400US:
 MOV R3,#4
LOOP4: 
 ACALL DELAY100US
 DJNZ R3,LOOP4
 RET
;---------------------------------
;功能:ms級延時
;入口參數(shù):A
;---------------------------------
DELAYMS:
 MOV R3,A
LOOP_N: 
 MOV R2,#10
LOOP10:
 ACALL DELAY100US
 DJNZ R2,LOOP10
 DJNZ R3,LOOP_N
 RET
;---------------------------------
;功能:鍵盤中斷服務(wù)程序
;---------------------------------
KEY_ISR:
 CLR EA   ;關(guān)中斷
 MOV PCONA,#0x00  ;外部功能模塊上電
 ACALL CCU_INIT  ;CCU初始化
 
 MOV A,#10
 ACALL DELAYMS   ;延時10ms
 ACALL READ_KEY  ;調(diào)用判斷按鍵子程序
 MOV KBCON,#0x00  ;清中斷標(biāo)志位
 MOV A,#50  
 ACALL DELAYMS   ;延時50ms
 SETB EA   ;開中斷
 RETI
;--------------------------------
 END
;--------------------------------

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

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

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1