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

📄 showfun.lst

📁 直流电机的测速和液晶中文的显示
💻 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 V6.12  SHOWFUN                                                                06/05/2007 15:43:31 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 V6.12  SHOWFUN                                                                06/05/2007 15:43:31 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 V6.12  SHOWFUN                                                                06/05/2007 15:43:31 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 V6.12  SHOWFUN                                                                06/05/2007 15:43:31 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 + -