数电课设ASCII码键盘编码电路设计.docx
- 文档编号:8277313
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:13
- 大小:709.43KB
数电课设ASCII码键盘编码电路设计.docx
《数电课设ASCII码键盘编码电路设计.docx》由会员分享,可在线阅读,更多相关《数电课设ASCII码键盘编码电路设计.docx(13页珍藏版)》请在冰豆网上搜索。
数电课设ASCII码键盘编码电路设计
数字电路课程设计报告
论文题目ASCII码键盘编码电路设计
学生专业班级通信工程2011级1班
学生姓名(学号)刘成(20112760)
设计小组其他同学姓名(学号)王骏(20112836)
指导教师宋彩霞
完成时间2013年10月26日
实习地点信息楼214
2013年10月27日
ASCII码键盘编码电路设计
一、课程的选择与设计要求:
ASCII码键盘编码电路的任务是把键盘上所按下之按钮产生的开关信号,编成一个对应的ASCII代码从输出端输出。
ASCII码编码表请参看有关教材。
键盘共8*8=64个键,在外加两个控制键Shift键和Ctrl键作用下,共完成128个键的ASCII码输出。
其中,Shift键为英文大小写字母及其它符号控制键。
Ctrl键为文字符号(也称控制符号)和字符控制符。
键盘字母排列参见下图。
当按下某键,变将键所在的列线与行线接通,于是将列线上的“1”电平传给行线,而没有按下之按键所在的列线与行线不同,这些行线仍保持低电平。
@
H
P
X
SP
(
0
8
A
I
Q
Y
!
)
1
9
B
J
R
Z
“
*
2
:
C
K
S
[
#
+
3
;
D
L
T
\
$
4
<
E
M
U
]
%
-
5
=
F
N
V
↑
&
.
6
>
G
O
W
↓
,
/
7
?
二、设计任务分析:
ASCII码键盘编码电路的任务是把键盘上所按下按钮产生的开关信号,编成一个对应的ASCII代码从输出端输出。
键盘共8*8=64个键,在外加两个控制键Shift键和Ctrl键作用下,共完成128个键的ASCII码输出。
其中,Shift键为英文大小写字母及其它符号控制键。
Ctrl键为文字符号(也称控制符号)和字符控制符。
当按下某键,变将键所在的列线与行线接通,于是将列线上的“1”电平传给行线,而没有按下之按键所在的列线与行线不同,这些行线仍保持低电平。
这个任务可以分解为如下几个部分:
1、开关:
通过控制键盘产生开关信号,也就是用高八个开关低八个开关和外加两个开关来控制信号的高低。
2、开关信号的编码如下。
高位
低位
000
001
010
011
100
101
110
111
000
@
、
H
h
P
p
Z
z
SP
NUL
(
BS
0
DEL
8
CAN
001
A
a
I
i
Q
q
Y
y
!
SOH
)
HT
1
DC1
9
EM
010
B
b
J
j
R
r
Z
z
“
STX
*
LF
2
DC2
:
SUB
011
C
C
K
k
S
s
[
{
#
ETX
+
VT
3
DC3
;
ESC
100
D
D
L
l
T
t
\
|
$
EOT
’
FF
4
DC4
<
FS
101
E
E
M
m
U
u
]
}
%
ENQ
-
CR
5
NAK
=
GS
110
F
F
N
n
V
v
^
~
&
ACK
.
SO
6
SYN
>
RS
111
G
g
O
o
W
w
_
DEL
BEL
/
SI
7
ETB
?
US
3、Shift键和Ctrl键的实现:
当按下某键时,在输出端会显示该键上档的ASCII码,对于键盘的前四列当按下该键的同时,按下Shift键输出端输出该键下档字符的ASCII码。
对键盘的后四列当按下该键的同时,按下Ctrl键输出端输出该健下档字符的ASCII码。
4、ASCII码的输出:
任意接通键盘按键的行、列,输出的ASCII码即为行列交点处字符的ASCII码。
三、具体设计过程的描述:
对比本编码与标准ASCII码可知,本编码的前四列上档字符比标准ASCII码小64(1000000B),下档字符比标准ASCII码小96(1100000B)。
后四列上档字符与标准ASCII码相同,下档字符比标准ASCII码大32(100000B)。
因此在编码后需对编码值进行修正以得到正确的ASCII码。
本设计采用加法器对编码进行修正。
观察本编码与标准ASCII码差值可知,只需要对编码所得高位部分进行适量的修正即可得到标准结果。
本设计采用串行进位加法器以实现该逻辑功能。
对键盘上的前四列上档字符需要使用加法器对其高位加1000B,当按住shift时要输出低档字符的ASCII时,高位需加上1100B。
对键盘的后四列,其上档字符的编码正好等于标准ASCII码无需处理,当按住ctrl输出其下档字符时,由于其编码比ASCII码大32,需要对其高位减去100B,即加上1100B(100B的补码),即得到所按键的ASCII码。
由于在未按下shift或ctrl在修正时所加的数不同,故本设计采用数值比较器对编码进行前四列与后四列的区分。
四、设计方案的确定:
图1
如上图1,此部分采用两个DSWPK_8开关来控制信号的输入。
其中上边的开关控制八列即ASCII码高三位,下边的开关控制八行即ASCII码低三位。
74LS148D即优先编码器主要是对输入进行编码,由于此编码器是低电平有效故需要反相器。
采用四个74LS04D即六反相器对74LS148D的输入与输出进行电平的转换,即高低电平的转换。
将U1、U2反相器和U5编码器的VCC接12V,GND接地。
U1的六个输入端依次接到开关的前六个代表着前六列,U2第5个和第6个输入端接到开关的后两个代表着后四列。
U1的六个输出端接到U5即编码器的前六个输入端,U2第5个和第六个输出端接到U5即编码器的后两个输入端。
将U5编码器的三个输出端接到U2反相器前三个输入端,至此U2反相器前三个输出端就是未修正的列ASCII码。
下面的U3、U4反相器和U6编码器的行接法与列接法类似,如图1。
图2
如上图2是最后一部分,此部分的作用是对74LS148D编码后的码进行修改,同时增加Ctrl和Shift在电路中的作用,主要作用为:
当不按下Shift时对键盘上的前四列上档字符需要使用加法器对其高位加1000B,当按住shift时要输出低档字符的ASCII需要使用加法器对其高位加上1100B。
对键盘的后四列,其上档字符的编码正好等于标准ASCII码无需处理,当按住ctrl输出其下档字符时,由于其编码比ASCII码大32,需要对其高位减去100B,即加上1100B(100B的补码),电路图实现如上。
采用U14即74LS85D数值比较器来区分前后四列。
其具体方法是:
前三个输入即A3、A2、A1为011,B3、B2、B1为编码器编码后的码。
则OAGTB即A>B与OAEQB即A=B输出端为前四列,与shift相接。
OALTB即A
最终实验时七个小灯泡的亮与否代表着最后的ASCII码,亮代表高电位1,不亮代表低电位0,读ASCII码时是从上向下读的。
图3
整体电路如上图3。
五、各元件的主要参数与系统实施:
1、74LS148
0-7编码输入端(低电平有效)
EI选通输入端(低电平有效)
A0、A1、A2编码输出端(低电平有效)
GS宽展端(低电平有效)
EO选通输出端
优先编码器74ls148功能表
输入
输出
EI
I0
I1
I2
I3
I4
I5
I6
I7
A2
A1
A0
GS
EO
1
x
x
x
x
x
x
x
x
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
x
x
x
x
x
x
x
0
0
0
0
0
1
0
x
x
x
x
x
x
0
1
0
0
1
1
0
0
x
x
x
x
x
0
1
1
0
1
0
1
0
0
x
x
x
x
0
1
1
1
0
1
1
1
0
0
x
x
x
0
1
1
1
1
1
0
0
1
0
0
x
x
0
1
1
1
1
1
1
0
1
1
0
0
x
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
2、74LS04
供电电压:
4.75V--5.25V
输出高电平电流:
-0.4mA
输出低电平电流:
8mA
74HC04是内含6组相同的反相器。
即1A输入高电平,1Y输出低电平 六反相器
3、74LS85
A0-A3字A输入端
B0-B3字B输入端
A>BA>B级联输入端
A=BA=B级联输入端
A<BA<B级联输入端
FA=BA等于B输出端
FA>BA大于B输出端
FA<BA小于B输出端
74LS85功能表
4、74LS183
引出端符号
1A、1B、2A、2B运算数输入端
1CIn、2CIn进位输入端
1COn+1、2COn+1进位输出端
1F、2F和输出端
功能表
任意接通键盘按键的行、列,输出的ASCII码即为行列交点处字符的ASCII码。
例如:
行线接001,列线接000,未按shift输出为1000001B即为A的ASCII码,如下图4。
图4
按住shift时输出为1100001B即为a的ASCII码,如下图5。
图5
行线接000,列线接100,未按ctrl时输出为0100000B即为的ASCII码,如下图6。
图6
按下ctrl时输出为0000000B即为NUL的ASCII码,如下图7。
图7
六、安装调试中的主要问题及解决方法:
在本次实习中电路图前半部分挺容易想出来的,但在ASCII码修正时有前后四列之分很难解决。
刚开始并没有想到用数值比较器只是用两根线来代表shift和ctrl,并以此来用加法器对其ASCII码修正,始终没想出解决的办法。
后来有人提议用数值比较器把前后四列分开这个问题才被解决,具体方法见上面的74LS85D数值比较器分析。
其次遇到的另一个问题是开关太多若一个一个分开按显得电路图很乱,并且不好分析。
为此我们用能同时控制8个不同电路的开关来代替。
最后电路原理图虽然设计出来了,由于芯片引脚比较多故在连线时一不小心就弄错接口使之运行失败,只是连这个图就连了三遍才运行成功,因此理论与实践都得重视啊。
七、收获与体验:
通过本次实习我学到了很多东西,通过和小组同学的讨论意识到自己考虑的太片面了,而且讨论时有一些自己想不通的也能解决。
这让我知道了团队合作的好处,在以后处理问题是一定要做好全面的思考,注重各方面的因素。
在知识方面进一步的掌握了74LS148、74LS04、74LS85、74LS183芯片的主要参数和功能,并能熟练的运用它们。
同时以前不管什么事情都是自己做,现在才明白与人合作效率要高得多。
此次课程设计涉及或、非门,简单组合逻辑电路芯片的使用以及对电路元器件的认识,在电路设计中更用到了软件Multisim11.0。
在此课程设计中我学到很多知识和技能,更加熟练地掌握了《数字电子技术基础》、《模拟电子技术基础》等课程,达到了学以致用的效果,并在实践中加强了对所学知识的理解程度。
而且只有自己动手操作才能更好掌握数字逻辑电路设计思路和方法,开拓我们的视野。
课程设计成绩评定表
学生姓名
刘成
专业班级
通信工程2011级1班
设计题目
ASCII码键盘编码电路设计
指导教师评语及意见:
指导教师评阅成绩:
指导教师签字:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数电课设 ASCII 键盘 编码 电路设计