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

📄 main.lst

📁 这是一个产品的开发项目(基本程序)。有按键计算
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   MAIN                                                                  01/03/2009 21:23:34 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SRC\main.c BROWSE DEBUG OBJECTEXTEND PRINT(.\main.lst) OBJECT(main.obj)

line level    source

   1          //***********************************************************
   2          //*标题:自制板实验 - ZZ004_12864LCD(带汉字库)程序优化
   3          //*硬件:自制板
   4          //*文件:ZZ004.c
   5          //*日期:2005-12-29
   6          //*版本:1.0
   7          //*作者:lluct
   8          //*邮箱:lluct@hotmail.com
   9          //*********************************************************
  10          //*描述:
  11          //*             显示画面和汉字
  12          //*        
  13          //*********************************************************
  14          //*【版权】 lluct, GPL
  15          //*【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!
  16          //*********************************************************
  17          #include "p89v51rx2.h"
  18          #include <intrins.h>
  19          
  20          
  21          
  22          
  23          //-----------------------------------------------
  24          sbit    KEYADD   = P1^7;                                                //按键"+"
  25          #define _ADD_    0x0080
  26          sbit    KEYRIGHT = P1^6;                                                //按键"右"
  27          #define _RIGHT_  0x0040
  28          sbit    KEYLEFT  = P1^5;                                                //按键"左"
  29          #define _LEFT_   0x0020
  30          sbit    KEYDOWN  = P1^4;                                                //按键"下"
  31          #define _DOWN_   0x0010
  32          sbit    KEYUP    = P1^3;                                                //按键"上"
  33          #define _UP_     0x0008
  34          sbit    KEYMODE  = P1^2;                                                //按键"MODE"
  35          #define _MODE_   0x0004
  36          sbit    KEYYB    = P1^1;                                                //按键"预备"
  37          #define _YB_     0x0002
  38          sbit    KEYONOFF = P1^0;                                                //按键"开/关"
  39          #define _ONOFF_  0x0001
  40          
  41          
  42          sbit    START  = P2^2;                                  //电机平台"启/停"控制
  43          #define _START_  0x0400
  44          sbit    KEYMINUS = P2^0;                                        //按键"-"
  45          #define _MINUS_  0x0100
  46          
  47          sbit    LS     = P2^1;                                          //限位控制
  48          #define _LS_     0x0200
  49          
  50          sbit    Pluse = P2^4;                                       //电机脉冲
  51          sbit    Direction = P2^5;                                       //电机方向
  52          typedef union tt{
  53            unsigned int  u16;
  54            unsigned char u8[2];//u8[0] is H
  55          }_KEY;
C51 COMPILER V7.50   MAIN                                                                  01/03/2009 21:23:34 PAGE 2   

  56          _KEY key_new, key_old;
  57          
  58          
  59          extern void IIC_RdFromROM(unsigned char ad_main,unsigned char *rddata,unsigned char addh,unsigned char add
             -l,unsigned char num);
  60          extern void IIC_WrToROM(unsigned char ad_main,unsigned char *wrdata,unsigned char addh,unsigned char addl,
             -unsigned char num);
  61          extern void lcdInit (void);//初始化LCD子程序
  62          
  63          extern void lcdClear (void);//清除LCD屏幕子程序
  64          
  65          extern void lcdWriteCommand (unsigned char Command);//写入控制命令到LCD子程序//输入参数:控制命令
  66          
  67          
  68          extern void lcdWriteData (unsigned char Data);//写入显示数据到LCD子程序//输入参数:显示数据
  69          
  70          
  71          extern void checkLcdBusy (void);//检测LCD忙碌子程序
  72          
  73          extern void displayPhoto (unsigned char *bmp);//全屏显示图形子程序//输入参数:图形数据
  74          
  75          
  76          extern void wrPosition (void);//坐标写入子程序
  77          extern void dispString (unsigned char X, Y, speed, unsigned char *msg);//显示字符串子程序//输入参数:X=行(0
             --3), Y=列(0-7), speed=显示速度(毫秒), msg=字符数据
  78          
  79          extern void delaySec (unsigned char sec);//延时(秒)子程序//输入参数:秒数
  80          unsigned int scan_key(void);
  81          extern serial_initial();
  82          extern tim0_initial();
  83          extern F_YB_();
  84          extern void char_in_String_10(unsigned char _data, unsigned char y,signed char *msg,signed char sign);
  85          void F_pag0 (void);
  86          void F_pag1 (void);
  87          void F_pag2 (void);
  88          void F_pag3 (void);
  89          void F_pag4 (void);
  90          void F_pag5 (void);
  91          
  92          //===============================================
  93          unsigned int _key;
  94                                   // "预备距离 49.8mm ";
  95          unsigned char xdata sdyl[17] ="设定压力       N";
  96          unsigned char xdata sdsj[17] ="设定时间       S";
  97          
  98          unsigned char xdata ybsd[17] ="预备速度      mm";
  99          unsigned char xdata sds2[17] ="设定压力    mm/S";
 100          unsigned char xdata jysj[17] ="加压时间       S";
 101          unsigned char xdata gzsj[17] ="工作时间       S";
 102          
 103          unsigned char xdata jmsj[17] ="精磨时间       S";
 104          unsigned char xdata jmyl[17] ="精磨压力       N";
 105          unsigned char xdata sdsd[17] ="手动速度    mm/S";
 106          unsigned char xdata wtsd[17] ="微调速度    mm/S";
 107          
 108          unsigned char xdata wtjl[17] ="微调距离      mm";
 109          unsigned char xdata ybjl[17] ="预备距离      mm";
 110          unsigned char code  kong[17] ="                ";
 111          unsigned char idata v_pag[3] ="  ";
 112          static unsigned char idata S_=0,S;      
 113          unsigned char idata v_pag10_=34; //设定压力
 114          unsigned char idata v_pag11_=90; //设定压力
C51 COMPILER V7.50   MAIN                                                                  01/03/2009 21:23:34 PAGE 3   

 115          
 116          unsigned char idata v_pag20_=49; //预备速度
 117          unsigned char idata v_pag21_=49;
 118          unsigned char idata v_pag22_=30;
 119          unsigned char idata v_pag23_=90;//工作时间
 120          
 121          unsigned char idata v_pag30_=49;//精磨时间
 122          unsigned char idata v_pag31_=49;
 123          unsigned char idata v_pag32_=30;
 124          unsigned char idata v_pag33_=90;//微调速度
 125          
 126          unsigned char idata v_pag40_=90;//微调距离
 127          unsigned char idata v_pag41_=90;//预备距离
 128          unsigned char xdata wtdata[12];
 129          unsigned char xdata rddata[12];
 130          //一圈3mm
 131          //一圈360度
 132                  //16个脉冲0.9度         6400个脉冲360度
 133          
 134          extern void Set__moto( unsigned long Step_,unsigned char Direct);
 135          extern void OffSet__moto( unsigned long Step_,unsigned char Direct);
 136          extern unsigned long _Step;
 137          extern unsigned long old_Step;
 138          void main (void)
 139          {       
 140   1          lcdInit (); 
 141   1              F_pag0();//lcd显示              
 142   1          tim0_initial();//初始化定时器       
 143   1              Set__moto  (0,1);///void Set__moto( unsigned long Step,unsigned char Direct){ 
 144   1      
 145   1              IIC_RdFromROM(0xa0,rddata,0x00,0x00,12);        //读取24Cxxx内容,
 146   1      
 147   1              F_YB_();
 148   1              if((rddata[0]!=0)&&(rddata[0]!=255))v_pag10_=rddata[0];
 149   1              if((rddata[1]!=0)&&(rddata[1]!=255))v_pag11_=rddata[1];
 150   1      
 151   1              if((rddata[2]!=0)&&(rddata[2]!=255))v_pag20_=rddata[2];
 152   1              if((rddata[3]!=0)&&(rddata[3]!=255))v_pag21_=rddata[3];
 153   1              if((rddata[4]!=0)&&(rddata[4]!=255))v_pag22_=rddata[4];
 154   1              if((rddata[5]!=0)&&(rddata[5]!=255))v_pag23_=rddata[5];
 155   1      
 156   1              if((rddata[6]!=0)&&(rddata[6]!=255))v_pag30_=rddata[6];
 157   1              if((rddata[7]!=0)&&(rddata[7]!=255))v_pag31_=rddata[7];
 158   1              if((rddata[8]!=0)&&(rddata[8]!=255))v_pag32_=rddata[8];
 159   1              if((rddata[9]!=0)&&(rddata[9]!=255))v_pag33_=rddata[9];
 160   1      
 161   1              if((rddata[10]!=0)&&(rddata[10]!=255))v_pag40_=rddata[10];
 162   1              if((rddata[11]!=0)&&(rddata[11]!=255))v_pag41_=rddata[11];
 163   1      
 164   1              while(1)//循环
 165   1          {
 166   2                          _key = scan_key(); 
 167   2      
 168   2                              switch(_key)
 169   2                              {
 170   3                              case _MODE_ :  //按键"MODE"     
 171   3                                                              if(S_==0x00){S_=0x10;}//Enter
 172   3                                              else {
 173   4                                                                      wtdata[0]=v_pag10_;
 174   4                                                                      wtdata[1]=v_pag11_;
 175   4      
 176   4                                                                      wtdata[2]=v_pag20_;
C51 COMPILER V7.50   MAIN                                                                  01/03/2009 21:23:34 PAGE 4   

 177   4                                                                      wtdata[3]=v_pag21_;
 178   4                                                                      wtdata[4]=v_pag22_;
 179   4                                                                      wtdata[5]=v_pag23_;
 180   4      
 181   4                                                                      wtdata[6]=v_pag30_;
 182   4                                                                      wtdata[7]=v_pag31_;
 183   4                                                                      wtdata[8]=v_pag32_;
 184   4                                                                      wtdata[9]=v_pag33_;
 185   4      
 186   4                                                                      wtdata[10]=v_pag40_;
 187   4                                                                      wtdata[11]=v_pag41_;
 188   4                                          IIC_WrToROM(0xa0,wtdata,0x00,0x00,12);/*保存数据*/
 189   4                                                                      S_=0x00;}//End  v_pag10_++;
 190   3                                                          break;                                                                                      
 191   3                          case _ADD_  :       //按键"+"
 192   3                                                  if(S_==1)     { if( ++v_pag10_>99)v_pag10_=0; }
 193   3                                                              else if(S_==2){ if( ++v_pag11_>99)v_pag11_=0; }
 194   3                                                              else if(S_==3){ if( ++v_pag20_>99)v_pag20_=0; }

⌨️ 快捷键说明

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