<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > MCU SOURCE FILE_鍵盤

          MCU SOURCE FILE_鍵盤

          作者: 時間:2016-11-24 來源:網絡 收藏
          #include<atmel/AT89X52.H>

          #include

          本文引用地址:http://www.ex-cimer.com/article/201611/320826.htm

          #define uchar unsigned char
          #define uint unsigned int
          #define cmd P0 //定義LCM的數(shù)據接口,請根據實際情況修改
          #define lcmbusy P0_7 //定義LCM數(shù)據接口的第8位所在的端口,請根據實際情況修改
          #define RS P3_4//定義LCM的RS引腳所在的端口,請根據實際情況修改
          #define RW P3_3//定義LCM的RW引腳所在的端口,請根據實際情況修改
          #define EN P3_2 //定義LCM的EN引腳所在的端口,請根據實際情況修改

          #define c_cls 0x01 //清屏命令
          #define c_curret 0x02 //光標返回命令
          #define c_setmode1 0x06//設置輸入模式:字符碼傳送完成后DDRAM地址指針自動加1,顯示不移位(一般使用此模式)
          #define c_setmode2 0x07//設置輸入模式:字符碼傳送完成后DDRAM地址指針自動加1,顯示向右移位
          #define c_setmode3 0x04//設置輸入模式:字符碼傳送完成后DDRAM地址指針自動減1,顯示不移位
          #define c_setmode4 0x05//設置輸入模式:字符碼傳送完成后DDRAM地址指針自動減1,顯示向左移位
          #define c_displayoff 0x08//關顯示
          #define c_displayon1 0x0c//開顯示命令1,無光標
          #define c_displayon2 0x0f//開顯示命令2,有光標且光標閃爍
          #define c_displayon3 0x0e//開顯示命令3,有光標且光標不閃爍
          #define c_displaymove1 0x10//光標向左移動,AC 自動減1
          #define c_displaymove2 0x14//光標向右移動,AC 自動加1
          #define c_displaymove3 0x18//光標和顯示一起向左移動
          #define c_displaymove4 0x1c//光標和顯示一起向右移動
          #define c_setfunc1 0x30//LCM功能設置:8位數(shù)據總線,單行顯示,5X8點陣字體
          #define c_setfunc2 0x34//LCM功能設置:8位數(shù)據總線,單行顯示,5X10點陣字體
          #define c_setfunc3 0x38//LCM功能設置:8位數(shù)據總線,雙行顯示,5X8點陣字體
          #define c_setfunc4 0x20//LCM功能設置:4位數(shù)據總線,單行顯示,5X8點陣字體
          #define c_setfunc5 0x24//LCM功能設置:4位數(shù)據總線,單行顯示,5X10點陣字體
          #define c_setfunc6 0x28//LCM功能設置:4位數(shù)據總線,雙行顯示,5X8點陣字體

          #define BL P3_5//定義LCM背光控制接口
          uchar code hexcode[16]="0123456789ABCDEF";



          void cmdexec(uchar scmd)
          {
          cmd=0xff;
          RS=0;
          RW=1;
          _nop_();
          EN=1;
          _nop_();
          _nop_();
          while(lcmbusy);
          EN=0;
          RS=0;
          RW=0;
          cmd=scmd;
          _nop_();
          EN=1;
          _nop_();
          _nop_();
          EN=0;
          }

          void show(uchar x,uchar y,uchar schar){
          uchar temp;
          temp=x&0x0f;
          y&=0x3;
          if(y==2)temp|=0x40;
          temp|=0x80;
          cmd=0xff;
          RS=0;
          RW=1;
          _nop_();
          EN=1;
          _nop_();
          _nop_();
          while(lcmbusy);
          EN=0;
          RS=0;
          RW=0;
          cmd=temp;
          _nop_();
          EN=1;
          _nop_();
          _nop_();
          EN=0;
          RS=0;
          RW=1;
          _nop_();
          EN=1;
          _nop_();
          _nop_();
          while(lcmbusy);
          EN=0;
          RS=1;
          RW=0;
          cmd=schar;
          _nop_();
          EN=1;
          _nop_();
          _nop_();
          EN=0;
          }

          void showstr(char x,y,char *string)
          {while(*string!=看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();