機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
M50462遙控器解碼程序
M50462遙控器解碼程序
 更新時間:2008-7-27 15:59:34  點(diǎn)擊數(shù):4
【字體: 字體顏色

來源:網(wǎng)上轉(zhuǎn)載   作者:不詳

/************** YTREM.PLM  ********************/
/* 遙控器按鍵代碼表(熊貓 M50462/CL54L2) */
/* 1---00h;2---10h;3---08h;4---18h;5---04h;6---14h;7---0ch;8---1ch; */
/* 9---80h;0---90h;1+---88h;2+---98h;pd+---50h;pd_---48h;ld+---0cch; */
/* ld_---0dch;yl+---44h;yl_---54h;sd+---0c4h;sd_---0d4h;BZ---0D0h; */
/* TV/AV---5CH;PX---D8H;-->.<-- ---0D0H;CLK---0E8H;*/
/* TIME---0F8H;ON.T---0E4H;SEL---0F4H;INC---0ECH;  */
start:do;
$include(reg51.dcl)
  declare (data1,data2,key,DAT) byte at (30h);
  declare (ah,al,NUMBER,jihao,bjihao) byte;
  declare Ale literally 'p17',da literally 'p15',clk literally 'p16';
  DECLARE ACO(11) BYTE CONSTANT (0EDH,28H,0DCH,7CH,39H,75H,0F5H,2CH,
     0FDH,7DH,02H);
    
DISPLAY: PROCEDURE(NUM);
  DECLARE (K,NUM,N) BYTE;
  N=NUM;
  N=N MOD 10;
  N=ACO(N);
      DO K=0 TO 7;
  N=SCR(N,1);
  DA=CY;
  CLK=0;
   call time(1);
  CLK=1;
      END;
  N=NUM;
  N=N/10;
  N=ACO(N);
      DO K=0 TO 7;
  N=SCR(N,1);
  DA=CY;
  CLK=0;
   call time(1);
  CLK=1;
      END;
      ALE=0;
       call time(2);
      ALE=1;  

END DISPLAY;

YTNUMBER: procedure(kk);
  declare (kk,relay) byte;
  if kk=02 then
     DO;
 NUMBER=NUMBER+1;
 IF NUMBER>4 THEN NUMBER=1;
     END;
 
  if kk=01 then
     DO;
 NUMBER=NUMBER-1;
 IF NUMBER=0 THEN NUMBER=4;
     END;
   CALL DISPLAY(NUMBER);
   KEY=0; data2=0;
END YTNUMBER;

recieve: procedure interrupt 4 using 1;
  declare (k,ask) byte;
  disable; 
  if data2=0e2h and dat<>0 then
  do;
    ri=0;
    jihao=sbuf;
    if jihao=bjihao then
    do;  
      data2=0;
      p32=1;
      do k=1 to 2;
  if k=1 then sbuf=dat;
  if k=2 then sbuf=number;
  do while ti=0;
  end;
  ti=0;
  call time(1);
      end;
     
    p32=0;
      do while ri=0;
      end;
      ri=0;
      ask=sbuf;
      if ask=0ffh then 
      do;
      ;
      end;       

  /*    data1=0ffh;dat=0;  */
    end;
  end;
  enable;
end recieve;

rem:procedure interrupt 2;
    declare k byte;
    disable;
 /*  if data2=0e2h then goto int0end; */
    k=16;
loop1:
    call time(2);
    do while p33=0;
    end;
    th0=0;
    tl0=0;
    tr0=1;
    call time(2);
    do while p33=1;
    end;
    tr0=0;
    ah=th0;
    al=tl0;
    if ah>=4 then cy=1;  /* 11.0592Mhz */
    else cy=0;
    data1=scl(data1,1);
    k=k-1;
    if k=8 then data2=data1;
    if k<>0 then goto loop1;
 if data2=0e2h then
    do;
   IF DATA1=54H THEN do;KEY=01;dat=0;end; /* YTNUMBER DEC KEY */
   IF DATA1=44H THEN do;KEY=02;dat=0;end; /* YTNUMBER ADD KEY */
     
      IF DATA1=00H THEN DAT=1;
      IF DATA1=10H THEN DAT=2;
      IF DATA1=08H THEN DAT=3;
      IF DATA1=18H THEN DAT=4;
      IF DATA1=04H THEN DAT=5;
      IF DATA1=14H THEN DAT=6;
      IF DATA1=0CH THEN DAT=7;
      IF DATA1=1CH THEN DAT=8;
      IF DATA1=80H THEN DAT=9;
      IF DATA1=90H THEN DAT=10;
      IF DATA1=88H THEN DAT=11;
      IF DATA1=98H THEN DAT=12;
      IF DATA1=50H THEN DAT=13;
      IF DATA1=48H THEN DAT=14;
      IF DATA1=40H THEN DAT=15;
      IF DATA1=4CH THEN DAT=16;
      IF DATA1=5CH THEN DAT=17;
      IF DATA1=0D8H THEN DAT=18;
      IF DATA1=0D0H THEN DAT=19;
      IF DATA1=0E8H THEN DAT=20;
      IF DATA1=0F8H THEN DAT=21;
      IF DATA1=0E4H THEN DAT=22;
      IF DATA1=0F4H THEN DAT=23;
      IF DATA1=0ECH THEN DAT=24;
/*            P34=0;CALL TIME(250);P34=1;  */
    end;
int0end:   
  ip=0;
  DO K=0 TO 3;  /* important value  */
     CALL TIME(250);
  END;
  enable;                                
end rem;

main$program:
data1=0;data2=0;dat=0;
p32=0;   /*  set recieve mode  */
clk=1;Ale=1;
p33=1;NUMBER=1;KEY=0;
scon=50h;
pcon=00h;
tmod=21h;
tl1=0fdh;       /* 9600 baud rate for 11.0592Mhz */
th1=0fdh;
th0=0;
tl0=0;
tr1=1;
es=1;
ex1=1;
bjihao=1;
enable;
call DISPLAY(NUMBER);

DO WHILE 1=1;
 IF KEY=01 OR KEY=02 THEN
 DO;
   CALL YTNUMBER(KEY);            
 END;

end start;

 
  • 上一篇: 支持鍵盤雙擊事件的C程序設(shè)計(jì)
  • 下一篇: 兩I/O六鍵盤C51程序
  • 發(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