📄 ——isp1016实现机载导航系统的键盘控制.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0062)http://www.21ic.com/new_info/news/files/news/2003112822839.asp -->
<HTML><HEAD><TITLE>——isp1016实现机载导航系统的键盘控制</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>TD {
FONT-SIZE: 12px
}
INPUT {
FONT-SIZE: 12px; font-fammily: verdana,宋体
}
A:link {
FONT-SIZE: 12px; COLOR: #0000ff; LINE-HEIGHT: 16px; TEXT-DECORATION: underline
}
A:visited {
FONT-SIZE: 12px; COLOR: #660066; LINE-HEIGHT: 16px; TEXT-DECORATION: underline
}
A:hover {
FONT-SIZE: 12px; COLOR: #ff0000; TEXT-DECORATION: underline
}
.unnamed1 {
FONT-SIZE: 12px; FONT-FAMILY: "Arial", "Helvetica", "sans-serif"
}
.white {
FONT-SIZE: 12px; COLOR: #ffffff; LINE-HEIGHT: 16px
}
.b:link {
FONT-SIZE: 12px; COLOR: #3366cc; LINE-HEIGHT: 18px; TEXT-DECORATION: underline
}
.b:visited {
FONT-SIZE: 12px; COLOR: #813f1b; LINE-HEIGHT: 18px; TEXT-DECORATION: none
}
.b:hover {
FONT-SIZE: 12px; COLOR: #ffa037; LINE-HEIGHT: 18px; TEXT-DECORATION: underline
}
.148xg {
FONT-SIZE: 14px; COLOR: #0000ff; LINE-HEIGHT: 14pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: underline
}
.128dt {
FONT-SIZE: 14px; COLOR: #9999cc; LINE-HEIGHT: 14pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.heigh150 {
LINE-HEIGHT: 150%
}
</STYLE>
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY text=#000000 bgColor=#ffffff leftMargin=0 topMargin=5>
<TABLE cellSpacing=0 cellPadding=0 width=768 align=center border=0>
<TBODY>
<TR>
<TD align=middle width=168 height=80><IMG
src="——isp1016实现机载导航系统的键盘控制.files/21ic.gif"></TD>
<TD width=472>
<SCRIPT language=javascript
src="——isp1016实现机载导航系统的键盘控制.files/ads.htm"></SCRIPT>
</TD>
<TD height=80>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD class=b12 align=middle height=30><FONT
face="Arial, Helvetica, sans-serif" color=#000000>
<SCRIPT language=JavaScript
src="——isp1016实现机载导航系统的键盘控制.files/date.js"></SCRIPT>
</FONT></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=1 width=768 align=center border=0>
<TBODY>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=3 width=766 align=left border=0>
<TBODY>
<TR bgColor=#d8d6ba>
<TD width=3 height=20></TD>
<DIV id=Position></DIV>
<TD width=378>
<FORM name=email
action=http://www.21icsearch.com/buzi/mail2/chkemail.asp method=post
target=_blank><B>电子工程周刊:</B> <INPUT class=main
style="BORDER-RIGHT: #0097cf 1px solid; BORDER-TOP: #0097cf 1px solid; BORDER-LEFT: #0097cf 1px solid; BORDER-BOTTOM: #0097cf 1px solid; BACKGROUND-COLOR: #ffffff"
maxLength=255 size=30 value=输入您的Email name=email> <INPUT class=jbutton type=submit value=订阅> </TD></FORM>
<DIV></DIV>
<DIV id=Time></DIV>
<DIV id=Image></DIV>
<DIV id=Title></DIV>
<TD width=418>
<MARQUEE onmouseover=this.scrollDelay=99000
onmouseout=this.scrollDelay=80 scrollAmount=2 scrollDelay=80
width="80%"><FONT color=#cc0000><IMG height=12
src="——isp1016实现机载导航系统的键盘控制.files/xilan_arrow.gif"
width=16>每周自动接收行业新闻,技术资料,设计文章</FONT></MARQUEE></TD>
<DIV></DIV>
<TD width=9></TD></TR></TBODY></TABLE>
<DIV></DIV>
<DIV id=Time></DIV>
<DIV id=Image></DIV>
<DIV id=Title><TD< td></DIV></TD></TR></TBODY></TABLE></TD></TR></TABLE><BR>
<TABLE cellSpacing=0 cellPadding=0 width=768 align=center border=0>
<TBODY>
<TR>
<TD vAlign=top width=617 height=2>
<TABLE cellSpacing=0 cellPadding=0 width=583 align=center border=0>
<TBODY>
<TR>
<TD align=middle height=31><FONT size=4><B>isp1016实现机载导航系统的键盘控制
</B></FONT></TD></TR>
<TR>
<TD align=middle height=15>文章作者:姜运生<BR>文章类型:设计应用
文章加入时间:2003年11月28日2:28</TD></TR>
<TR>
<TD align=right><FONT color=#cc0000>文章出处:国外电子元器件</FONT> </TD></TR>
<TR>
<TD height=15>
<HR width="100%" noShade SIZE=1>
</TD></TR>
<TR>
<TD height=15>
<TABLE cellSpacing=0 cellPadding=0 align=center border=0>
<TBODY>
<TR>
<TD></TD></TR></TBODY></TABLE><BR></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=530 align=center border=0>
<TBODY>
<TR>
<TD class=heigh150 height=15>
<DIV id=Content>
<P class=MsoNormal><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
<B>摘要:</B></SPAN>介绍了用isp可编程逻辑芯片设计机载导航系统键盘控制器的设计要点,给出了接口信号及驱动程序的核心代码。该设计具有典型性、通用性和实用性,并可用到各种键盘控制器中。</P>
<P class=MsoNormal><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
<B>关键词:</B></SPAN>键盘控制器 在线可编程 扫描线 isp1016</P>
<P style="TEXT-INDENT: 0px"><B>1 键盘控制器的外部接口信号</B></P>
<P
style="TEXT-INDENT: 30px">无论在任何计算机系统中,键盘都是最重要的输入设备,但是普通键盘不能满足机载要求。笔者在新一代电子航空图导航系统中,用Lattice公司的ispLSI1016设计了一个4×5键盘控制器(以下简称KBC),经实际应用,该键盘控制器通用性较强。图1是其键盘和显示器外观示意图。<BR><IMG
height=366 hspace=10 src="——isp1016实现机载导航系统的键盘控制.files/8a.gif"
width=549 vspace=10 border=0><BR> <SPAN
class=main1>一航情况下,KBC应该是CPU的一个外部I/O设备,它一方面监测各按钮状态,另一方面接受CPU的查询并主动向CPU请求中断。因此,外部接口信号分CPU接口信号和键盘按钮矩阵状态信号。图2为通用KBC外部接口信号示意图,其定义如下:</P>
<P
style="TEXT-INDENT: 30px">*Reset:复位,低有效。该信号有效时将异步复位内部所有寄存器,以对KBC进行初始化;</P>
<P style="TEXT-INDENT: 30px">*CLK:工作时钟,频率为100kHz;</P>
<P style="TEXT-INDENT: 30px">*CS:片选,低有效;</P>
<P style="TEXT-INDENT: 30px">*RD:读信号,低有效;<IMG height=284 hspace=1
src="——isp1016实现机载导航系统的键盘控制.files/8b.gif" width=233 align=right
vspace=1 border=0></P>
<P style="TEXT-INDENT: 30px">*A0:片内地址,用于区分片内寄存器;</P>
<P
style="TEXT-INDENT: 30px">*INT:中断请求,高有效。当键盘控制器检测到有效按键时,该脚为高,当CPU读走按键编码时,KBC自动撤销中断请求;</P>
<P style="TEXT-INDENT: 30px">*D4~D0:三态数据线;</P>
<P style="TEXT-INDENT: 30px">*SL3~SL0:扫描输出,按键盘矩阵的列线;</P>
<P style="TEXT-INDENT: 30px">*RL4~RL0:回复线,接键盘矩阵的行线。</P>
<P style="TEXT-INDENT: 30px">实际上,大部分矩阵键盘的行列是可对换的。</P>
<P style="TEXT-INDENT: 0px"><B>2 KBC接口寄存器定义及驱动程序</B></P>
<P
style="TEXT-INDENT: 30px">KBC针对CPU接口设计有2个只读寄存器,即数据寄存器(Dreg)和状态寄存器(Sreg)。数据寄存器用于保持有效按键的编码值,该编码值就是按键所在的行列;而状态寄存器则用于保持按键的状态信息,以供CPU查询。当CPU访问KBC时(即CS和RD同时有效),adk
A0=0,则访问数据寄存器,否则访问状态寄存器。表1、表2分别是数据寄存器和状态寄存器的定义。<BR><BR><B>表1
数据寄存器定义</B></P>
<TABLE height=34 borderColorDark=#ffffff width="100%"
borderColorLight=#000000 border=1>
<TBODY>
<TR class=main>
<TD align=middle width="33%" height=10>D7 D6 D5</TD>
<TD align=middle width="33%" height=10>D4 D3</TD>
<TD align=middle width="34%" height=10>D2 D1 D0</TD></TR>
<TR class=main>
<TD align=middle width="33%" height=12>X X X</TD>
<TD align=middle width="33%" height=12>Col(列值)</TD>
<TD align=middle width="34%"
height=12>Row(行值)</TD></TR></TBODY></TABLE>
<P style="TEXT-INDENT: 0px"><B>表2 状态寄存器定义</B></P>
<TABLE borderColorDark=#ffffff width="100%" borderColorLight=#000000
border=1>
<TBODY>
<TR class=main>
<TD align=middle width="33%">D7 D6 D5</TD>
<TD align=middle width="33%">D4 D3 D2 D1</TD>
<TD align=middle width="34%">D0</TD></TR>
<TR class=main>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -