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

📄 showfun.lst

📁 c51 直流电机。里面有KEIL编译的源代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
 183          "时",0x00,0x80,0xF0,0x80,0x9F,0xE0,0x90,0x80,0x94,0x80,0xF2,0x80,0x92,0x80,0x90,0x80,0xF0,0x80,0x90,0x80,0
             -x03,0x80,0x00,0x00,
 184          "针",0x41,0x00,0x41,0x00,0x79,0x00,0x81,0x00,0xF7,0xE0,0x21,0x00,0xF9,0x00,0x21,0x00,0x29,0x00,0x31,0x00,0
             -x21,0x00,0x00,0x00,
 185          "旋",0x42,0x00,0x23,0xE0,0xF4,0x00,0x4F,0xE0,0x71,0x20,0x55,0x40,0x55,0x00,0x55,0xE0,0x55,0x00,0xB7,0x00,0
             -x89,0xE0,0x00,0x00,
 186          "转",0x21,0x00,0xF9,0x00,0x47,0xE0,0x61,0x00,0xA7,0xE0,0xFA,0x00,0x23,0xC0,0x38,0x40,0xE0,0x80,0x23,0x00,0
             -x20,0x80,0x00,0x00,
 187          "逆",0x84,0x40,0x42,0x80,0x5F,0xE0,0x01,0x00,0xC9,0x40,0x49,0x40,0x4F,0xC0,0x42,0x00,0x44,0x00,0xA8,0x00,0
             -x9F,0xE0,0x00,0x00,
 188          
 189          //"旋",0x42,0x00,0x23,0xE0,0xF4,0x00,0x4F,0xE0,0x71,0x20,0x55,0x40,0x55,0x00,0x55,0xE0,0x55,0x00,0xB7,0x00
             -,0x89,0xE0,0x00,0x00,
 190          //"转",0x21,0x00,0xF9,0x00,0x47,0xE0,0x61,0x00,0xA7,0xE0,0xFA,0x00,0x23,0xC0,0x38,0x40,0xE0,0x80,0x23,0x00
             -,0x20,0x80,0x00,0x00,
 191          "方",0x04,0x00,0x02,0x40,0xFF,0xE0,0x08,0x00,0x0F,0x80,0x08,0x80,0x08,0x80,0x10,0x80,0x10,0x80,0x20,0x80,0
C51 COMPILER V8.02   SHOWFUN                                                               04/01/2008 22:12:08 PAGE 5   

             -xC7,0x00,0x00,0x00,
 192          "向",0x04,0x00,0x08,0x40,0x7F,0xE0,0x40,0x40,0x5F,0x40,0x51,0x40,0x51,0x40,0x5F,0x40,0x40,0x40,0x40,0x40,0
             -x41,0xC0,0x00,0x00,
 193          
 194          //"时",
 195          //"针",
 196          };
 197          
 198          uchar gCurRow,gCurCol; // 图形当前行、列存储,行高16点,列宽8点
 199          uchar tCurRow,tCurCol; // 文本当前行、列存储,行高8点 ,列宽8点
 200          uchar ShowModeSW; // 当前显示模式
 201          uint txthome,grhome;
 202          
 203          /******************************************************************************/
 204          uchar fnGetRow();
 205          uchar fnGetCol();
 206          uchar fnST01(); // 状态位STA1,STA0判断(读写指令和读写数据)
 207          uchar fnST2(); // 状态位ST2判断(数据自动读状态)
 208          uchar fnST3(); // 状态位ST3判断(数据自动写状态)
 209          uchar fnST6(); // 状态位ST6判断(屏读/屏拷贝状态)
 210          uchar fnPR1(uchar uCmd,uchar uPar1,uchar uPar2); // 写双参数的指令
 211          uchar fnPR11(uchar uCmd,uchar uPar1); // 写单参数的指令
 212          uchar fnPR12(uchar uCmd); // 写无参数的指令
 213          uchar fnPR13(uchar uData); // 写数据
 214          uchar fnPR2(); // 读数据
 215          void fnSetPos(uchar urow, uchar ucol);  // 设置当前地址
 216          void cursor(uchar uRow, uchar uCol);    //设置当前显示行、列
 217          void at(unsigned char x,unsigned char y);/*设定文本x,y值*/
 218          void cls();      // 清屏
 219          char fnLCMInit(); // LCM 初始化
 220          void charout(uchar *str); //ASCII(8*8) 显示函数
 221          uchar dprintf(uchar x,uchar y,char *fmt);// ASCII(8*16) 及 汉字(16*16) 显示函数
 222          void OutToLCD(uchar Dat,uchar x,uchar y);//显示辅助函数 
 223          
 224          void SetShowMode(uchar newShowModeSW);  
 225          void Line( unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, bit Mode);
 226          void Pixel(unsigned char PointX,unsigned char PointY, bit Mode);
 227          
 228          uchar fnGetRow(void)
 229          {
 230   1              return gCurRow;
 231   1      }
 232          
 233          uchar fnGetCol(void)
 234          {
 235   1              return gCurCol;
 236   1      }
 237          
 238          uchar fnST01(void) // 状态位STA1,STA0判断(读写指令和读写数据)
 239          {
 240   1              uchar i;
 241   1              
 242   1              for(i=10;i>0;i--)
 243   1              {
 244   2                      if((LCMCW & 0x03) == 0x03)
 245   2                      break;
 246   2              }
 247   1              return i; // 若返回零,说明错误
 248   1      }
 249          
 250          uchar fnST2(void) // 状态位ST2判断(数据自动读状态)
 251          {
C51 COMPILER V8.02   SHOWFUN                                                               04/01/2008 22:12:08 PAGE 6   

 252   1              uchar i;
 253   1              
 254   1              for(i=10;i>0;i--)
 255   1              {
 256   2                      if((LCMCW & 0x04) == 0x04)
 257   2                      break;
 258   2              }
 259   1              return i; // 若返回零,说明错误
 260   1      }
 261          
 262          uchar fnST3(void) // 状态位ST3判断(数据自动写状态)
 263          {
 264   1              uchar i;
 265   1              
 266   1              for(i=10;i>0;i--)
 267   1              {
 268   2                      if((LCMCW & 0x08) == 0x08)
 269   2                      break;
 270   2              }
 271   1              return i; // 若返回零,说明错误
 272   1      }
 273          
 274          uchar fnST6(void) // 状态位ST6判断(屏读/屏拷贝状态)
 275          {
 276   1              uchar i;
 277   1              
 278   1              for(i=10;i>0;i--)
 279   1              {
 280   2                      if((LCMCW & 0x40) == 0x40)
 281   2                      break;
 282   2              }
 283   1              return i; // 若返回零,说明错误
 284   1      }
 285          
 286          uchar fnPR1(uchar uCmd,uchar uPar1,uchar uPar2) // 写双参数的指令
 287          {
 288   1              if(fnST01() == 0)
 289   1              return 1;
 290   1              LCMDW = uPar1;
 291   1              if(fnST01() == 0)
 292   1              return 2;
 293   1              LCMDW = uPar2;
 294   1              if(fnST01() == 0)
 295   1              return 3;
 296   1              LCMCW = uCmd;
 297   1              return 0; // 返回0成功
 298   1      }
 299          
 300          uchar fnPR11(uchar uCmd,uchar uPar1) // 写单参数的指令
 301          {
 302   1              if(fnST01() == 0)
 303   1              return 1;
 304   1              LCMDW = uPar1;
 305   1              if(fnST01() == 0)
 306   1              return 2;
 307   1              LCMCW = uCmd;
 308   1              return 0; // 返回0成功
 309   1      }
 310          
 311          uchar fnPR12(uchar uCmd) // 写无参数的指令
 312          {
 313   1              if(fnST01() == 0)
C51 COMPILER V8.02   SHOWFUN                                                               04/01/2008 22:12:08 PAGE 7   

 314   1              return 1;
 315   1              LCMCW = uCmd;
 316   1              return 0; // 返回0成功
 317   1      }
 318          
 319          uchar fnPR13(uchar uData) // 写数据
 320          {
 321   1              if(fnST3() == 0)
 322   1              return 1;
 323   1              LCMDW = uData;
 324   1              return 0; // 返回0成功
 325   1      }
 326          
 327          uchar fnPR2(void) // 读数据
 328          {
 329   1              if(fnST01() == 0)
 330   1              return 1;
 331   1              return LCMDW;
 332   1      }
 333          
 334          
 335          void fnSetPos(uchar urow, uchar ucol)   //设置当前地址
 336          {
 337   1              uint iPos;
 338   1              
 339   1              iPos = urow * 20 + ucol;
 340   1              fnPR1(LC_ADD_POS,iPos & 0xFF,iPos / 256);
 341   1              gCurRow = urow;
 342   1              gCurCol = ucol;
 343   1      }
 344          
 345          void cursor(uchar uRow, uchar uCol)     //设置当前显示行、列
 346          {
 347   1              fnSetPos(uRow * 16, uCol);
 348   1      }
 349          void at(unsigned char x,unsigned char y)/*设定文本x,y值*/
 350          {       
 351   1              uint iPos; //地址
 352   1              
 353   1              iPos = x  + y* 20;
 354   1              fnPR1(LC_ADD_POS,iPos&0xff,iPos/256);
 355   1              tCurRow = x;
 356   1              tCurCol = y;
 357   1      }
 358          
 359          // 清屏
 360          void cls(void)
 361          {
 362   1              uint i;
 363   1              
 364   1              fnPR1(LC_ADD_POS,0x00,0x00); // 置地址指针
 365   1              fnPR12(LC_AUT_WR); // 自动写
 366   1              for(i=0;i<0x2000;i++)
 367   1              {
 368   2                      fnST3();
 369   2                      fnPR13(0x00); // 写数据
 370   2              }
 371   1              fnPR12(LC_AUT_OVR); // 自动写结束
 372   1              fnPR1(LC_ADD_POS,0x00,0x00); // 重置地址指针
 373   1              gCurRow = 0; // 置地址指针存储变量
 374   1              gCurCol = 0;
 375   1      }
C51 COMPILER V8.02   SHOWFUN                                                               04/01/2008 22:12:08 PAGE 8   

 376          
 377          // LCM 初始化
 378          char fnLCMInit(void)
 379          {
 380   1              reset=0;
 381   1              reset=1;
 382   1              fnPR1(LC_TXT_STP,0x00,0x00); // 文本显示区首地址
 383   1              fnPR1(LC_TXT_WID,0x14,0x00); // 文本显示区宽度
 384   1              fnPR1(LC_GRH_STP,0x00,0x00); // 图形显示区首地址
 385   1              fnPR1(LC_GRH_WID,0x14,0x00); // 图形显示区宽度
 386   1              fnPR11(LC_CGR_POS,CGRAMSTART >> 11);
 387   1              fnPR12(LC_CUR_SHP | 0x01); // 光标形状
 388   1              fnPR12(LC_MOD_OR); // 显示方式设置
 389   1              fnPR12(LC_DIS_SW |0x08);
 390   1              grhome = GRSTART;
 391   1          txthome = TXTSTART;
 392   1      
 393   1              return 0;
 394   1      }
 395          void charout(uchar *str)
 396          {
 397   1          uchar ch,len,i,uRow,uCol ;
 398   1          len=strlen(str);
 399   1          i=0;
 400   1          uRow = tCurRow;
 401   1          uCol = tCurRow;
 402   1          at(uCol,uRow);
 403   1          while(i<len)
 404   1          {
 405   2              ch=str[i]-0x20;

⌨️ 快捷键说明

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