Wavemcu.com - 健波硬件工作室

匿名投稿 投稿指南 RSS订阅 站长资讯通告:     2008年8月16日:新站点正在测试当中,如发现问题,请E-mail给站长!  [EasyWave  2008年8月16日]        
搜索: 您现在的位置: 健波硬件工作室 >> 编程器家园 >> Keil C编程 >> 正文

AT89C2051单片机设计的PC/AT键盘

2008-06-10 13:50:46 来源:本站原创 作者:佚名 【 点击:

核心提示:在工业控制、测量仪器等领域,已大量使用嵌入式PC,如 ADVANTECH公司的PC/104、AMD公司的E86嵌入式PC等。

在工业控制、测量仪器等领域,已大量使用嵌入式PC,如 ADVANTECH公司的PC/104、AMD公司的E86嵌入式PC等。它们除具有 PC的功能外,还提供了功能强大的各种标准接口,如:平板 /VGA显示器控制接口、光驱接口、以太网接口、RS-232/422/485 接口、PC/AT键盘接口等。这就为新产品开发的标准化、模块化提供了方便,可大大缩小研发周期,降 低研制成本,快速进入市场。由于嵌入式PC具有标准PC/AT 键盘接口,也就是说,可以用标准的PC/AT键盘来对嵌入式 PC进行操作与控制。但是,在很多实际应用中,由于一般只用到某几个固定的键,并希望键盘具有体积小巧、便于布放等特点,为此,希望能够设计一种小巧、灵活的 PC/AT键盘,来满足各种需求。本文介绍一种由AT89C2051设计实现的 PC/AT键盘。

1 PC/AT键盘的特点

PC/AT键盘由单片微控制器、键盘矩阵和支持逻辑三部分组成。键盘微控制器的主要功能是扫描 键盘,以得到有效的闭合键,一旦键被按下或放开,就为系统板产生键代码,将键代码以串行格式传递到系统板,同时产生将键代码转换为供系统板使用的并行数据所需的时钟信号。 AT键盘使用接通键码,其值在00~7F之间,以串行数据格式传递到系统板;每发送一个键码包含11个数据位,即1个起始位、 8个数据位(低位在前,高位在后)、1个奇偶校验位、1个停止位。在键码传送的同时,微控制器还传送1个键码时钟同步信号,用于同步键码数据的接收。键码中每个数据位的传送发生在 键盘时钟的下降沿,时钟的波特率为16 Kb/s。图1为接通键码是2C,即按下t键时,键码的传送格式。

对于PC/AT键盘,如果按下键0.5 s之前放开该键,则键盘电路产生一个断开键码,将这个键码也以串行数据的格式传送出去。AT键盘的断开键码为F0,在断开键码之后再跟接通键码。其中断开键码通知BIOS键盘例程,按下的键序列功能已结束,键已被放开。如果在键按下 0.5 s之后仍未放开该键,则键盘电路产生一个接通键代码(与接通键码相同),并以每秒6个键码的速率(每166.7 ms一个键码)进行传送,此过程直到键盘电路检测到断开代码为止。常用键的键码如表 1所列。

2 硬件设计

  键盘电路如图2所示,由ATMEL公司的微控制器AT89C2051 、MAXIM 公司的看门狗自动复位电路MAX813L及键盘矩阵组成。由于AT 89C2051的可用端口为16个,除复位端RES、看门狗信号输出端WDI、键码数据输出端TXD和时钟输出端CLK外,还剩12个可用端口,这样,其最大可独立响应6×6=36个键的输入,可满足工控机常用控制键的要求。 MAX813L为看门狗电路,它实时接收来自AT89C2051的WDI信号,并自动判断两次 WDI信号的间隔时间。当时间间隔小于1.6 s时,其RST输出端保持低电平;当时间间隔大于1.6 s时,其RST输出端输出高电平,AT89C2051被复位。AT89C2051 具有如下特点:

◇ 具有2K字节可编程闪存;
◇ 128×8bit 内部RAM;
◇ 15根可编程I/O线;
◇ 2个16位定时/计数器;
◇ 6个中断源;
◇ 可编程串行UART。

3 软件设计

软件包括定时0中断子程序、定时1中断子程序、主程序等。其中,定时器0定时中断子程序用于定时检测有无键被按下、判断哪个键被按下并确定对应的键码。定时器 1定时中断子程序用于确定输出键码和时钟信号的波特率,并定时输出看门狗信号,用于防止软件出现死机现象。主程序根据有无键被按下标志,确定是否输出键码和同步时钟信号。如有键被按下,则调入由定时中断子程序所确定的键码,输出相应的键码并同时输出同步时钟信 号。主程序流程如图3所示。

Tags: Keil  
责任编辑:EasyWave
  • 调用插件
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】   
    姓 名: * Oicq:
    评 分: 1分 2分 3分 4分 5分
    评论内容:
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用健波硬件工作室服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 帮助