您当前的位置:五五电子网电子知识单片机-工控设备源码-程序51mcu模拟ps2键盘发送数据程序 正文
51mcu模拟ps2键盘发送数据程序

51mcu模拟ps2键盘发送数据程序

点击数:7763 次   录入时间:03-04 11:50:32   整理:http://www.55dianzi.com   源码-程序
/*
void UART() interrupt 4 using 2
{bit odd,odd_check;
uchar i, buf;

    if(RI)
{
 buf=SBUF;
 odd=RB8;
 for(i=0;i<8;i++)
 {odd_check=odd_check ^ buf ^7;
 buf<<=1;
 }
 if(odd_check!=odd)//校验出错发送错误代码0x55
 {
 
  SBUF=0x55;//错误代码0x55
  while(!TI);//等待发送完成
  TI=0;//清除发送标志
 }
 else
 {*receive_buf=SBUF;//将来自计算机的数据保存
 }
 RI=0;//清除接收标志
}
}

    */
/************************************************************
//mcu初始化
**************************************************************/
void ini(void)
{
TMOD=0X20;                /*定时器1八位自动重装*/
TL1=0XFA;TH1=0XFA;        /*12MHz,9600波特,误差8.5%*/
//SCON=0Xd8;PCON=0X10;      /*11位异步,定时器控制*/
//TR1=1;
  AUXR=0xbf;        //12T:0xbf    1T:0x40
  RCAP2H=0XFF;    //设T2为波特率发生器  12M----9600----0xFFD9
  RCAP2L=0Xd9;
  TR2=1;
// T2IE=1;
// T2RSE=1;
  ET2=1;
  TCLK=1;
  RCLK=1;
  TMOD=0x11;  //设T1为定时方式1,设T0为定时方式1
  TH1=0xec;  //5ms
  TL1=0X78;
  TH0=0xff;  //100us  ff9b
  TL0=0xaa;
  PCON=0x00;
//  SCON=0xD0;      //串行口工作方式3
//  ES=1;            //开串行口中断
  EA=1;
  ET0=1;          //T0开中断
  ET1=1;          //T1开中断
  IT0=1;  //外部中断0边沿触发,
  EX0=1;//中断允许
  IT1=1;  // 外部中断1边沿触发?
  EX1=1;//中断允许
  TR1=1;          //启动T1
  TR0=1;          //启动T0
}

    /**********看门狗***************/
void watchdog()
{
 WDT_CONTR = 0x3f;
}

    /***************************/
void main(void)
{uchar chg_code,key;

   
ini();
init_key();
watchdog();//看门狗

     for(;;)
 {
// key=scankb();//键盘扫描
    key= read_key();
 chg_code=change_code(key);//代码转换
// series_sent(chg_code);//串口发送
 ps_send(chg_code);//PS/2发送
 watchdog();
 }

    }
 



上一页  [1] [2] 


本文关键字:程序  键盘  源码-程序单片机-工控设备 - 源码-程序

《51mcu模拟ps2键盘发送数据程序》相关文章>>>