在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 新聞中心

      EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 復(fù)習(xí)一下PS2鍵盤解碼

      復(fù)習(xí)一下PS2鍵盤解碼

      作者: 時(shí)間:2016-12-02 來(lái)源:網(wǎng)絡(luò) 收藏
      #include

      #define uchar unsigned char
      #define uint unsigned int
      /**************1602部分******************/
      sbit lcden=P1^2;
      sbit lcdrs=P1^0;
      sbit lcdrw=P1^1;
      sbit psdat=P3^4;
      sbit psclk=P3^3;
      /*char code Tab[]={0,1,2,3,4,5,6,7,8,
      9,A,B,C,D,E,F};*/
      char code Tab[]="0123456789abcdef";
      uchar key[3];
      uchar numbit,keyv,keynum,m,n,o,p,q,r;
      void delay(uint z) //延時(shí)子程序
      {
      uint x,y;
      for(x=z;x>0;x--)
      for(y=110;y>0;y--);
      }

      本文引用地址:http://www.biyoush.com/article/201612/324697.htm

      void write_com(uchar com)//定義一個(gè)帶參數(shù)的寫命令子程序
      {
      lcdrs=0; //1602的rs為0時(shí),接收命令,為1時(shí)接收數(shù)據(jù)
      P0=com;//把void write_com(uchar com)中的COM中的數(shù)據(jù)給P0口
      delay(2);
      lcden=1;
      delay(2);
      lcden=0;
      delay(2);
      }

      void init_1602()//定義一個(gè)初始化子程序
      {
      lcden=0;
      lcdrw=0;
      write_com(0x38);//調(diào)用 write_com子程序并把0x38賦給P0口,顯示模式打開(kāi)
      write_com(0x0f);//調(diào)用 write_com子程序并把“開(kāi)顯示,顯示光標(biāo),光標(biāo)閃爍”指令碼賦給P0口
      write_com(0x06);//調(diào)用 write_com子程序并把“地址指針加1,整屏不移動(dòng)”指令碼賦給P0口
      write_com(0x80);//數(shù)據(jù)指針初始化,讓指針指向最左端,顯示從第一行開(kāi)始
      write_com(0x01);//調(diào)用 write_com子程序并把"清零指"令碼賦給P0口
      }

      void write_dat(uchar dat)//定義一個(gè)帶參數(shù)的寫數(shù)據(jù)子程序
      {
      lcdrs=1; //1602的rs為0時(shí),接收命令,為1時(shí)接收數(shù)據(jù)
      P0=dat;//把void write_shu(uchar shu)中的COM中的數(shù)據(jù)給P0口
      delay(2);
      lcden=1;
      delay(2);
      lcden=0;
      delay(2);
      }

      /******************/

      void main()
      {
      init_1602();
      IT1=1;//接P3^3,所以用外部中斷1,用下降沿IT1=0是用低電平
      EX1=1;// 打開(kāi)外部中斷1。
      EA=1;//打開(kāi)總中斷
      while(1)
      {
      if(keynum==3)
      {
      keynum=0;
      m=key[0]/16;
      n=key[0]%16;
      o=key[1]/16;
      p=key[1]%16;
      q=key[2]/16;
      r=key[2]%16;
      write_com(0x80);
      write_dat(Tab[m]);
      write_dat(Tab[n]);
      write_dat(Tab[o]);
      write_dat(Tab[p]);
      write_dat(Tab[q]);
      write_dat(Tab[r]);
      }

      }
      }
      void int1() interrupt 2
      {
      if((numbit>0)&&(numbit<9))
      {
      keyv=keyv>>1;
      if(psdat)
      keyv=keyv|0x80;
      }
      numbit++;
      if(numbit>10)

      {
      numbit=0;
      key[keynum]=keyv;
      keynum++;
      }
      }



      關(guān)鍵詞: PS2鍵盤解

      評(píng)論


      技術(shù)專區(qū)

      關(guān)閉