5193|9

72

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

自制PC机键盘无法完成自检?单片机高手请进 [复制链接]

系统上电后PC机提示找不到KEYBOARD
高手帮忙看看!主程序部分,这样写有问题吗?
void main()
{

      BYTE RcvPc;

//定时器0初始化  
          TMOD=0x01;                   //定时器0方式1
          TH0=0xee;                           //11.0592M晶振        5ms扫描一次键盘是否有键被按下
          TL0=0x00;
          ET0=1;
          TR0=1;
          EA=1;
          if((Pclk==1)&&(Psdata==1))
          {
          KeyCode = 0XAA;              //上电复位后发送0xaa模拟键盘完成自检信息
          SendOneByte_To_Host();           //发送0xaa自检成功信号
          }
          while(1)
      {
             if(InterruptCount==2)        //定时中断计数每10ms检测一下数据线是否为低电平
          {  
           InterruptCount=0;           //计数清零
          if(Psdata==0)                //检测数据线是否为低电平
          {
           //LED1 = 0;                   //点亮LED1
          
           BEEP = 0;
          
           RcvPc=ReadOneByte_From_PC();
           //KeyCode = 0xfa;
           //SendOneByte_To_Host();
           if(RcvPc==0xee)
           {
            KeyCode = 0xfa;
                SendOneByte_To_Host();   //键盘发送字节给PC机
           }
           else if(RcvPc == 0xfe)
           {
            //KeyCode = 0xfa;                                //从PC机接收完一个字节后,发送'0XFA'作为回应信号给主机
                SendOneByte_To_Host();
           }
           else if(RcvPc == 0xf2)                   //读ID,键盘回应两个字节
           {
            KeyCode = 0xfa;
                SendOneByte_To_Host();
                KeyCode = 0xAB;
                SendOneByte_To_Host();
                KeyCode =0x83;
                SendOneByte_To_Host();
           }
           else
           {
            KeyCode = 0xfa;                           //从PC机接收完一个字节后,发送'0XFA'作为回应信号给主机
                SendOneByte_To_Host();
           }
                        }
          
          }
                                                        
      }

}

最新回复

你用的是什么接口的,要看相应总线的通信协议,不同的协议设计方法不同。  详情 回复 发表于 2007-11-29 19:26
点赞 关注

回复
举报

66

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
帮顶
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
  if((Pclk==1)&&(Psdata==1))
  {
  KeyCode = 0XAA;              //上电复位后发送0xaa模拟键盘完成自检信息
  SendOneByte_To_Host();    //发送0xaa自检成功信号
  }

如果单片机开得不是时间那检测就不时间,嘿嘿

不知道这个发的是不是时候,好好研究一下协议吧

 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

4
 
那自检初始化顺序是当检测到数据线为低就连续发送0xff,0xed,0xf2,0xf3,0xf4等命令字节,还是检测到数据线为低电平就只发送一个字节,如果要发送下个字节就要Psdata再次为低电平时?
顺序是这样子吗? 那第一句键盘要发送的0XAA是什么时候发出去啊?
Keyboard: AA  Self-test passed                ;Keyboard controller init  
Host:     ED  Set/Reset Status Indicators   
Keyboard: FA  Acknowledge  
Host:     00  Turn off all LEDs  
Keyboard: FA  Acknowledge  
Host:     F2  Read ID  
Keyboard: FA  Acknowledge  
Keyboard: AB    First byte of ID   
Host:     ED  Set/Reset Status Indicators     ;BIOS init  
Keyboard: FA  Acknowledge  
Host:     02  Turn on Num Lock LED  
Keyboard: FA  Acknowledge  
Host:     F3  Set Typematic Rate/Delay        ;Windows init  
Keyboard: FA  Acknowledge  
Host:     20  500 ms / 30.0 reports/sec  
Keyboard: FA  Acknowledge  
Host:     F4  Enable  
Keyboard: FA  Acknowledge  
Host:     F3  Set Typematic Rate/delay  
Keyboard: FA  Acknowledge  
Host:     00  250 ms / 30.0 reports/sec  
Keyboard: FA  Acknowledge
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

5
 
可以用示波器看看开机时PC+通用键盘 通讯情况.
如果有个数字示波器并且清楚键盘数据格式的话,应该很容易分析出来的.

 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(中级)

6
 
那PC机上电后,PC机会发送哪些命令字到键盘?然后键盘回应啊!
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

7
 
你還需要去研究協議,如果你沒有相關的資料,留下郵箱,我寄給你
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

8
 
FireFire 我的邮箱是lyzc11@126.com
另外我想说的是现在程序上电后无法检测到键盘,就停在等你按F1或Del键,但这时我按F1或Del键可以对PC机进行操作,但一到了XP操作系统,键盘就失效了!!!请问是为什么,是不是我的初始化接收PC机命令的顺序不对!!!请指教!!!急急急》》》》》》》》》》》》》》》》
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

9
 
有份资料是 PS2技术参考,你可以看下,讲的很详细。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

10
 
你用的是什么接口的,要看相应总线的通信协议,不同的协议设计方法不同。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表