音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

怎么把這段匯編改為c語言?(紅外接收)

作者:lluct 欄目:單片機
怎么把這段匯編改為c語言?(紅外接收)
  這段程序?qū)嵲诳床欢?想c嵌入?yún)R編不成功.請各位大哥大姐幫我一下.起碼告訴我這段程序的運行原理.在此謝謝了.

;---------------------------------------------------
; IR 譯碼子程序
;---------------------------------------------------
IR_IN:
          MOV   R0,#IRCOM     ;20H-23H
I1:      JNB  IRIN,I2       ;等待 IR 信號出現(xiàn)
          JMP  I1
I2:      MOV  R4,#20         
I20:     CALL  DEL           ;延時子程序
          DJNZ  R4,I20
          ;JB  IRIN,I1        ;確認IR信號出現(xiàn)
I21:     JB  IRIN,I3        ;等 IR 變?yōu)楦唠娖?br>          CALL  DEL
          JMP  I21
I3:      MOV  R3,#0         ;8位數(shù)清為0
LL:      JNB  IRIN,I4       ;等 IR 變?yōu)榈碗娖?br>          CALL  DEL
          JMP  LL
I4:      JB  IRIN,I5        ;等 IR 變?yōu)楦唠娖?br>          CALL  DEL
          JMP  I4
I5:      MOV  R2,#0         ;0.14ms 計數(shù)
L1:      CALL  DEL
          JB  IRIN, N1       ;等 IR 變?yōu)楦唠娖?br>                             ;IR=0,檢查R2中的計數(shù)值
          MOV  A,#8
          CLR  C
          SUBB  A,R2         ;判斷高低位
                             ;IF C=0  BIT=0
          MOV  A,@R0
          RRC  A
          MOV  @R0,A         ;處理完一位
          INC  R3
          CJNE  R3,#8,LL     ;需處理完8位
          MOV  R3,#0
          INC  R0
          CJNE  R0,#24H,LL   ;收集到4字節(jié)了
          JMP  IR_SHOW
N1:      INC  R2
          CJNE  R2,#30,L1    ;0.14ms 計數(shù)過長則時間到自動離開
          RET


;------------------------------------------------
; DELAY  R5*0.14MS
DEL:
          MOV  R5,#1       ;IR解碼使用
DEL0:     MOV  R6,#2
DEL1:     MOV  R7,#32
DEL2:     DJNZ  R7,DEL2
          DJNZ  R6,DEL1
          DJNZ  R5,DEL0
          RET

DELAY1:                    ;延時5MS
         MOV  R6,#25
  DL2:   MOV  R7,#100
         DJNZ  R7,$
         DJNZ  R6,DL2
         RET
;---------------------------------

* - 本貼最后修改時間:2006-1-4 2:33:34 修改者:lluct

2樓: >>參與討論
xwj
不太好,的延時查詢方法,最好用狀態(tài)機
 
3樓: >>參與討論
myway
我的網(wǎng)站有C代碼
 
4樓: >>參與討論
lluct
好像不行.改了以后
#include     <reg52.h>
#include    <intrins.h>

#define uCHAR unsigned CHAR

sbit    IRIN = P2^4;
uCHAR    temp20h[4];

uCHAR     timeCount;
uCHAR    count;
uCHAR    bitCount;

void irShow(void);
void irIn(void);
void delayMs (unsigned CHAR ms);

void main (void)
{
    temp20h[0] = 0x00;
    temp20h[1] = 0x00;
    temp20h[2] = 0x00;
    temp20h[3] = 0x00;
    IRIN = 1;
    temp20h[2] = 0xff;
    irShow();
        
    irIn();
    

}
//===============================================
void irIn (void)
{
    uCHAR i = 0;

    while(IRIN);
    delayMs(2);
    while(!IRIN);
    bitCount = 0;
LL:    
    while(IRIN)
    {
        delayMs(2);
    }
    while(!IRIN)
    {
        delayMs(2);    
    }
    timeCount = 0;
    while(1)
    {
        delayMs(2);
        while(!IRIN)
        {
            
            count = 8;
            count = timeCount - count;
            temp20h[i] |= CY;
            temp20h[i] >>= 1;
            if (bitCount != 8)    
            {
                goto LL;
            }
            bitCount = 0;
            i++;
            if (i != 4)
            {
                goto LL;
            }
            goto END_IR;
        }
        timeCount++;
        if (timeCount == 15)
        {
            goto END_IR;
        }
    }
END_IR:
    irShow();
}
        
void irShow (void)
{
    if (temp20h[3]    == !temp20h[2])
    {
        P0 = temp20h[3];
    }
}
//===============================================
void delayMs (unsigned CHAR ms)
{
    unsigned CHAR i;
    while (--ms)
    {
        for (i = 0; i < 125; i++);
    }
}

5樓: >>參與討論
jackf125
!
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
AT89S52在3V或3.3V供電電源下能正常工作嗎?
I/O口問題
請問原理圖上0歐姆的電阻是怎么回事?
A/D芯片問題
P0口用于輸入的時候無需上拉吧?
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號