#pragma code symbols debug objectextend
#include <reg51.h> /* special function register declarations */
 /* for the intended 8051 derivative */
#include <stdio.h> /* prototype declarations for I/O functions */

#define  BYTE   unsigned char
#define  WORD   unsigned int
#define  LONG   unsigned long
#define  dword  unsigned long
#define  DWORD  unsigned long
#define  byte   unsigned char
#define  word   unsigned int
#define  XBYTE  ((unsigned char volatile xdata *) 0)
#define  XWORD  ((unsigned int  volatile xdata *) 0)

#define NES     0x6000

    data union{
        LONG    l;
        BYTE    b[];
    }lShift;

    data BYTE   bCnt;
/****************/
/* main program */
/****************/
void main (void)  { /* execution starts here after stack init */
#define  KEY_BREAK      0x1f800
#define  BCNT_VALUE     0
    //BYTE code abBitHi[] ={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
    //BYTE code KeyTable[][2]={}

    data BYTE   bKey=0xff, bC, bKeyTmp;
    //data WORD   wKb;
    //data long   lBrk;
    data union{
        LONG    l;
        BYTE    b[];
    }lTmp;
    bit         fParity, fP;

    TCON=0x01;  //bit0: 1/0 falling edge/low level triggered external interrupts
    IP=0x01;    //bit0:Externl interrupt 0 Priority control bit
    IE=0x81;    //bit0:Enable External interrupt 0 control bit
                //bit7:All control bit
    XBYTE[NES]=0x00;
  ///if (bCnt>=BCNT_VALUE) {
  ){
    T0=~T0;

    bCnt=BCNT_VALUE;
    lTmp.l=lShift.l;
    ] & ] & 0xfc)==0x80)) ||
        ((lTmp.b[]==]<=0x10)))
        {
            //fBrk=1;
            bKey &= 0x7f;
    }
    ] & 0xa0)==0x80) &&       //stop bit=1, data bit7=0
             ((lTmp.b[] & 0x20)==0x00) ){       //start bit==0 bit0 , data bit7==0
            ] & ;   //parity bit    bit9
            ;
            lTmp.l<<=;
            bKeyTmp=lTmp.b[];
            fParity=;
            ; bC<=; bC++){
                ] & ) fParity=~fParity;
                lTmp.b[]<<=;
            }
            if (fP==fParity) {
                //fOk=1;
                //bKey=KeyTable[bKeyTmp];
                bKey=bKeyTmp | 0x80;
            }
        }

    P1=bKey;
    XBYTE[NES]=bKey;  

  }
  ////else bCnt++; //while (1)
} //void main (void)

{
    bit fT0;
    fT0=INT1;
    lShift.l>>=;
    ] |= 0x80;
    ///bCnt=0;

}
/* link
hello.obj
XDATA(0) IDATA(80H) RAMSIZE(256) SYMBOLS
*/

最新文章

  1. 使用Code::blocks在windows下写网络程序
  2. iOS8 UIAlertController弹出框中添加视图(例如日期选择器等等)
  3. input标签写CSS时需要注意的几点(先收藏)
  4. iOS tableview 静态表布局纪录
  5. 菜鸟学习Ado.net笔记一:Ado.net学习之SqlHelper类
  6. 《STL源代码剖析》---stl_alloc.h阅读笔记
  7. HTML浅识
  8. 浅谈Base64编码
  9. 1601: [Usaco2008 Oct]灌水
  10. 前端插件之Bootstrap Switch 选择框开关控制
  11. 23 服务的启动Demo2
  12. SSM-Spring-11:Spring中使用代理工厂Bean实现aop的四种增强
  13. @Transactional的正确打开方式
  14. 洛谷P2512 糖果传递
  15. 第二十节:详细讲解String和StringBuffer和StringBuilder的使用
  16. InputStream只能读取一次的解决办法 C# byte[] 和Stream转换
  17. 〖前端开发〗HTML/CSS基础知识学习笔记
  18. WSAAsyncSelect模型中,FD_WRITE事件什么时候触发?
  19. 第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装
  20. CRUD组件的高阶使用

热门文章

  1. PowerShell 简单模式识别 1
  2. IntelliJ IDEA: maven &amp; jetty 开发 java web
  3. 第36讲 activityForResult
  4. 利用dedecms给近三天(或当天)发布的文章显示红色日期或加上new字或new小图片
  5. Thrift的安装和简单演示样例
  6. Map.EntrySet的使用方法
  7. Javascript进阶篇——(DOM—节点---插入、删除和替换元素、创建元素、创建文本节点)—笔记整理
  8. QTP描述性编程中往WebEdit控件输入文字问题
  9. silverlight+wcf 项目 silverlight获得web程序的参数
  10. txt 分割程序