色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于MSC51系列的LCD1602通用程序

          基于MSC51系列的LCD1602通用程序

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

          #define PORT P2
          sbit RS = P3^5;//1602的數(shù)據(jù)/指令選擇控制線
          sbit RW = P3^6;//1602的讀寫(xiě)控制線
          sbit EN = P3^7;//1602的使能控制線

          本文引用地址:http://cafeforensic.com/article/201611/316789.htm

          unsigned char code table[] = "LCD1602 check ok"; //要顯示的內(nèi)容1放入數(shù)組tablel
          unsigned char code table1[] = "study up"; //要顯示的內(nèi)容2放入數(shù)組table1


          void DelayXms(unsigned int time)//延時(shí)程序,大約1ms
          {
          unsigned char i;
          while(time--)
          {
          for(i = 0;i < 112;i++)//11.0592MHz晶振
          {};
          }
          }
          void LCDWriteCom(unsigned char com) //1602寫(xiě)命令函數(shù)
          {
          RS = 0; //選擇指令寄存器
          RW = 0; //選擇寫(xiě)
          PORT = com; //把命令字送入PORT
          DelayXms(5); //延時(shí)一小會(huì)兒,讓1602準(zhǔn)備接收數(shù)據(jù)
          EN = 1; //使能線電平變化,命令送入1602的8位數(shù)據(jù)口
          EN = 0;
          }
          void LCDWriteDat(unsigned char dat) //1602寫(xiě)數(shù)據(jù)函數(shù)
          {
          RS = 1; //選擇數(shù)據(jù)寄存器
          RW = 0; //選擇寫(xiě)
          PORT = dat; //把要顯示的數(shù)據(jù)送入PORT
          DelayXms(5); //延時(shí)一小會(huì)兒,讓1602準(zhǔn)備接收數(shù)據(jù)
          EN = 1; //使能線電平變化,數(shù)據(jù)送入1602的8位數(shù)據(jù)口
          EN = 0;
          }
          void LCDInit() //1602初始化函數(shù)
          {
          LCDWriteCom(0x38); //8位數(shù)據(jù),雙列,5*7字形
          LCDWriteCom(0x0c); //開(kāi)啟顯示屏,關(guān)光標(biāo),光標(biāo)不閃爍
          LCDWriteCom(0x06); //顯示地址遞增,即寫(xiě)一個(gè)數(shù)據(jù)后,顯示位置右移一位
          LCDWriteCom(0x01); //清屏
          }
          void main() //主函數(shù)
          {
          unsigned char n,m = 0;
          LCDInit(); //液晶初始化
          LCDWriteCom(0x80); //顯示地址設(shè)為80H(即00H,)上排第一位
          for(m = 0;m < 16;m++) //將table[]中的數(shù)據(jù)依次寫(xiě)入1602顯示
          {
          LCDWriteDat(table[m]);
          DelayXms(200);
          }
          LCDWriteCom(0x80+0x44); //重新設(shè)定顯示地址為0xc4,即下排第5位
          for(n = 0;n<8;n++) //將table1[]中的數(shù)據(jù)依次寫(xiě)入1602顯示
          {
          LCDWriteDat(table1[n]);
          DelayXms(200);
          }
          while(1); //動(dòng)態(tài)停機(jī)
          }



          關(guān)鍵詞: MSC51系列LCD1602通用程

          評(píng)論


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

          關(guān)閉