⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sg12864a.lst

📁 51单片机示例程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 158   1      uint i;
 159   1      while(ms--){
 160   2      for(i=0;i<125;i++);
 161   2      }
 162   1      }
 163          //检查LCD忙状态
 164          void LcdBusy(){
 165   1      DI=0;
 166   1      RW=1;
 167   1      E=1;
 168   1      _nop_();
 169   1      while(Busy);
 170   1      E=0;
 171   1      }
 172          //给LCD写命令
 173          void WriteCommand(uchar Command){
 174   1      LcdBusy();
 175   1      DI=0;
 176   1      RW=0;
 177   1      P0=Command;
 178   1      E=1;
 179   1      _nop_();
C51 COMPILER V7.20   SG12864A                                                              03/15/2007 15:07:40 PAGE 4   

 180   1      E=0;
 181   1      }
 182          //给LCD写数据
 183          void WriteData(uchar Data){
 184   1      LcdBusy();
 185   1      DI=1;
 186   1      RW=0;
 187   1      P0=Data;
 188   1      E=1;
 189   1      _nop_();
 190   1      E=0;
 191   1      }
 192          //LCD清屏
 193          void LcdClear(){
 194   1      uchar i,j,Y=0;
 195   1      CSL=1;
 196   1      CSR=1;
 197   1      for(j=0;j<8;j++){
 198   2      WriteCommand(Y|0xB8);
 199   2      WriteCommand(0x40);
 200   2      for(i=0;i<64;i++) WriteData(0x00);
 201   2      Y++;
 202   2      }
 203   1      }
 204          //LCD初始化
 205          void LcdInit(){
 206   1      RST=0;
 207   1      _nop_();_nop_();_nop_();
 208   1      RST=1;
 209   1      CSL=1;
 210   1      CSR=1;
 211   1      WriteCommand(0x3F);//开显示
 212   1      Delay(1);
 213   1      LcdClear();
 214   1      }
 215          //显示一幅图像
 216          void Pic(uchar *PicCode){
 217   1      uchar i,j,Y=0;
 218   1      for(j=0;j<8;j++){
 219   2      //左半屏写64个数据
 220   2      CSL=1;
 221   2      CSR=1;
 222   2      WriteCommand(Y|0xB8);
 223   2      WriteCommand(0x40);
 224   2      for(i=0;i<64;i++) WriteData(*PicCode++);
 225   2      //右半屏写64个数据
 226   2      CSL=0;
 227   2      CSR=1;
 228   2      WriteCommand(Y|0xB8);
 229   2      WriteCommand(0x40);
 230   2      for(i=0;i<64;i++) WriteData(*PicCode++);
 231   2      Y++;
 232   2      }
 233   1      }
 234          //显示汉字
 235          void Zh(uchar X,uchar Y,uchar Start,uchar Num){
 236   1      uchar i;
 237   1      uchar j;
 238   1      for(j=0;j<Num;j++){
 239   2        for(i=0;i<16;i++){
 240   3          if(X>128){
 241   4              Y+=2;
C51 COMPILER V7.20   SG12864A                                                              03/15/2007 15:07:40 PAGE 5   

 242   4              X=1;
 243   4              }
 244   3          if(X>64){
 245   4          CSL=0;
 246   4          CSR=1;
 247   4          }else{
 248   4          CSL=1;
 249   4          CSR=0;
 250   4          }
 251   3          WriteCommand((Y-1)*2|0xB8);
 252   3          WriteCommand((X-1)|0x40);
 253   3          WriteData(ZhCode[(Start+j)*32+i]);
 254   3          WriteCommand(((Y-1)*2+1)|0xB8);
 255   3          WriteCommand((X-1)|0x40);
 256   3          WriteData(ZhCode[(Start+j)*32+i+16]);
 257   3              X++;
 258   3        }
 259   2      }
 260   1      }
 261          //显示字符
 262          void Char(uchar X,uchar Y,uchar Start,uchar Num){
 263   1      uchar i;
 264   1      uchar j;
 265   1      for(j=0;j<Num;j++){
 266   2        for(i=0;i<8;i++){
 267   3          if(X>128){
 268   4              Y+=2;
 269   4              X=1;
 270   4              }
 271   3          if(X>64){
 272   4          CSL=0;
 273   4          CSR=1;
 274   4          }else{
 275   4          CSL=1;
 276   4          CSR=0;
 277   4          }
 278   3          WriteCommand((Y-1)*2|0xB8);
 279   3          WriteCommand((X-1)|0x40);
 280   3          WriteData(CharCode[(Start+j)*16+i]);
 281   3          WriteCommand(((Y-1)*2+1)|0xB8);
 282   3          WriteCommand((X-1)|0x40);
 283   3          WriteData(CharCode[(Start+j)*16+i+8]);
 284   3              X++;
 285   3        }
 286   2      }
 287   1      }
 288          //主函数
 289          main(){
 290   1      P0=0x00;
 291   1      LcdInit();//Lcd初始化
 292   1      while(1){
 293   2      Pic(PicCode);
 294   2      Delay(2000);
 295   2      LcdClear();
 296   2      Zh(17,1,0,6);//显示"中国开发板网"
 297   2      Char(1,2,0,16);//显示"www.kaifaban.com"
 298   2      Zh(1,3,6,2);//显示"业务"
 299   2      Char(33,3,16,12);//显示":03516612432"
 300   2      Zh(1,4,8,2);//显示"技术"
 301   2      Char(33,4,28,12);//显示":13834553012"
 302   2      Delay(2000);
 303   2      LcdClear();
C51 COMPILER V7.20   SG12864A                                                              03/15/2007 15:07:40 PAGE 6   

 304   2      }
 305   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    648    ----
   CONSTANT SIZE    =   1984    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      11
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -