EDN首页   博客首页

日志档案

发表于 2008-5-12 11:41:35

0

标签: 51单片机  PS2键盘控制  LCD1602显示  

51 键盘控制实验 实验(二十)

点击下载

这个实验可以利用鼠标来控制单片机,在LCD1602上面显示相应的动作,详细见附件

平台:FDR-1 51 开发板

主程序代码:

#include

#include "LCD1602_4.h"
#include "ps2.h"

unsigned char key_bit=0,key_mem[10]={0};

void main()
{
 unsigned char temp="0",i=0,j=0,y=0;
 LCD_init();        //1602初始化
 EA=1;          //开总中断
 IT0=1;
 EX0=1;          //开INT0中断
 LCD_write_string(0,0,"Ready Go!"); //说明初始化成功
 
 while(1)
 {
  if(BF)         //如果有按键按下则放进缓冲区
  {
   j+=getchar(keycode);    //去掉断码
   if(j==2)
   {
    key_mem[key_bit]=ps2_key;//放进缓冲器
    key_bit++;
    j=0;
   }
   BF=0;       //再开中断
   EX0=1;
  }
  while(key_bit!=0)     //缓冲区如果有键码,则显示
  {
   if(temp>0x0f && keycode!=102)//液晶换行
   {
    temp=0;
    if(y==0)y++;
    else {y=0;CLEARSCREEN;}   //显示满屏幕则清屏
   }
   if(keycode==102)     //如果有BackSpace按下则删掉前一个键
   {
    temp--;
    LCD_write_char(temp,y,' ');
    LCD_set_xy(temp,y);
   }
   else
   {
    LCD_write_char(temp,y,key_mem[0]);//显示缓冲区的键码
    temp++;
   }
   for(i=0;i   {
      key_mem[i]=key_mem[i+1];
    i++;
   }
   key_bit--;
   
   if(BF==1)break;
  }
 }
}

系统分类: 单片机   |   用户分类: 51单片机专区   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(381)    回复(0)  

投一票您将和博主都有获奖机会!