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

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
利用LPC900系列單片機(jī)的UART和CCU模塊實(shí)現(xiàn)紅外通信(匯編)
利用LPC900系列單片機(jī)的UART和CCU模塊實(shí)現(xiàn)紅外通信(匯編)
 更新時間:2008-7-26 20:29:44  點(diǎn)擊數(shù):2
【字體: 字體顏色

;**********************************************************************
; 文件:     UART_IR_Master.asm
; 開發(fā):     WWW.ZLGMCU.COM
; 日期:     2004.03.04
; 功能:     利用LPC900系列單片機(jī)的UART和CCU模塊實(shí)現(xiàn)紅外通信。
;           此程序?yàn)橹鳈C(jī)程序,先發(fā)送16字節(jié)數(shù)據(jù)給從機(jī),從機(jī)再把接收到的
;           數(shù)據(jù)返回給主機(jī),如果返回正確,則蜂鳴器短響一聲,否則長響一聲。      
;***********************************************************************
$INCLUDE (REG932.INC)

;變量定義
BEEP        BIT     P2.7
KEY1        BIT     P0.0
FE          BIT     SCON.7
PLEEN       BIT     TCR20.7
RCV_BUF     DATA    30H         ;接收緩沖區(qū)首地址(30H~3FH)
BRGR1_DATA  DATA    09H         ;波特率設(shè)為2400bit/s
BRGR0_DATA  DATA    0B4H

    ORG     0000H
    AJMP    MAIN
       
;主程序開始
    ORG     0100H
MAIN:
    MOV     SP,#60H
    MOV     P0M1,#00H           ;P0,P1口設(shè)置為準(zhǔn)雙向
    MOV     P0M2,#00H
    MOV     P1M1,#00H
    MOV     P1M2,#00H
    MOV     P2M1,#0C0H          ;P2.6,P2.7設(shè)置為開漏
    MOV     P2M2,#0C0H
    ACALL   CCU_INIT            ;CCU模塊初始化,用以產(chǎn)生38KHz調(diào)制信號
    ACALL   UART_INIT
MAIN_L1:
    JB      KEY1,$
    ACALL   SEND_DATA           ;發(fā)送16字節(jié)數(shù)據(jù)
    MOV     R7,#01H
    ACALL   DELAY
    ACALL   RCV_DATA            ;接收16字節(jié)數(shù)據(jù)
    ACALL   COMPARE             ;比較接收到的數(shù)據(jù)和發(fā)送的數(shù)據(jù)
    JZ      MAIN_L2
    CLR     BEEP                ;如果正確則蜂鳴器短響一聲
    MOV     R7,#01H
    ACALL   DELAY
    SETB    BEEP
    AJMP    MAIN_L1
MAIN_L2:
    CLR     BEEP                ;如果錯誤則蜂鳴器長響一聲
    MOV     R7,#05H
    ACALL   DELAY
    SETB    BEEP
    AJMP    MAIN_L1

;********************************************
; 名稱:     SEND_DATA
; 功能:     通過UART連續(xù)發(fā)送16字節(jié)數(shù)據(jù)(0~15)
; 入口參數(shù):無
; 出口參數(shù):無
; 注意:     此程序采用查詢方式發(fā)送。
;********************************************
SEND_DATA:
    MOV     R7,#10H
    CLR     TI
    CLR     A
SEND_DL1:
    MOV     SBUF,A
    JNB     TI,$                ;等待一字節(jié)發(fā)送完畢
    CLR     TI
    INC     A
    DJNZ    R7,SEND_DL1
    RET

;********************************************************************
; 名稱:     RCV_DATA
; 功能:     通過UART連續(xù)接收16字節(jié)數(shù)據(jù)
; 入口參數(shù): RCV_BUF--用于接收數(shù)據(jù)的緩沖區(qū)首地址
; 出口參數(shù): 接收到的16字節(jié)數(shù)據(jù)位于接收緩沖區(qū)
; 注意:     此程序采用查詢方式進(jìn)行接收。由于采取半雙工通信,所以接收
;           數(shù)據(jù)之前要打開接收允許,接收完畢之后要關(guān)閉接收允許。
;********************************************************************
RCV_DATA:
    MOV     R7,#10H
    MOV     R0,#RCV_BUF
    SETB    REN                 ;串行接收允許
    CLR     FE
    CLR     RI
RCV_DL1:
    JNB     RI,$                ;等待接收一字節(jié)
    CLR     RI
    MOV     A,SBUF
    MOV     @R0,A
    INC     R0
    DJNZ    R7,RCV_DL1
    CLR     REN                 ;串行接收禁止
    RET

;*********************************************
; 名稱:     COMPARE
; 功能:     比較緩沖區(qū)中的內(nèi)容是否為0~15
; 入口參數(shù): RCV_BUF--需要比較的緩沖區(qū)首地址
; 出口參數(shù): ACC--比較正確則返回1,否則返回0。
;*********************************************
COMPARE:
    MOV     R7,#10H
    MOV     R0,#RCV_BUF
    MOV     R1,#00H
    CLR     A
COMP_L1:
    MOV     A,@R0
    CJNE    A,01H,COMP_RTN      ;ACC與R1(01H)比較
    INC     R0
    INC     R1
    DJNZ    R7,COMP_L1
    MOV     A,#01H              ;比較結(jié)果正確,返回01H
    RET
COMP_RTN:
    CLR     A                   ;比較結(jié)果錯誤,返回00H
    RET

;**********************************************************************
; 名稱:     CCU_INIT
; 功能:     CCU模塊初始化,使OCA(P2.7)輸出38KHz,50%占空比的PWM波,
;           作為紅外線的載波
;           使用6MHz晶振時,CCU頻率=((6000000/2)/6)*32=16MHz
;           定時器重裝值=CCU頻率/紅外線載頻=16000000/38000=421=01A5H
;**********************************************************************
CCU_INIT:
    MOV     TOR2H,#01H          ;定時器重裝值
    MOV     TOR2L,#0A5H
    MOV     OCRAH,#00H          ;(OCRAH:OCRAL)=(TOR2H:TOR2L)/2,PWM的占空比為50%
    MOV     OCRAL,#0D2H
    MOV     TCR21,#85H          ;PLL預(yù)分頻為5+1
    MOV     CCCRA,#01H          ;非反相的PWM
    MOV     TCR20,#00H         
    SETB    PLEEN
    NOP
    JNB     PLEEN,$             ;等待鎖相環(huán)(PLL)穩(wěn)定
    ORL     TCR20,#03H          ;啟動定時器,對稱PWM模式
    RET

;***************************************
; 名稱:     UART_INIT
; 功能:     UART初始化,波特率2400bit/s  
;***************************************
UART_INIT:
    MOV     PCON,#00H
    MOV     SSTAT,#00H          ;雙緩沖禁止,中斷禁止,采用查詢方式發(fā)送和接收
    MOV     SCON,#40H           ;串口模式1,接收禁止
    ORL     PCON,#40H           ;SMOD0=1,SCON的位7作為FE
    MOV     BRGCON,#00H
    MOV     BRGR1,#BRGR1_DATA
    MOV     BRGR0,#BRGR0_DATA
    MOV     BRGCON,#03H         ;啟動UART的波特率發(fā)生器
    RET

;*****************************************************
; 名稱:     DELAY
; 功能:     延時(R7*0.1)秒(振蕩器為6MHz)
; 入口參數(shù):R7--延時時間
; 出口參數(shù):無
; 注意:    如果入口參數(shù)R7等于0,則不延時而直接返回。
;*****************************************************
DELAY:
    MOV     A,R7
    JZ      DELAY_RTN
DELAY_L1:
    MOV     R6,#0C8H            ;延時0.1S
DELAY_L2:
    MOV     R5,#0FAH
DELAY_L3:
    NOP
    NOP
    NOP
    NOP
    DJNZ    R5,DELAY_L3
    DJNZ    R6,DELAY_L2
    DJNZ    R7,DELAY_L1
DELAY_RTN:
    RET   
    END

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

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(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