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

📄 main.lst

📁 用C8051F020做的一个船进水检测系统
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   MAIN                                                                  12/06/2005 13:07:29 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg52.h>
   2          #include "absacc.h"
   3          #include <math.h>
   4          #include<intrins.h>
   5          #define  mode 0x9b
   6          #include "ziku.h"
   7          #define uchar unsigned char
   8          #define uint unsigned int
   9          #define AP 0x2a
  10          #define LENGTH 250  //波形区域宽度
  11          #define WIDTH 200   //波形区域高度
  12          sbit a0=P2^0;
  13          xdata unsigned char PortA _at_ 0xc000;
  14          xdata unsigned char PortB _at_ 0xc001;
  15          xdata unsigned char PortC _at_ 0xc002;
  16          xdata unsigned char CAddr _at_ 0xc003;
  17          //sbit cs=P1^3;
  18          sbit cs1=P2^5;
  19          sbit cs2=P2^6;
  20          sbit cs3=P2^7;
  21          sbit rst=P1^4;
  22          sbit wr=P3^6;
  23          sbit rd=P3^7;
  24          sbit alarm=P1^0;
  25          /*****************************/
  26          unsigned char bdata d[3];
  27          uchar code sys[8]={0x30,0x87,0x07,0x27,0x7a,0xef,0x2a,0}; /*P1-P8*/
  28          uchar code scr[10]={0,0,0xef,0x00,0x28,0xef,0x00,0x50,0,0}; /*P1-P10*/
  29          uchar code arr[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
  30          uchar gprsflag=0;
  31          uchar code at1[3]={'A','T',0X0D};
  32          uchar code at2[10]={'A','T','+','C','M','G','F','=','1',0x0d};
  33          uchar code at3[22]={'A','T','+','C','M','G','S','=','"','1','3',
  34                                '0','1','3','7','0','8','0','5','1','"',0x0d};
  35          uchar code at4[14]={'w','a','t','e','r',' ','w','a','r','n','i','n','g','!'};
  36          uchar yangda[3];
  37          //函数定义
  38          void outcode(uchar code_data);
  39          void outdata(uchar data_data);
  40          uchar indata(void);
  41          void turnoff(void);
  42          void turnon(void);
  43          void initram(void);
  44          void init(void);
  45          void fixline(int y);
  46          void fixline2(int x);
  47          void WriteD(uchar x,uchar y);
  48          void delay(uchar di);
  49          void showchinese32(int addr,uchar *chin);
  50          void drawtable();
  51          void shownumber(int addr,uchar number);
  52          void shownumber16(int addr,uchar number);
  53          void warn0(uchar canghao[4],j);
  54          void count(uchar canghao[],uchar*p);
  55          void countgprs(uchar yangda[3],uchar canghao[],uchar*p);
C51 COMPILER V7.06   MAIN                                                                  12/06/2005 13:07:29 PAGE 2   

  56          void sendnum(void);
  57          void xszc()     ;
  58          void warn3(uchar canghao[],uchar j);
  59          void kaiji();
  60          void outcode(uchar code_data)//输出指令代码
  61          {//     cs=0;
  62   1          cs1=1;
  63   1              cs2=0;
  64   1              cs3=1;
  65   1              a0=1;   
  66   1              rd=1;
  67   1              P0=code_data;
  68   1              wr=0;
  69   1              wr=1;
  70   1              //cs=1;
  71   1              cs1=0;
  72   1              cs2=0;
  73   1              cs3=1;
  74   1      }
  75          
  76          void outdata(uchar data_data){//输出指令参数
  77   1              a0=0;
  78   1      //      cs=0;
  79   1              cs1=1;
  80   1              cs2=0;
  81   1              cs3=1   ;
  82   1              P0=data_data;
  83   1              wr=0;
  84   1              wr=1;
  85   1              //cs=1;
  86   1              cs1=0;
  87   1              cs2=0;
  88   1              cs3=1;
  89   1      }
  90          
  91          uchar indata(void){//输出指令参数
  92   1              uchar data_data;
  93   1              a0=1;
  94   1      //      cs=0;   
  95   1              cs1=1;
  96   1              cs2=0;
  97   1              cs3=1  ;
  98   1              P0=0xff;
  99   1              wr=1;
 100   1              rd=0;   
 101   1              data_data=P0;
 102   1              rd=1;
 103   1      //      cs=1;
 104   1              cs1=0;
 105   1              cs2=0;
 106   1              cs3=1;
 107   1              return data_data;
 108   1      }
 109          
 110          void delay(uint di) //延时子程序
 111          { uint k;
*** WARNING C235 IN LINE 111 OF MAIN.C: parameter 1: different types
 112   1              for(;di!=0;di--)
 113   1              {
 114   2                      for(k=0;k<1000;k++);
 115   2              }
 116   1      }
C51 COMPILER V7.06   MAIN                                                                  12/06/2005 13:07:29 PAGE 3   

 117          
 118          void WriteD(uchar x,uchar y)  //write a dot on the 1nd layer
 119          {
 120   1              unsigned int address;
 121   1              uchar addh,addl;
 122   1              uchar m=0,n;
 123   1              address=0x01f9+x/8+y*AP;
 124   1              addh=address/256;
 125   1              addl=address%256;
 126   1              n=x%8;
 127   1              outcode(0x46);
 128   1              outdata(addl);
 129   1              outdata(addh);
 130   1              outcode(0x43);
 131   1              m=indata();
 132   1              m=m|arr[n];
 133   1              outcode(0x46);
 134   1              outdata(addl);
 135   1              outdata(addh);
 136   1              outcode(0x42);
 137   1              outdata(m);
 138   1      }
 139          
 140          void turnoff(void){
 141   1              outcode(0x58);//off screen
 142   1              outdata(0x00);
 143   1      }
 144          
 145          void turnon(void){
 146   1              outcode(0x59);//on screen
 147   1              outdata(0x55);
 148   1      }
 149          
 150          void initram(void){//显示存储器清零
 151   1              unsigned int i;
 152   1              outcode(0x4c);
 153   1              outcode(0x46);
 154   1              outdata(0x00);
 155   1              outdata(0x00);
 156   1              outcode(0x42);//clear screen memory
 157   1              for(i=0;i<=0x7800;i++){outdata(0x00);}//32767
 158   1      }
 159          
 160          void init(void){//初始化程序
 161   1              int n;
 162   1              outcode(0x40); /*SYSTEM SET 指令代码*/
 163   1              for(n=0;n<8;n++)outdata(sys[n]); /*将参数P1-P8 写入*/
 164   1              outcode(0x44); /*SCROLL 指令代码*/
 165   1              for(n=0;n<10;n++)outdata(scr[n]); /*将参数P1-P10 写入*/
 166   1              outcode(0x5a); /*HDOT SCR——P1 清零复位*/                   
 167   1              outdata(0);
 168   1              outcode(0x5b); /*OVLAY—*/
 169   1              outdata(0x1c);
 170   1      }
 171          
 172          void fixline(int y)             //在第二层画水平直线 0-240)
 173          {
 174   1              unsigned int address;
 175   1              uchar addh,addl;
 176   1              uchar i;
 177   1              address=y;
 178   1              addh=address/256;
C51 COMPILER V7.06   MAIN                                                                  12/06/2005 13:07:29 PAGE 4   

 179   1              addl=address%256;
 180   1              outcode(0x46);
 181   1              outdata(addl);
 182   1              outdata(addh);
 183   1              outcode(0x4c);
 184   1              outcode(0x42);
 185   1              outdata(0x1f);
 186   1              for(i=0;i<39;i++)outdata(0xff);
 187   1      }
 188          
 189          void fixline2(int x)       //x(1-40)
 190          {
 191   1              unsigned int address;
 192   1              uchar addh,addl;
 193   1              uchar i;
 194   1              address=x;
 195   1              for(i=0;i<160;i++)
 196   1      {       addh=address/256;
 197   2              addl=address%256;
 198   2              outcode(0x46);
 199   2              outdata(addl);
 200   2              outdata(addh);
 201   2              outcode(0x4c);
 202   2              outcode(0x42);
 203   2              outdata(0x18); 
 204   2               address+=42;
 205   2       
 206   2              }
 207   1      }
 208          
 209          void initall(void){     //初始化
 210   1              turnoff();
 211   1              init();
 212   1              turnon();       
 213   1              initram();
 214   1      }
 215          
 216          void showchinese32(int addr,uchar *chin)
 217          //功能:在x,y位置处,显示字符码为chin
 218          //x坐标寄存器(字节),y坐标寄存器(点行)
 219          { 
 220   1              int temp1; 
 221   1      
 222   1              uchar hi,lo,*temp2;
 223   1              uchar b,c=0;
 224   1              //d=y;
 225   1              temp2=chin;
 226   1              temp1=addr;
 227   1              outcode(0x4c);
 228   1              for(b=0;b<32;b++){
 229   2                      //0x51f9,5218,2a18
 230   2                      hi=temp1/256;
 231   2                      lo=temp1%256;
 232   2                      outcode(0x46);
 233   2                      outdata(lo);
 234   2                      outdata(hi);
 235   2                      outcode(0x42);
 236   2                      outdata(temp2[c++]);    
 237   2                      outdata(temp2[c++]);    
 238   2                      outdata(temp2[c++]);
 239   2                      outdata(temp2[c++]);    
 240   2                      temp1+=AP;//    d=d+1; 
C51 COMPILER V7.06   MAIN                                                                  12/06/2005 13:07:29 PAGE 5   

 241   2              }
 242   1      }
 243          
 244          
 245          void shownumber(int addr,uchar number)
 246          //功能:在x,y位置处,显示字符码为chin
 247          //x坐标寄存器(字节),y坐标寄存器(点行)
 248          { 
 249   1              int temp1; 
 250   1      
 251   1              uchar hi,lo;
 252   1              uchar b;
 253   1              //d=y;
 254   1              temp1=addr;
 255   1              outcode(0x4c);
 256   1              for(b=0;b<16;b++){
 257   2                      //0x51f9,5218,2a18
 258   2                      hi=temp1/256;
 259   2                      lo=temp1%256;
 260   2                      outcode(0x46);
 261   2                      outdata(lo);
 262   2                      outdata(hi);
 263   2                      outcode(0x42);
 264   2                      outdata(num[16*number+b]);      
 265   2                      
 266   2                      temp1+=AP;//    d=d+1; 
 267   2              }
 268   1      }
 269          
 270          void shownumber16(int addr,uchar number16)
 271          //功能:在x,y位置处,显示字符码为chin
 272          //x坐标寄存器(字节),y坐标寄存器(点行)
 273          { 
 274   1              int temp1,c=0; 
 275   1      
 276   1              uchar hi,lo;
 277   1              uchar b;
 278   1              //d=y;
 279   1              c=64*number16;
 280   1              temp1=addr;
 281   1              outcode(0x4c);
 282   1              for(b=0;b<32;b++){
 283   2                      //0x51f9,5218,2a18
 284   2                      hi=temp1/256;
 285   2                      lo=temp1%256;
 286   2                      outcode(0x46);
 287   2                      outdata(lo);
 288   2                      outdata(hi);
 289   2                      outcode(0x42);

⌨️ 快捷键说明

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