一个PS/2仿真键盘的设计
; program
; check clk and data before every 8 bit data sending
; a function is created for send all 11bit data
; a function is created for parity calculating
; CAPSLOCK :BIG LETTER P1.3=0,SMALL LETTER P1.3=1
; =======================================
; =======================================
; VARS USED LOCALY
; R0 IS USED LOCALY AS A COUNTER
; 20H.1 20H.2 20H.3 20H.4 IS USED IN FUNCTION AS TEMP VAR
; R3,R4,R5 USED LOCALLY IN DELAY()
; ===================================
; Define Samples
; ====================================
MCLK EQU P1 .2 ; VALUE OF CLOCK LINE
MDATA EQU P1 .1 ; VALUE OF DATA LINE
SCAN EQU R1 ; VALUE OF THE SCAN CODE
RECV EQU R2 ; VALUE RECEIVED BY KEYBOARD
RECV2 EQU R6 ; THE VALUE RECEIVED SECONDLY
NEXTBIT EQU CY ; VALUE OF THE BIT WILL SENT NEXT
PARITY EQU 20H .1 ; VALUE OF PARITY
TEMP EQU 20H .2 ; THIS BIT IS FOR TEMPORITARY USE
TEMP1 EQU 20H .3 ; THIS BIT IS FOR TEMP USE
TEMP8BIT EQU 21H
LOOPCOUNTER EQU 30H ; COUNTER SPECIAL FOR SENDALLBIT
SCROLLLOCK EQU P1 .5
CAPSLOCK EQU P1 .6
NUMLOCK EQU P1 .7
ERROR_LIGHT EQU P1 .4 ; PARITY ERROR
ERROR_LIGHT_STOPBIT EQU P1 .3 ; STOP BIT RECEIVE ERROR
; ===================================
; ===================================
; ORG
; ===================================
ORG 00H
JMP MAIN
ORG 0003H
LJMP K1DOWN
ORG 000BH
LJMP K3DOWN
ORG 0013H
LJMP K2DOWN
; ============================================================
; MAIN
; ============================================================
MAIN:
; ==============================
; SET INTERRUPTER AND TIMER
mov ie , #10000101B ; 中断使能
mov ip , #00H ; 中断优先
mov tcon , #00000101b ; 中断为电平触发
; TIME0 AS A BUTTON
MOV TMOD , #06H
MOV TH0 , #0FFH
MOV TL0 , #0FFH
SETB ET0
SETB TR0
; ==============================
; ==============================
; SET CLK AND DATA LINE TO NORMAL STATUS
SETB MCLK
SETB MDATA
; ==============================
SETB CAPSLOCK ; CAPSLOCK OFF(1)
SETB NUMLOCK ; NUMLOCK OFF(1)
SETB SCROLLLOCK ; SCROLLLOCK OFF(1)
CHKSTATUS:
JNB MCLK , CHKSTATUS ; IF MCLK==0 THEN GOTO CHKSTATUS
JB MDATA , CHKSTATUS ; IF MDATA==1 THEN GOTO CHKSTAUS
; NOW MCLK=1 AND MDATA =0 ,READY TO RECEIVE DATA FROM PC
LCALL RECV_CHK_SEND ; RECEIVE DATA FROM PC
LJMP CHKSTATUS ; WAIT FOR BREAK
; =========
一个PS/2仿真键盘的设计相关推荐
- 怎样成为一个PS高手
一个PS高手的话 这是一个PS高手的体会,希望能对大家有所启迪. 1.不要看到别人的作品第一句话就说:给个教程吧!你应该想这个是怎么做出来的.当你自己想出来,再对照别人的教程的时候,你就知道自己和别人 ...
- 一个PS高手的话,对初学者很实用
一个PS高手的话,对初学者很实用 2011年05月09日 1.不要看到别人的作品第一句话就说:给个教程吧!你应该想这个是怎么做出来的.当你自己想出来,再对照别人的教程的时候,你就知道自己和别人的思路的 ...
- HDLBits 系列(42)根据仿真波形来设计电路之时序逻辑
文章目录 前言 电路设计1 原题复现 题目解析 我的设计 电路设计2 原题复现 题目解析 我的设计 电路设计3 原题复现 题目解析 我的设计 电路设计4 原题复现 题目解析 我的设计 前言 上篇博文讨 ...
- 基于Matlab的模拟通信实验平台设计,【通信原理仿真实验】通信原理虚拟实验仿真平台的设计和实现_玛雅作文网...
作文「通信原理虚拟实验仿真平台的设计和实现」共有 4564 个字,其中有 2704 个汉字,1316 个英文,162 个数字,382 个标点符号.作者佚名,请您欣赏.玛雅作文网荟萃众多优秀学生作文,如 ...
- 全网最细海龟 (turtle) 画图讲解 (五):输入/输出文字及鼠标与键盘交互设计
目录 一.输入/输出文字 1. 输出文字 2. 输入文字 二.鼠标与键盘交互设计 1. 键盘事件 2. 鼠标事件 2.1 获取鼠标点击的位置 3. 计时器 最近博主在 CSDN 上看到许多关于海龟画图 ...
- android实现仿真键盘(KeyboardView适配)
原生的键盘布局声明了@deprecated被废弃,虽然可以使用但明显不合需求. /*** @deprecated This class is deprecated because this is ju ...
- android自定义金额输入键盘_触摸键盘的设计解析
本文为PMCAFF作者 呆呆丶于社区发布 众所周知,移动设备的触摸键盘相比于电脑的实体键盘而言,易用性较差.原因有很多,比如使用习惯,人机工程原理,触摸实感差异等等.这些原因导致我们在使用移动设备的触 ...
- matlab创新开放性实验,基于MATLAB 的自动控制原理实验仿真系统的设计
基于MATLAB 的自动控制原理实验仿真系统的设计 基于MATLAB 的自动控制原理实验仿真系统的设计 田晴,张茁 (河北联合大学电气工程学院,河北唐山063000) 摘要:MATLAB的图形用户界面 ...
- 软键盘输入设计(C语言)
前言 之前写过一篇关于软键盘输入设计的文章点击这里查看,用的是掌机自支持的zzdbase语言,文章结尾说了其实最初想用C来实现的,但是中途遇到了困难,便改为zzdbase语言了.最近项目中想到一个比较 ...
最新文章
- Mac VirtualBox 命令行Centos 调整窗口大小
- docker添加阿里云专属镜像
- Imation亏损额急剧增长 CEO仍表示“成功”
- Redis 总结精讲
- Java环境变量的设置
- Eclipse调试Java程序技巧
- 一張表的數據導入到另一張表
- OPPO F11 Pro渲染图曝光:升降式前置摄像头设计
- 1D和2D条码生成、检测、识别控件Barcode Xpress
- java 容器(联系数据结构)
- 傅里叶变换复数形式的实部代表什么_二维傅里叶变换与逆变换基于Unity的实现...
- 楼板的弹性计算和塑形计算_板计算的时候什么时候用弹性计算
- php企鹅号_腾讯内容开放平台
- 值得推荐五个编程学习的网站
- 网易考拉海购:电商高并发架构设计的铁律
- web安全:x-frame-options(防止网页被嵌套)头配置
- win10进行系统还原 (可以还原注册表文件 还可以清除近期卸载不了的软件)
- R手册(Time Series)--zoo
- linux关于压缩解压tar包
- 【干货】柔性电池的未来展望