📄 磁动力电子--本站原创--小巧的键盘练习器 (上篇).htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0051)http://www.cdle.net/web/alldata/CDLE/cdle050027.htm -->
<HTML><HEAD><TITLE>磁动力电子--本站原创--小巧的键盘练习器 (上篇)</TITLE><!-- #BeginTemplate "/Templates/wz-cdle.dwt" --><!-- #BeginEditable "doctitle" -->
<STYLE type=text/css>.style5 {
COLOR: #cc3300
}
</STYLE>
<!-- #EndEditable -->
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>@import url( /web/Css/all.css );
</STYLE>
<META content="MSHTML 6.00.2900.3132" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff leftMargin=0 topMargin=0>
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center border=0>
<TBODY>
<TR bgColor=#99cc00>
<TD></TD>
<TD width=760>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width=15 rowSpan=3></TD>
<TD width=151 rowSpan=3><IMG height=65
src="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/logo.gif" width=151></TD>
<TD width=510 rowSpan=3>
<DIV align=center><!-- #BeginEditable "TOP%20AD" --><!-- #BeginLibraryItem "/Library/ad.lbi" --><A
href="http://auction1.taobao.com/auction/0/item_detail-0db2-a9404b7f3dc75177237ce8cdc3a49b83.jhtml"
target=_blank><IMG alt=cdle.net欢迎您!
src="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/ad2.gif" align=middle
border=0></A><!-- #EndLibraryItem --><!-- #EndEditable --></DIV></TD>
<TD height=22>
<DIV align=right><A name=TOP></A><IMG height=6
src="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/go5.gif" width=5> <A
class=T12_W1 href="http://www.cdle.net/about.htm"
target=_blank>关于站点</A> </DIV></TD></TR>
<TR>
<TD height=22>
<DIV align=center><IMG height=6
src="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/go5.gif" width=5 border=0> <A
onclick="window.external.AddFavorite('http://www.cdle.net', '磁动力工作室')"
href="http://www.cdle.net/web/alldata/CDLE/cdle050027.htm#"><SPAN
class=T12_W1>收藏本站</SPAN></A></DIV></TD></TR>
<TR>
<TD height=22>
<DIV align=center><IMG height=6
src="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/go5.gif" width=5 border=0> <A
href="mailto:pnzwzw@cdle.net"><SPAN
class=T12_W1>联系站长</SPAN></A></DIV></TD></TR></TBODY></TABLE></TD>
<TD></TD></TR>
<TR>
<TD bgColor=#99cc00 height=10><IMG height=1
src="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/zo.gif" width=1></TD>
<TD width=760 bgColor=#cccc99 height=20 rowSpan=2><!-- #BeginLibraryItem "/Library/dhl.lbi" -->
<TABLE cellSpacing=1 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD background="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/bg1.gif"
height=20> <A class=T12_R1
href="http://www.cdle.net/index.htm">首页</A> | <A class=T12_B2
href="http://www.cdle.net/web/alldata/DZ/index.htm">电子制作</A> | <A
class=T12_B2
href="http://www.cdle.net/web/alldata/CNC/index.htm">雕刻机DIY</A> | <A
class=T12_B2
href="http://www.cdle.net/web/alldata/Robot/index.htm">机器人梦工场</A> | <A
class=T12_B2
href="http://www.cdle.net/web/alldata/MCU/index.htm">电子&单片机</A> | <A
class=T12_B2
href="http://www.cdle.net/web/alldata/Data/index.htm">资料下载</A> | <A
class=T12_R1
href="http://www.cdle.net/web/alldata/CDLE/index.htm">本站原创</A> | <A
class=T12_R1
href="http://www.cdle.net/web/netshop/index.htm">DIY套件</A> | <A
class=T12_B2 href="http://www.cdle.net/bbs/index.asp"
target=_blank>论坛</A></TD></TR></TBODY></TABLE><!-- #EndLibraryItem --></TD>
<TD bgColor=#99cc00 height=10><IMG height=1
src="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/zo.gif" width=1></TD></TR>
<TR>
<TD height=10><IMG height=1 src="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/zo.gif"
width=1></TD>
<TD height=10><IMG height=1 src="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/zo.gif"
width=1></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD> </TD>
<TD width=760>
<TABLE height=20 cellSpacing=0 cellPadding=0 width="100%" align=center
border=0>
<TBODY>
<TR>
<TD width=560> <A class=T12_G5
href="http://www.cdle.net/index.htm">磁动力电子</A>--<A class=T12_G5
href="http://www.cdle.net/web/alldata/CDLE/index.htm">本站原创</A>--<!-- #BeginEditable "t1" --><SPAN
class=T12_R1>小巧的键盘练习器 (上篇)</SPAN><!-- #EndEditable --></TD>
<TD width=120> <SPAN class=T12_P2><IMG height=16 alt=点击数量
src="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/click.gif"
width=18></SPAN><SPAN class=T12_BL3>阅读数:</SPAN> <!-- #BeginEditable "t2" -->
<SCRIPT language=JavaScript
src="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/wclick.htm"></SCRIPT>
<!-- #EndEditable --></TD>
<TD width=80> <IMG height=6
src="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/go5.gif" width=5> <A
class=T12_B1 href="javascript:window.close()">关 闭</A> <IMG height=6
src="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/go4.gif"
width=5></TD></TR></TBODY></TABLE></TD>
<TD> </TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD> </TD>
<TD class=TB1 vAlign=top width=760 bgColor=#cccc99>
<TABLE cellSpacing=1 cellPadding=1 width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=top bgColor=#ffffff>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width=10> </TD>
<TD vAlign=top width=529><!-- #BeginEditable "main" -->
<TABLE class=wz1 cellSpacing=0 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD class=wz1 vAlign=top>
<TABLE cellSpacing=0 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD>
<P align=center><SPAN
class=wz1_t>小巧的键盘练习器(上篇)</SPAN></P>
<P class=wz1_t2 align=center><A
href="mailto:pnzwzw@cdle.net" target=_blank><IMG
height=21
src="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/p2.gif"
width=23
border=0></A>作者:温正伟 原载:无线电杂志</P></TD></TR></TBODY></TABLE>
<P> 本文的相关程序下载:<A
href="http://www.cdle.net/web/alldata/CDLE/file/cdle050027.rar"
target=_blank>点击下载<IMG height=16
src="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/rar_s.gif"
width=16 border=0><IMG height=31
src="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/keil.gif" width=32
border=0></A><IMG height=32
src="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/ic.gif"
width=32><BR> 源码文件说明<BR> ps2key.c C源码文件<BR> scancodes.h 扫描码定义<BR> PS2Key.Uv2 keil7.01项目文件<BR> ps2key.hex 编译好的单片机HEX文件<BR><BR> 对于现代人来说电脑键盘和鼠标已不再是陌生的事物了,这小小的东西不但是人们控制电脑的好帮手,也是我们日常工作生活的好伙伴。也许你可以打字打得飞快,或是在游戏中用鼠标指点江山,但我想你未必知道它们连接电脑的"秘密"。这一期我们以一个小巧的键盘练习器作为实例去了解PS/2键盘、鼠标与电脑的通讯协议。实例制作中是用一个AT89C51的单片机去连接PS/2键盘和一个16*2的液晶显示屏,当敲击键盘时,字母就可以显示在液晶显示屏上。如果你家的小朋友初学打英文,而你又是一个单片机的喜欢者,我想不妨可以做一个给小朋友玩玩。当然你也可以把实例中提供的源码修改成你要用到PS/2键盘的制作项目中,实例中也有16*2字符型的液晶显示屏的驱动函数实例也是可以直接应用的。图一就是这个完成实验的实物图。<BR></P>
<TABLE cellSpacing=1 cellPadding=0 align=center
bgColor=#ff9900 border=0>
<TBODY>
<TR>
<TD><IMG height=300
src="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/cdle050027_01.jpg"
width=400></TD></TR>
<TR>
<TD><FONT
color=#000000>图1:实验的实物图</FONT></TD></TR></TBODY></TABLE><BR><B> 接口定义和电路原理</B><BR> <BR> 实例电路的电路原理很简单,我们先来看看要用到的元件。表一是元件列表,图二则是主要的元件:AT89C51单片机(可以用AT89C52/S51/S52直接替换,如用AT89C2051/4051则要更改程序中相应的引脚定义)组成的51最小化化系统、SMC1602A(16*2字符)液晶显示屏、PS/2的六孔插座。对于图三大家应该很熟悉了,是主机后面的PS/2插座和PS/2设备的连接器插头。PS/2设备的连接器使用mini-DIN连接器只有6根引线,而且还有二根是保留不用的,有作用的仅仅只有四根,引脚定义看图四,VCC是+5V,GND是地,DATA是数据线,CLK是时钟线。DATA和CLK都是可双向通讯的,也就是说通过这二根线,既可以把主机的数据发到PS/2设备,又可以把设备的数据发向主机。至于液晶显示屏的引脚定义和相关资料这里就不提了,有兴趣的朋友请看附带光盘中的资料文件。<BR><BR> 知道PS/2连接器的引脚定义后,就可以知道应该如何把它连接到AT89C51最小化单片机系统中去。这实例中用到的PS/2设备是用于PC机的PS/2键盘,从PS/2协议可知(请看后面的说明)当键盘有键被按下时,CLK线会以一定的频率发出一串方波,也就是时钟信号,在这些时钟信号处于低电平时,DATA线会以一定的格式输出数据,这些数据就反映了所按的是什么键了。因此我们可以把CLK线连接到AT89C51单片机的P3.3外部中断1上,DATA线连接到P3.4I/O引脚上,当有时钟信号到来时,低电平就会产生外部中断,这时就可以读取DATA线上的值,这样单片机就可以取得按键值了。取得键值后经单片机的转换处理经P1和P2I/O口输出并行数据到液晶显示屏显示相应的字符。图五为原理图,大家在制作时应注意把AT89C51的31脚接上+5V的VCC,这样才能运行芯片内的程序。<BR><BR>
<TABLE cellSpacing=1 cellPadding=0 align=center
bgColor=#ff9900 border=0>
<TBODY>
<TR>
<TD><IMG height=300
src="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/cdle050027_02.jpg"
width=400></TD></TR>
<TR>
<TD><FONT
color=#000000>图2:元件图</FONT></TD></TR></TBODY></TABLE><BR>
<TABLE cellSpacing=1 cellPadding=0 align=center
bgColor=#ff9900 border=0>
<TBODY>
<TR>
<TD><IMG height=214
src="磁动力电子--本站原创--小巧的键盘练习器 (上篇)_files/cdle050027_03.jpg"
width=400></TD></TR>
<TR>
<TD><FONT
color=#000000>图3:PS/2的连接器形式</FONT></TD></TR></TBODY></TABLE><BR>
<TABLE cellSpacing=1 align=center bgColor=#99cc33
border=0>
<TBODY>
<TR>
<TD height=25>
<DIV align=center>元件</DIV></TD>
<TD height=25>
<DIV align=center>数量</DIV></TD>
<TD height=25>
<DIV align=center>说明</DIV></TD></TR>
<TR bgColor=#ffffff>
<TD height=20>AT89C51</TD>
<TD height=20>
<DIV align=center>1</DIV></TD>
<TD height=20>AT89C52,AT89S51/52可代用</TD></TR>
<TR bgColor=#ffffff>
<TD height=20>SMC1602A</TD>
<TD height=20>
<DIV align=center>1</DIV></TD>
<TD height=20>16*2英文字符,带背光</TD></TR>
<TR bgColor=#ffffff>
<TD height=20>PS/2键盘</TD>
<TD height=20>
<DIV align=center>1</DIV></TD>
<TD height=20>101、104键</TD></TR>
<TR bgColor=#ffffff>
<TD height=20>6孔PS/2插座</TD>
<TD height=20>
<DIV align=center>1</DIV></TD>
<TD height=20>6PIN MiniDIN</TD></TR>
<TR bgColor=#ffffff>
<TD height=20>12M</TD>
<TD height=20>
<DIV align=center>1</DIV></TD>
<TD height=20>12M或11.0592M均可</TD></TR>
<TR bgColor=#ffffff>
<TD height=20>1K电阻</TD>
<TD height=20>
<DIV align=center>1</DIV></TD>
<TD height=20>用于LCM显示偏压,可以用10K可调电阻替代,可调</TD></TR>
<TR bgColor=#ffffff>
<TD height=20>8.2K电阻</TD>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -