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

📄 lcd.lst

📁 主机板测试机的液晶显示程序; 运行平台STC89C516;开发软件为KEIL 目标器件为19264
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.08   LCD                                                                   06/20/2008 14:10:17 PAGE 20  

1170   2                      {
1171   3                              bCS1=1;
1172   3                              bCS3=1; 
1173   3                              bCS2=0;                 
1174   3                      }
1175   2              } 
1176   1              else 
1177   1              {
1178   2                      bCS3=1;
1179   2                      bCS2=1;
1180   2                      bCS1=0;
1181   2              }
1182   1              x=x % 128;
1183   1              lcd_busy();
1184   1      
1185   1              bRWE=1;
1186   1      
1187   1              bDI=0;
1188   1              bRW=0;
1189   1              Lcd_Bus=0x40|x;
1190   1      
1191   1              nc(2);
1192   1              bRWE=0;
1193   1              nc(2);
1194   1      
1195   1              lcd_busy();
1196   1      
1197   1              bRWE=1;
1198   1              bDI=0;
1199   1              bRW=0;
1200   1              nc(2);
1201   1      
1202   1              Lcd_Bus=0xb8|y;
1203   1      
1204   1              
1205   1              bRWE=0;
1206   1              nc(2);
1207   1      
1208   1              Lcd_Bus=0xFF;
1209   1              nc(2);
1210   1      
1211   1      }
1212           void lw(unsigned char x,unsigned char y,unsigned char dd) 
1213          {
1214   1              set_xy(x,y);
1215   1              lcd_busy();
1216   1              bDI=1;
1217   1              bRW=0;
1218   1              Lcd_Bus=dd;
1219   1              bRWE=1;
1220   1              bRWE=0;
1221   1              Lcd_Bus=0xff;
1222   1      }
1223          void da(unsigned char x,unsigned char y,unsigned char n,unsigned char fb) 
1224          {
1225   1              unsigned char i,dd;
1226   1              n-=32;
1227   1              if (n>128) 
1228   1                      n=0;
1229   1              if (fb) 
1230   1                      dd=255; 
1231   1              else 
C51 COMPILER V7.08   LCD                                                                   06/20/2008 14:10:17 PAGE 21  

1232   1                      dd=0; 
1233   1              lw(x*8,y,dd);
1234   1              lw(x*8,y+1,dd);
1235   1              for (i=0;i<7;i++) 
1236   1              {
1237   2                      dd=asc[i+n*16];
1238   2                      if (fb) 
1239   2                              dd=255-dd; 
1240   2                      lw(x*8+i+1,y,dd);
1241   2                      dd=asc[i+n*16+8];
1242   2                      if (fb) 
1243   2                              dd=255-dd; 
1244   2                      lw(x*8+i+1,y+1,dd);
1245   2       }
1246   1      }
1247          void display_hz(unsigned char x,unsigned char y,unsigned char n,unsigned char fb) 
1248          {
1249   1              unsigned char i,dd;
1250   1              for (i=0;i<16;i++) 
1251   1              {
1252   2                      dd=Test_hz_Status[n][i];
1253   2                      if (fb) 
1254   2                              dd=255-dd;
1255   2                      lw(x*8+i,y,dd);
1256   2                      dd=Test_hz_Status[n][i+16];
1257   2                      if (fb) 
1258   2                              dd=255-dd;
1259   2                      lw(x*8+i,y+1,dd);
1260   2              }
1261   1      }
1262          void display_string_hz(unsigned char x,unsigned char y,unsigned char c_Start,unsigned char c_Stop ,unsigne
             -d char fb) 
1263          {
1264   1              unsigned char i;
1265   1              unsigned char j;
1266   1      
1267   1              j=0;
1268   1              for (i=c_Start;i<=c_Stop;i++) 
1269   1              {
1270   2                      display_hz(x+j,y,i,fb);
1271   2                      j+=2;
1272   2              }
1273   1      }
1274          void dh(unsigned char x,unsigned char y,unsigned char n,unsigned char fb) 
1275          {
1276   1              unsigned char i,dd;
1277   1              for (i=0;i<16;i++) 
1278   1              {
1279   2                      dd=hz[n][i];
1280   2                      if (fb) 
1281   2                              dd=255-dd;
1282   2                      lw(x*8+i,y,dd);
1283   2                      dd=hz[n][i+16];
1284   2                      if (fb) 
1285   2                              dd=255-dd;
1286   2                      lw(x*8+i,y+1,dd);
1287   2                      dd=hz[n][i+32];
1288   2                      if (fb) 
1289   2                              dd=255-dd;
1290   2                      lw(x*8+i,y+2,dd);
1291   2                      dd=hz[n][i+48];
1292   2                      if (fb) 
C51 COMPILER V7.08   LCD                                                                   06/20/2008 14:10:17 PAGE 22  

1293   2                              dd=255-dd;
1294   2                      lw(x*8+i,y+3,dd);
1295   2              }
1296   1      }
1297          //显示字符,fb==1:反白显示
1298          void da_big(unsigned char x,unsigned char y,unsigned char n,unsigned char fb)
1299          {
1300   1              unsigned char i,dd;
1301   1              n-=32;
1302   1              if (n>128) 
1303   1                      n=0;
1304   1              if (fb) 
1305   1                      dd=255; 
1306   1              else 
1307   1                      dd=0; 
1308   1              lw(x*8,y,dd);
1309   1              lw(x*8,y+1,dd);
1310   1              lw((x+1)*8,y,dd);
1311   1              lw((x+1)*8,y+1,dd);
1312   1              for (i=0;i<7;i++) 
1313   1              {
1314   2                      dd=asc[i+n*16];
1315   2                      if (fb) 
1316   2                              dd=255-dd; 
1317   2                      lw(x*16+i+1,y,dd);
1318   2                      dd=asc[i+n*16+8];
1319   2                      if (fb) 
1320   2                              dd=255-dd; 
1321   2                      lw(x*16+i+1,y+1,dd);
1322   2       }
1323   1      
1324   1      }
1325          
1326          void int_init(void)//MCU INT INIT
1327          {
1328   1              IT0=1;
1329   1              EX0=1;
1330   1              EA=1;
1331   1      }
1332          
1333          //***************************MCU PROT INIT***************************
1334          void port_init(void)//MCU PROT INIT
1335          {
1336   1              P0=0xFF;
1337   1              P1=0xFF;
1338   1              P2=0xFF;
1339   1              P3=0xFF;
1340   1      }
1341          //***************************MCU PROT INIT***************************
1342          //MCU INI INIT STOP
1343          //================================================================================================== 
1344          void incept_int0(void) interrupt 0 using 0
1345          {
1346   1              BYTE bSel;
1347   1              BYTE bStep;
1348   1              WORD iStep;
1349   1              BYTE i;
1350   1              BYTE iRow;
1351   1              BYTE iCol;
1352   1      
1353   1              BYTE *iDisplay;
1354   1      
C51 COMPILER V7.08   LCD                                                                   06/20/2008 14:10:17 PAGE 23  

1355   1              BYTE iDisplay_data[24];
1356   1      
1357   1              bSel=P3 & 0x38;
1358   1              bStep=Step_Bus;
1359   1      
1360   1              switch(bSel)
1361   1              {
1362   2                      case 0x00://P33:L P34:L P35:L 
1363   2                              {
1364   3                                      iStep=bStep;
1365   3                                      if(bStep9==1)
1366   3                                              iStep+=512;
1367   3                                      if((bStep8==1)&(iStep<512))
1368   3                                              iStep+=256;
1369   3      
1370   3                                      P3=0x0F;
1371   3                                      
1372   3                                      iDisplay=Test_content[iStep];
1373   3                                      display_string(0,4,24,0,iDisplay);
1374   3                                      P3=0xFF;
1375   3                              }
1376   2                              break;
1377   2                      case 0x08://P33:H P34:L P35:L 
1378   2                              //Select Product
1379   2                              {
1380   3                                      bStep=bStep & 0x0F;
1381   3                                      P3=0x0F;
1382   3                                      //Clr_Screen(0xFF);
1383   3                                      if(bStep<9)
1384   3                                      {
1385   4                                              for(i=0;i<9;i++)
1386   4                                              {
1387   5                                                      iRow=(i/3)*2;
1388   5                                                      iCol=(i%3)*8;
1389   5                                                      iDisplay=product_select_name[i];
1390   5                                                      if(i==bStep)
1391   5                                                              display_string(iCol,iRow,8,1,iDisplay);
1392   5                                                      else
1393   5                                                              display_string(iCol,iRow,8,0,iDisplay);
1394   5                                              }
1395   4                                              for(i=0;i<24;i++)
1396   4                                                      iDisplay_data[i]=' ';
1397   4                                              for(i=9;i<11;i++)
1398   4                                              {
1399   5                                                      iRow=(i/3)*2;
1400   5                                                      iCol=(i%3)*8;
1401   5                                                      display_string(iCol,iRow,8,0,iDisplay_data);
1402   5                                              }
1403   4                                              
1404   4                                      }
1405   3                                      else
1406   3                                      {
1407   4                                              for(i=9;i<Max_Product;i++)
1408   4                                              {
1409   5                                                      iRow=i % 9;
1410   5                                                      iRow=(iRow/3)*2;
1411   5                                                      iCol=i % 9;
1412   5                                                      iCol=(iCol%3)*8;
1413   5                                                      iDisplay=product_select_name[i];
1414   5                                                      if(i==bStep)
1415   5                                                              display_string(iCol,iRow,8,1,iDisplay);
1416   5                                                      else
C51 COMPILER V7.08   LCD                                                                   06/20/2008 14:10:17 PAGE 24  

1417   5                                                              display_string(iCol,iRow,8,0,iDisplay);
1418   5                                              }
1419   4                                              for(i=0;i<24;i++)
1420   4                                                      iDisplay_data[i]=' ';
1421   4                                              
1422   4                                              for(i=Max_Product % 9;i<11;i++)
1423   4                                              {
1424   5                                                      iRow=(i/3)*2;
1425   5                                                      iCol=(i%3)*8;
1426   5                                                      display_string(iCol,iRow,8,0,iDisplay_data);
1427   5                                              }
1428   4                                              
1429   4                                      }
1430   3      
1431   3                                      display_string_hz(16,6,6,9,1);
1432   3                                      P3=0xFF;
1433   3                              }
1434   2                              break;
1435   2                      case 0x18:
1436   2                              {
1437   3                                      P3=0x0F;
1438   3      
1439   3                                      bSel=bStep & 0x03;
1440   3                                      
1441   3                                      if(bSel==1)
1442   3                                      {
1443   4                                              Clr_x_y_Screen(16,0,8,0xFF);
1444   4                                              Clr_x_y_Screen(16,1,8,0xFF);
1445   4                                              Clr_x_y_Screen(16,2,8,0xFF);
1446   4                                              Clr_x_y_Screen(16,3,8,0xFF);
1447   4                                              dh(18,0,0,1);
1448   4                                              dh(20,0,1,1);
1449   4                                      }
1450   3                                      else
1451   3                                      {
1452   4                                              Clr_x_y_Screen(16,0,8,0xFF);
1453   4                                              Clr_x_y_Screen(16,1,8,0xFF);
1454   4                                              Clr_x_y_Screen(16,2,8,0xFF);
1455   4                                              Clr_x_y_Screen(16,3,8,0xFF);
1456   4                                              dh(18,0,2,1);
1457   4                                              dh(20,0,3,1);
1458   4                                      }
1459   3                                      P3=0xFF;
1460   3                       

⌨️ 快捷键说明

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