ps2keyboard demo code for 8052
#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 */
ps2keyboard demo code for 8052的更多相关文章
- penpyxl basic function demo code
Openpyxl basic function demo code demo code: #!/usr/bin/env python # -*- coding: utf-8 -*- "&qu ...
- RAD Studio Demo Code和几个国外FMX网站 good
FireMonkey X – Amazing overview of FireMonkey FMX Feeds – All your FireMonkey news in one place FMX ...
- ( ! ) Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in D:\demo\code\yolo\index\index.php on li
sql语句为:$sql="select count(*) from com where a_id=$v['id']"; 出现以下错误: 原因: 变量没有用花括号引起来 改为: $ ...
- npm install 安装报错:npm ERR! EPERM npm ERR! -4048 npm ERR! Error: EPERM: operation not permitted, unlink 'D:\test\demo\code\materialT\node_modules\.staging'
更新项目依赖包,删除掉package-lock.json.node_modules,运行npm install,报如上错误信息,查询资料说是没有权限,本人用管理员身份打开powershell,运行np ...
- swagger demo code
//Application 开启注解 @EnableSwagger2public class Application { public static void main(String[] args) ...
- c++ demo code
/* //多继承 #include <iostream> using namespace std; class Sofa { public: Sofa(); ~Sofa(); void s ...
- 创建简单的表单Demo
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- react context toggleButton demo
//toggleButton demo: //code: //1.Appb.js: import React from 'react'; import {ThemeContext, themes} f ...
- Google Summer of Code 2017 经验谈
Google Summer of Code (GSoC) 2018 又要开始了. 如果想实现你心中的开源梦想, 用代码让世界变得更美好. 参加GSoC可能是你进入开源的世界最好途径. GSoC是什么 ...
随机推荐
- Keil C调试经验
我们使用Keil C调试某系统时积累的一些经验: 1.由于Keil C对中文支持不太好,因而会出现显示的光标与光标实际所在不一致的现象,这会对修改中文注释造成影响.在Windows2000下面 ...
- GNU Autotools的研究(转)
最近对Linux下软件项目的构建过程研究了一番.Linux下的软件项目通常用Autotools工具集和make工具来构建,我们通常使用./configure.make.make install这样的命 ...
- 教程:30分钟学会Adobe Premiere
原文地址:http://tieba.baidu.com/p/2785313831 视频教程地址
- HTML5的local storage存储的数据到底存到哪去了
原文地址:http://zhidao.baidu.com/link?url=m6p5MLv0R46lDCd_Vnrry4XOMbdCwgV5fzs3tj5Jeyht1nPkAZ9OrO23njYBY1 ...
- hdu5035:概率论推公式
题目大意: 你要去邮局发一个包裹,有n个窗口,每个都有人,每一个窗口完成一次服务的时间 ti 的分布符合几何分布:ki*e^(-ki*t) 每个窗口当前服务已经进行了ci时间 你会去第一个完成当前服务 ...
- Spring初学(一)
Spring核心机制:依赖注入 依赖注入简单的理解就是 由Spring负责对model进行设置,而非由controller直接设置. 通过依赖注入,javaEE各种组件可以解耦. 依赖注入(Depen ...
- C/C++经典面试题目
1.关于动态申请内存 答:内存分配方式三种: (1)从静态存储区域分配:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.全局变量,static变量. (2)在栈上创建:在执行函数 ...
- 浏览器内核Trident/Gecko/WebKit/Presto
“浏览器内核”主要指渲染引擎(Rendering Engine),负责解析网页语法(如HTML.JavaScript)并渲染.展示网页.因此,所谓的浏览器内核通常也就是指浏览器所采用的渲染引擎, 渲染 ...
- atitit。自己定义uml MOF EMF体系eclipse emf 教程o7t
atitit.自己定义uml MOF EMF体系eclipse emf 教程o7t 1. 元对象机制(MOF,Meta-Object Facility)and 结构 1 2. 元模型图.模型图.对 ...
- iOS平台下cookie的使用
iOS平台下cookie的使用 首先,先介绍下iOS对cookie的操作的两个类: 帖子来源于:http://blog.csdn.net/chun799/article/details/1720690 ...