+Ar5M+e _C44606
,DHt~.{4ka44606|(u0z[3OR q _C V44606
_.zO)J8p'_446062 电路设计
G*kx;n.k2b&^44606 扩展键盘由以下几部分组成:
3n%q4b|J3h aXg44606 ①单片机89C51及时钟、复位电路。
1v|2c.y6Lw44606 ②TTL电平到RS232C电平转换芯片ICL232CPE,此芯片只需直流+5 V电源。
"{+bs1c/fo44606 ③工作指示电路。电子园51单片机学习网"?N4V G g8M'o`&Gr
④键位阵列部分(8×13)。电子园51单片机学习网z6JPcaR|2a
扩展键盘电原理图如图2所示。电子园51单片机学习网0_$m$BVc#j)D7Vo
电子园51单片机学习网*u3lSEd Sd
3 89C51的结构与性能特点
Bpg'dS|)l44606 89C51是MCS-51系列单片机的典型产品之一。其内部具有的硬件资源如图3所示。
电子园51单片机学习网C2E.yt\
IA"A*C4i-M44606
4^` _nYz(S^44606#pIUVK.Ge44606
$u0}8[&z m+j^"|%A44606 ①4 kB可编程的E2PROM。电子园51单片机学习网[3AY"?[}p;a2A!M
②面向控制的8 b CPU。电子园51单片机学习网Q7z(y\QcF
③128 B内部RAM数据存贮器。
0Cu%|_)e44606 ④32 b双向输入/输出线。
U!x'US,kYN1v2L44606 ⑤1个全双工的串行口。电子园51单片机学习网X+E+XH.q+bN7}x
⑥2个16 b定时器/计数器。
BYc}:x+~[44606 ⑦5个中断源,2个中断优先级。⑧时钟发生器。
F"A[TL_44606 ⑨可以寻址64 kB的程序存贮器和64 kB的外部数据存贮器。
7u%af G4U\f5KO44606 该键盘利用了89C51的片内E2PROM作为程序存贮器,避免外扩存贮器占用单片机的输入/输出口资源;利用P3口的第二功能完成异步串行通讯功能;用一片ICL232CPE作为接口电平转换芯片,便实现了键盘的全部硬件逻辑。硬件少,可靠性高。整个键盘采用+5 V直流电源;电路与键位阵列分离设计。本键盘还克服了以往键盘设计中键位少、不通用等缺点。
!B"r,\"S|w7G8?44606电子园51单片机学习网%y1V4u u(F#Q0D
4 软件功能流程图
}#x:x [/ph-JQ:uU44606 软件实现键位扫描、消除抖动、键码转换、键码发送等功能。另外软件也实现了换档、按键连发功能。软件功能流程图如图4所示。电子园51单片机学习网*[&j:Yg%rcQZ.y
电子园51单片机学习网2a9~3P9VDu{
XXw$i p _3M ~^446065 应用中应注意的问题
(``%]e)l4SA.j44606 在异型机种的串行通讯中,当规定了传输速率后,MCS-51单片机系统中选取适当的晶体振荡频率至关重要。他与串行接口的工作方式、电源控制寄存器PCON的SMOD位、定时器T1一起决定着通讯的成败。MCS-51单 片机串行接口工作在方式0时,其波特率固定不变,其大小为:晶振频率/12。此方式为同步方式;工作在方式2时为异步方式,其波率为晶振频率:①SMOD=0时,波特率为:晶振频率/64;②当SMOD=1时,波特率为:晶振频率/32;串行接口工作方式为1,3时为异步方式且其波特率是可变的,除了与SMOD位的取值有关外,主要取决于定时器1的溢出率。波特率可由下式确定:
(~"z?qs(sS44606
t4O VdhN44606而定时器1的溢出率又由计数速率和定时时间预置数X决定,即:
X"r!}k8A"U? z44606 电子园51单片机学习网zW@\*`9V^ Fk
此时T1工作方式2,即8位自动装载方式。这种方式可以避免通过中断服务程序来重新装入初值,所得波特率也比较精确。式中X即为在TH1和TL1中装入的初始计数值。定时器1的计数速率与定时器工作方式的选择有关。当选定T1为定时工作方式时,其计数输入脉冲为内部时钟信号,即每个机器周期使寄存器值加1。而每个机器周期为12个振荡周期,故计数速率为晶振频率的1/12。因此电子园51单片机学习网YP)j+J%j6} ITg
VT iK(xp2q44606 由于本扩展键盘与显示处理机的串行通讯为异步方式,所以设置他的串行接口的工作方式为方式1,定时器1的工作方式为方式2。再根据波特率要求(9 600 b/s)求他的预置值。若系统晶体的振荡频率12 MHz时,当SMOD选为1时,TH1,TL1的初值计算如下:电子园51单片机学习网qv,o0b#X|xQ![9tFO+O3~
电子园51单片机学习网 _@ h P9N2}$e$G$KH
解上式可得:X1=250(FAH)或X2=249(F9H)
lJ3]&ua#B44606 将X置入TH1,TL1时,波特率发生器产生的实际的传输速率为:电子园51单片机学习网0Sh.kK+H"w Q
电子园51单片机学习网 |$gM8J3|o
或 波特率2=8 928.57 b/s,波特率误差2=7%
x'JZ5V U5C*O)I\+h44606无论置入哪个数,PC机与单片机之间均无法完成正常的通讯。
'n N&kYe|[J Rw44606 若采用11.059 2 MHz晶振,按照上面公式计算出X=250 FAH,实际的传输速率为9 599.83 b/s,其误差为0.001 77%,PC机与单片机的通讯可正常进行。
T&R-Xt'y!j#h0lP\n44606 另外,SMOD位的选择有时也能影响波特率的误差。
b7z*Y$M@2|x44606 因此在波特率设置时,对SMOD位的选取也需慎重考虑。
,Q&wA(q?5T)A44606 设计按键阵列时,应采用标准键盘的导电橡胶薄膜按键阵列,避免使用寿命短、常出现接触不良现象的老式键。
K(e5?7_-K+l44606
+bjhA-Z6m%N446066 结语电子园51单片机学习网'|/U~a-Z9v4D
此键盘功能设计还可进一步细化,如实现大写锁定、小键盘锁定等。由于键盘与主机通讯数据量不大,故未采用USB口与主机通讯。稍加修改,完全可以用USB口与主机通讯。若此键盘用于一些不采用串行通讯的系统中时,可直接用TTL电平相连,省掉ICL232CPE芯片,电路更简单,且P3口可采用并行输出。电子园51单片机学习网0p\ ]oiG7b.o*x S|
电子园51单片机学习网qR.vJ4} JktG:M(w#Q
参考文献电子园51单片机学习网i"[2M7z)^rv
[1]何立民.MCS-51系列单片机应用系统设计[M].北京:北京航空航天大学出版社,1990.
q%\+A e Y8E3d6eo44606[2]张友德.单片微型机原理、应用与实验[M].上海:复旦大学出版社,2000.电子园51单片机学习网;?\'UVN"ps
[3]何立民.单片机应用技术选编(1)[M].北京:北京航空航天大学出版社,1992.
文章评论(0条评论)
登录后参与讨论