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

📄 yejing.lst

📁 液晶显示键盘操作密码编辑控制加上对存储器操作
💻 LST
📖 第 1 页 / 共 2 页
字号:
 124   1              E = 1; 
 125   1              _nop_(); 
 126   1              _nop_(); 
 127   1              E = 0;  
 128   1      }
 129          
 130          /**************************** 显示字符串函数 *****************************
 131          * 功能:从坐标x,y处开始显示指针ptr指定的字符串
 132          **************************************************************************/
 133          void Disp_strings(uchar x,uchar y, uchar *ptr)
 134          {
 135   1        while (*ptr != '%')////数组元素最后有%作为数组结束标志的判断/////
 136   1           {      
 137   2             LocateXY( x, y );        // 定位显示地址///
 138   2             LcdWriteData(*ptr++ );////对于汉字一个地址要连续写两次,才能构成一个完整的汉字//////
 139   2             LcdWriteData(*ptr++ );////对于字母、数字一个地址可写一次,显示时中间有一个空格//////
 140   2                 ///////////////////////////当然也可连续写两次,显示时中间没有空格///////
 141   2            // LcdWriteCommand(0x18,1);//当主程序只有文字信息显示时,此处可用于滚屏显示/////,
 142   2            // Delay400Ms();       //////滚屏显示要注意延时///////
 143   2             x++;////连续写两次后,地址(横坐标)加1////////
 144   2                }
 145   1      } 
 146          
 147          /**************************** 显示数值函数 *****************************
 148          * 功能:从指定的坐标位置x,y处开始显示"-999.999---+999.999"范围的一个数值.
 149          **************************************************************************/
 150          /*
 151          void Disp_data(uchar x,uchar y, float ndata)
 152          {
 153            unsigned long  z;   
 154            uchar tab1[10],tab2[10];
 155             if(ndata<0) //////////////////第一个if-else结构开始///////////////////////////  
 156                   {                     //
 157                    tab1[0]=array4[12];  //
 158                        ndata=fabs(ndata);   //对正负数分别赋符号///////
 159                   }                     //
 160             else{tab1[0]=array4[11];} ////第一个if-else结构结束/////////////////////////// 
 161          ////////////////////////////////////////////////////////////////////////////////
 162          //////////////////第二个if-else结构开始/////////////////////////////////////////   
 163          if((ndata<1000)&&(ndata>=0.001))////显示的数其绝对值必须在0.001-1000之间
 164            {
 165              z=(unsigned long)(ndata*1000);////强制类型转换//////
 166               //tab1[0]是符号位////////////////下面是获取各位数值///////
 167              tab1[1]=array4[z/100000];      ////获得千位信息'0-9'中的某一个/////
 168              tab1[2]=array4[z%100000/10000];////获得百位信息'0-9'中的某一个/////
 169              tab1[3]=array4[z%10000/1000];  ////获得十位信息'0-9'中的某一个///// 
 170              tab1[4]=array4[10];/////tab1[4]是小数点位////////
 171              tab1[5]=array4[z%1000/100];    ////获得十分位信息'0-9'中的某一个/////
 172              tab1[6]=array4[z%100/10];      ////获得百分位信息'0-9'中的某一个/////
 173              tab1[7]=array4[z%10];          ////获得千分位信息'0-9'中的某一个/////
 174              tab1[8]=array4[13];            ////tab1[9]表示的是空格字符/////
 175              tab1[9]=array4[14];            ////tab1[8]表示的是'%'字符,数组结束必须有'%'/////
 176          ////////////////////////////////////
 177             if(tab1[1]=='0')              ////考虑千位为'0'的情况////注意应该是tab1[1]=='0'////
 178                {                                                 ////而不是tab1[1]==0/////////
C51 COMPILER V7.50   YEJING                                                                04/10/2008 19:53:27 PAGE 4   

 179                     if(tab1[2]=='0')      ////考虑百位为'0'的情况////
 180                           {                   //
 181                         tab2[0]=tab1[0];  //符号位////
 182                         tab2[1]=tab1[3];  //个位////
 183                         tab2[2]=tab1[4];  //小数点////
 184                         tab2[3]=tab1[5];  //十分位///     
 185                         tab2[4]=tab1[6];  //百分位///
 186                         tab2[5]=tab1[7];  //千分位///
 187                         tab2[6]=tab1[8];  ////数组结束必须有%/////
 188                               }                    //                       
 189                     else                   ////百位不为'0'的情况////
 190                       {                    //
 191                             tab2[0]=tab1[0];   ////符号位////
 192                         tab2[1]=tab1[2];   ////十位///
 193                         tab2[2]=tab1[3];   ////个位////
 194                         tab2[3]=tab1[4];   ////小数点////       
 195                         tab2[4]=tab1[5];   ////十分位///
 196                         tab2[5]=tab1[6];   ////百分位///
 197                         tab2[6]=tab1[7];    ////千分位///
 198                         tab2[7]=tab1[8];    /////根据实际情况添加的空格//与Disp_strings()有关////
 199                         tab2[8]=tab1[9];   ////数组结束必须有%/////
 200                               }                    //
 201                 }                          //
 202             else  ////千位不为'0'的情况////
 203              {
 204               tab2[0]=tab1[0];//符号位////
 205               tab2[1]=tab1[1];//千位///
 206               tab2[2]=tab1[2];//百位///
 207               tab2[3]=tab1[3];//个位////
 208               tab2[4]=tab1[4];//小数点////
 209               tab2[5]=tab1[5];//十分位///
 210               tab2[6]=tab1[6];//百分位///
 211               tab2[7]=tab1[7];//千分位///
 212               tab2[8]=tab1[9]; ////数组结束必须有%/////
 213              }  
 214          ////////////////////////////////////   
 215             Disp_strings(x,y,tab2);/////////////////显示数值////
 216            }
 217           else{ Disp_strings(x,y,array5);}//////数值超过显示范围,报错! 
 218          ////////////////////////////////////////////////////////////////////////////////
 219          //////////////////第二个if-else结构结束/////////////////////////////////////////    
 220          }
 221          */
 222          /****************************** 初始化函数 ******************************
 223          * 功能:向LCD模块写入不同命令,完成必要的初始化过程
 224          *************************************************************************/
 225          void Lcd_initilize( void ) 
 226          {
 227   1              LcdWriteCommand( 0x38, 0);  /* 设置显示模式(不检测忙信号) */
 228   1              Delay5Ms();                                     /* 短延时 */
 229   1              LcdWriteCommand( 0x38, 0);      /* 共进行三次 */
 230   1              Delay5Ms();
 231   1              LcdWriteCommand( 0x38, 0);
 232   1              Delay5Ms();                            
 233   1              LcdWriteCommand( 0x38, 1);      /* 设置显示模式(以后均检测忙信号) */
 234   1          LcdWriteCommand( 0x08, 1);  /* 显示关闭 */
 235   1              LcdWriteCommand( 0x01, 1);      /* 显示清屏 */
 236   1              LcdWriteCommand( 0x06, 1);      /* 设置显示光标移动 */
 237   1              LcdWriteCommand( 0x0c, 1);      /* 设置显示开及光标位置 */
 238   1      }
 239          
 240          
C51 COMPILER V7.50   YEJING                                                                04/10/2008 19:53:27 PAGE 5   



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