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

📄 main.lst

📁 本代码实现的是12864图形LCD模块
💻 LST
📖 第 1 页 / 共 2 页
字号:
 200   1              Line(127,63,0,63);                              //绘制一条直线
 201   1              Line(10,12,10,42);
 202   1              while(Exit_flag)
 203   1              {
 204   2                      Key = Key_Get();
 205   2                      if(Key!=0)
 206   2                              Exit_flag = 0;                  //任意键按下时,退出返回
 207   2                      KeyScan_Service();
 208   2              }
 209   1      }
 210          //绘矩形菜单项响应函数
 211          void Show_RectanglTest(void)
 212          {
 213   1              unsigned int Key=0;
 214   1              unsigned Exit_flag=1;
 215   1              ClrScreen(0);                                   //清屏
 216   1              SetPaintMode(0,1);                              //设置绘图模式及前景色
 217   1              Rectangle(12,12,42,42,1);               //矩形填充
 218   1              Rectangle(52,12,82,42,0);               //绘制矩形框
 219   1              while(Exit_flag)
 220   1              {
 221   2                      Key = Key_Get();
 222   2                      if(Key!=0)
 223   2                              Exit_flag = 0;                  //任意键按下时,退出返回
 224   2                      KeyScan_Service();
 225   2              }
 226   1      }
 227          //帮助菜单项响应函数
 228          void Show_HelpTest(void)
 229          {
 230   1              unsigned int Key=0;
 231   1              unsigned Exit_flag=1;
 232   1              ClrScreen(0);                                   //清屏
 233   1              SetPaintMode(0,1);                              //设置绘图模式及前景色
 234   1              FontSet(1,1);                                   //设置字体类形,字符色为1
 235   1              PutString(5,10,"Wellcome to MzDesign!!");       //显示字符串
 236   1              PutString(5,50,"www.mzdesign.com.cn");
 237   1              Line(4,60,120,60);                              //绘制一条直线
 238   1              while(Exit_flag)
 239   1              {
 240   2                      Key = Key_Get();
 241   2                      if(Key!=0)
C51 COMPILER V8.08   MAIN                                                                  11/02/2007 15:16:55 PAGE 5   

 242   2                              Exit_flag = 0;                  //任意键按下时,退出返回
 243   2                      KeyScan_Service();
 244   2              }
 245   1      }
 246          //字符演示菜单项响应函数
 247          void CharTest_Menu(void)
 248          {
 249   1              //add your code here
 250   1              unsigned char uiKey=0;
 251   1              //uiKey用于存放扫描的键值状态
 252   1              unsigned char Item_Num,Update_Flag,Enter_Flag=0;
 253   1              //Item_Num:当前菜单界面当中共有几项菜单项,刷新时使用
 254   1              //Update_Flag:菜单界面刷新标识
 255   1              //Enter_Flag:确定键按下标识~~
 256   1              unsigned char PageItem_Num;
 257   1              //PageItem_Num:每页(全显示屏内)可以显示多少个菜单项
 258   1              unsigned char First_Index=0,Active_Index=0,Temp_Index=0;
 259   1              //First_Index:当前处在显示屏当中的最前面的菜单项序号
 260   1              //Active_Index:当前指向的菜单项,即当前活动的菜单项
 261   1              //Temp_Index:中间变量
 262   1              unsigned char Exit_flag = 1;
 263   1              
 264   1              Item_Num = GetMLNum(Menu_List02);                       //获取要显示的菜单的菜单项个数
 265   1              PageItem_Num = GetMLiNum_Page((unsigned char **)Menu_List02);   //获取要显示的菜单的页数
 266   1              Initial_Menu((unsigned char**)Menu_List02);
 267   1              while(1)
 268   1              {
 269   2                      
 270   2                      uiKey = Key_Get();                                      //获取键值
 271   2                      if(uiKey)                                                       //如有键按下则响应
 272   2                      {
 273   3                              switch(uiKey)                                   //判断键值进行分支控制界面
 274   3                              {
 275   4                                      case 3:                                         //确定键按下
 276   4                                              Enter_Flag=1;                   //enter flag set
 277   4                                              break;
 278   4                                      case 2:                                         //down  向下键按下
 279   4                                              if(Active_Index<Item_Num)       
 280   4                                              {
 281   5                                                      Active_Index++;
 282   5                                                      if(Temp_Index<PageItem_Num-1) Temp_Index++;
 283   5                                                      else if(First_Index<Item_Num) First_Index++;
 284   5                                                      Update_Flag = 1;
 285   5                                              }
 286   4                                              break;
 287   4                                      case 1:                                         //up  向上键按下
 288   4                                              if(Active_Index>0)
 289   4                                              {
 290   5                                                      Active_Index--;
 291   5                                                      if(Temp_Index>0) Temp_Index--;
 292   5                                                      else if(First_Index>0) First_Index--;
 293   5                                                      Update_Flag = 1;
 294   5                                              }
 295   4                                              break;
 296   4                                      default:break;
 297   4                              }
 298   3                      }
 299   2                      if(Update_Flag)                                         //Update_Flag为1时刷新菜单
 300   2                      {
 301   3                              UpDate_Menu(First_Index,Active_Index,(unsigned char**)Menu_List02);
 302   3                              Update_Flag=0;
 303   3                      }
C51 COMPILER V8.08   MAIN                                                                  11/02/2007 15:16:55 PAGE 6   

 304   2                      if(Enter_Flag)                                          //有确定键按下时,则进入相应的功能函数
 305   2                      {
 306   3                              Enter_Flag = 0;
 307   3                              switch(Active_Index)
 308   3                              {
 309   4                                      case 0:                                         //这里仅定义了可以响应第一项菜单
 310   4                                              Show_CharTest();
 311   4                                              Redraw_Menu(First_Index,Active_Index,(unsigned char**)Menu_List02);
 312   4                                              Update_Flag = 1;
 313   4                                              break; 
 314   4                                      case 1: 
 315   4                                              Show_StringTest();
 316   4                                              Redraw_Menu(First_Index,Active_Index,(unsigned char**)Menu_List02);
 317   4                                              Update_Flag = 1;
 318   4                                              break;                          //如感兴趣可以自己加进去玩玩
 319   4                                      case 2: 
 320   4                                              Show_ChTest();
 321   4                                              Redraw_Menu(First_Index,Active_Index,(unsigned char**)Menu_List02);
 322   4                                              Update_Flag = 1;
 323   4                                              break;
 324   4                                      case 3: Exit_flag = 0;break;    
 325   4                                      default:break;
 326   4                              } 
 327   3                      }
 328   2                      KeyScan_Service();                                      //键盘扫描的服务程序,最好在1KHz的定时/时基中断调用
 329   2              }
 330   1      }
 331          //二级菜单中,单个西文字符菜单项响应函数
 332          void Show_CharTest(void)
 333          {
 334   1              unsigned int Key=0;
 335   1              unsigned Exit_flag=1;
 336   1              ClrScreen(0);                                   //清屏
 337   1              SetPaintMode(0,1);                              //设置绘图模式及前景色
 338   1              Rectangle(64,0,127,63,1);               //半边绘制填充的矩形
 339   1              FontSet(1,1);                                   //设置字体类形,字符色为1
 340   1              PutChar(10,10,'A');                     //显示字符
 341   1              PutChar(10,40,'8');                     //显示字符
 342   1              FontSet(1,0);                                   //设置字体类形,字符色为0
 343   1              PutChar(80,10,'A');                     //显示字符
 344   1              PutChar(80,40,'8');                     //显示字符
 345   1              while(Exit_flag)
 346   1              {
 347   2                      Key = Key_Get();
 348   2                      if(Key!=0)
 349   2                              Exit_flag = 0;                  //任意键按下时,退出返回
 350   2                      KeyScan_Service();
 351   2              }
 352   1      }
 353          //二级菜单中,西文字符串菜单项响应函数
 354          void Show_StringTest(void)
 355          {
 356   1              unsigned int Key=0;
 357   1              unsigned Exit_flag=1;
 358   1              ClrScreen(0);                                   //清屏
 359   1              SetPaintMode(0,1);                              //设置绘图模式及前景色
 360   1              FontSet(1,1);                                   //设置字体类形,字符色为1
 361   1              PutString(5,10,"Wellcome to MzDesign!!");       //显示字符串
 362   1              PutString(5,50,"www.mzdesign.com.cn");
 363   1              Line(4,60,120,60);                              //绘制一条直线
 364   1              while(Exit_flag)
 365   1              {
C51 COMPILER V8.08   MAIN                                                                  11/02/2007 15:16:55 PAGE 7   

 366   2                      Key = Key_Get();
 367   2                      if(Key!=0)
 368   2                              Exit_flag = 0;                  //任意键按下时,退出返回
 369   2                      KeyScan_Service();
 370   2              }
 371   1      }
 372          //二级菜单中,中文字符菜单项响应函数
 373          void Show_ChTest(void)
 374          {
 375   1              unsigned int Key=0;
 376   1              unsigned Exit_flag=1;
 377   1              ClrScreen(0);                                   //清屏
 378   1              SetPaintMode(0,1);                              //设置绘图模式及前景色
 379   1              FontSet(2,1);                                   //设置字体类形,字符色为1
 380   1              PutChar(10,20,0);                               //显示汉字  铭
 381   1              PutChar(30,20,1);                               //显示汉字  正
 382   1              PutChar(50,20,2);                               //显示汉字  同
 383   1              PutChar(70,20,3);                               //显示汉字  创
 384   1              while(Exit_flag)
 385   1              {
 386   2                      Key = Key_Get();
 387   2                      if(Key!=0)
 388   2                              Exit_flag = 0;                  //任意键按下时,退出返回
 389   2                      KeyScan_Service();
 390   2              }
 391   1      }
 392          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1142    ----
   CONSTANT SIZE    =     43    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      45
   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 + -