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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > LCD12232串行顯示C51程序

          LCD12232串行顯示C51程序

          作者: 時間:2016-11-29 來源:網(wǎng)絡(luò) 收藏

          這個程序包含三個方面的知識:
          1。4*4按鍵的部份--完成(0~9)數(shù)字鍵,功能鍵,字母鍵的輸入;按鍵抬起后才能作用;
          2。LCD12232的顯示部份;串行顯示,只用兩根線,顯示中英文字母及數(shù)字;
          3。TTL系列芯片與CMOS系列芯片的知識,及做庫;這部份還沒完成;
          我想第三步完成了,MM還符合一名合格的大學(xué)畢業(yè)生的;
          哈!直接上代碼了,下載地址:http://www.51hei.com/f/12232ch.rar
          #include
          #define uint unsigned int
          #define uchar unsigned char
          sbit SID = P0^5;
          sbit SCK = P0^6;
          sbit BUZ = P0^7;

          sbit A0 = P3^0;
          sbit A1 = P3^1;
          sbit A2 = P3^2;
          sbit A3 = P3^3;
          sbit A4 = P3^4;
          sbit A5 = P3^5;
          sbit B0 = P0^0;
          sbit B7 = P1^7;
          sbit B6 = P1^6;
          sbit B5 = P1^5;
          sbit B4 = P1^4;
          sbit B3 = P1^3;
          sbit B2 = P1^2;
          uchar Key_Select,Key_Mode;
          uchar code Disp_1[]={"浙江師范大學(xué)行"};
          uchar code Disp_2[]={"知學(xué)院電子信息"};
          uchar code Disp_3[]={"工程08級毛夢超"};
          uchar code Disp_4[]={"的畢業(yè)設(shè)計--集"};
          uchar code Disp_5[]={"成電路測試系統(tǒng)!"};
          uchar code Disp_6[]={"指導(dǎo)老師:丁宇"};
          uchar code Disp_7[]={"請插入芯片后按"};
          uchar code Disp_8[]={"確認(rèn)鍵進(jìn)行測試!"};
          uchar code Disp_9[]={"請選擇芯片類型:"};
          uchar code Disp_10[]={"1-CMOS; 2-TTL;"};
          uchar code Disp_11[]={"請輸入CMOS系列"};
          uchar code Disp_12[]={"請輸入TTL 系列"};
          uchar code Disp_13[]={"IC型號:"};
          //-----------------Delay_*2us-------------------
          void Delay_us(uchar x2us)
          {
          while(--x2us);
          }

          void Delay_ms(uint xms)
          {
          uint i,j;
          for(i=xms;i>0;i--)
          for(j=122;j>0;j--)
          {}
          }
          //-------------4KHz-------------------
          void Buz(void)
          {
          uint i;
          for(i=200;i>0;i--)
          {
          BUZ=1;
          Delay_us(120);
          BUZ=0;
          }
          BUZ=0;
          }
          //-------------LCD Part--------------------
          //LCD顯示部份之寫地址
          //-----------------------------------------
          void Lcd_Wr_Command(uchar com_data)
          {
          uchar i;
          uchar i_data;
          i_data=0xf8;
          SCK=0;
          for(i=0;i<8;i++)
          {
          SID=(bit)(i_data&0x80);
          SCK=0;
          SCK=1;
          i_data=i_data<<1;
          }
          i_data=com_data;
          i_data&=0xf0;
          for(i=0;i<8;i++)
          {
          SID=(bit)(i_data&0x80);
          SCK=0;
          SCK=1;
          i_data=i_data<<1;
          }
          i_data=com_data;
          i_data<<=4;
          for(i=0;i<8;i++)
          {
          SID=(bit)(i_data&0x80);
          SCK=0;
          SCK=1;
          i_data=i_data<<1;
          }
          Delay_ms(1);
          }
          //-------------LCD Part--------------------
          //LCD顯示部份之寫數(shù)據(jù)
          //-----------------------------------------
          void Lcd_Wr_Data(uchar com_data)
          {
          uchar i;
          uchar i_data;
          i_data=0xfa;

          for(i=0;i<8;i++)
          {
          SID=(bit)(i_data&0x80);
          SCK=0;
          SCK=1;
          i_data=i_data<<1;
          }
          i_data=com_data;
          i_data&=0xf0;
          for(i=0;i<8;i++)
          {
          SID=(bit)(i_data&0x80);
          SCK=0;
          SCK=1;
          i_data=i_data<<1;
          }
          i_data=com_data;
          i_data<<=4;
          for(i=0;i<8;i++)
          {
          SID=(bit)(i_data&0x80);
          SCK=0;
          SCK=1;
          i_data=i_data<<1;
          }
          Delay_ms(1);
          }
          //-------------LCD Part--------------------
          //LCD顯示部份之初始化
          //-----------------------------------------
          void Lcd_init()
          {
          Delay_ms(100);
          Lcd_Wr_Command(0x30);
          Delay_ms(5);
          Lcd_Wr_Command(0x02);
          Delay_ms(5);
          Lcd_Wr_Command(0x06);
          Delay_ms(5);
          Lcd_Wr_Command(0x0c);
          Delay_ms(5);
          Lcd_Wr_Command(0x01);
          Delay_ms(5);
          //Lcd_Wr_Command(0x80);
          }
          void Posit(uchar x,uchar y,uchar *String)
          {
          uchar Posit,Addr;
          if(y==1)
          Addr=0x80;
          if(y==2)
          Addr=0x90;
          Posit=Addr+x;
          Lcd_Wr_Command(Posit);
          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); })();