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

📄 venus.lst

📁 继电保护测试仪开发程序。已经是项目式的文档
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V7.02b   VENUS                                                                01/18/2005 21:43:57 PAGE 1   


C51 COMPILER V7.02b, COMPILATION OF MODULE VENUS
OBJECT MODULE PLACED IN venus.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE venus.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /****************************************/
   2          /* Copyright (c) 2004, 通信工程学院陈斌 */
   3          /* All rights reserved.                 */
   4          /* 作    者:陈斌                       */
   5          /****************************************/
   6          
   7          //屏宽:240
   8          //屏高:128
   9          
  10          #include <reg51.h>
  11          /*  P1口  */
  12          sbit P17   = 0x97;
  13          sbit P16   = 0x96;
  14          sbit P15   = 0x95;
  15          sbit P14   = 0x94;
  16          sbit P13   = 0x93;
  17          sbit P12   = 0x92;
  18          sbit P11   = 0x91;
  19          sbit P10   = 0x90;
  20          sbit P31   = 0xB1;
  21          sbit P30   = 0xB0;
  22          
  23          #include <intrins.h>
  24          #include <absacc.h>
  25          #include <key.h>
  26          #include <extern_val.h>
  27          //
  28          #define lcd_page1                                       0x00//液晶第一屏
  29          #define lcd_page2                                       0x0F//液晶第二屏
  30          #define lcd_graphic_columns                         30  //液晶图形区行长度
  31          #define lcd_text_columns                            30  //液晶文本区行长度
  32          #define hzk_page                                     0  //存放汉字库的FLASH页
  33          #define cshsj_page                                   0  //存放初始化数据的FLASH页
  34          #define ID                                           0  //内核模块ID号
  35          //
  36          
  37          unsigned char xdata Lcd_Data_Port      _at_         0xFFFA; //液晶数据口
  38          unsigned char xdata Lcd_Code_Port      _at_         0xFFFB; //液晶指令口
  39          unsigned char xdata Ram_Page           _at_         0xFFFC; //RAM页控制口
  40          unsigned char xdata Flash_Page         _at_         0xFFFD; //FLASH页控制口
  41          unsigned char xdata Reset_Port         _at_         0xFFF9; //设备复位控制口
  42          unsigned char xdata com_reg[16]        _at_         0xFFE0; //SCC2692的寄存器组
  43          unsigned char data  Ram_Reg;                                //RAM页控制口寄存器
  44          unsigned char data  Flash_Reg;                              //FLASH页控制口寄存器
  45          unsigned char xdata lcd_buf[20];                            //液晶显示缓冲区
  46          unsigned char xdata font_data[32];                          //汉字字模缓冲区
  47          
  48          //串口通信使用的全局变量
  49          unsigned char xdata rxa_buf[500],txa_buf[500],rxb_buf[500],txb_buf[500];
  50          unsigned char xdata *rxa_point;
  51          unsigned char xdata *txa_point;
  52          unsigned char xdata *rxb_point;
  53          unsigned char xdata *txb_point;
  54          unsigned int data txa_lenth,txb_length,rxa_length,rxb_length;
  55          unsigned char data combstatu,checksum;
C51 COMPILER V7.02b   VENUS                                                                01/18/2005 21:43:57 PAGE 2   

  56          bit txa_en=0,txb_en=0;
  57          bit rxa_first=0,rxa_second=0,rxa_third=0,rxa_num=0,rxa_en=0,rxa_ok=0,dsp_connect=0;
  58          bit rxb_first=0,rxb_second=0,rxb_third=0,rxb_num=0,rxb_en=0,rxb_ok=0,dsp_ack=0,dsp_nack=0;
  59          lcd_cls(unsigned char i);
  60          lcd_init();
  61          sys_init();
  62          print_c16(unsigned int lcd_ram_addr);
  63          fprint_c16(unsigned int lcd_ram_addr);
  64          print_bmp(unsigned int lcd_ram_addr,unsigned char code *bmpdata,unsigned char width,length);
  65          reset_flash();
  66          erase_flash(unsigned char sector);
  67          program_flash(unsigned int k,unsigned char x);
  68          com_a_fs(unsigned int k);
  69          com_b_fs(unsigned int k);
  70          unsigned char getchar();
  71          move_data(unsigned char xdata *m,unsigned char xdata *n,unsigned int k);
  72          long d_to_hex(unsigned char xdata *k);
  73          void SetPCF8563(unsigned char timetype,unsigned char value);
  74          bhsy();
  75          xtcssd();
  76          gzsd();
  77          load_data(unsigned char i,unsigned char code *m,unsigned char j,unsigned char xdata *n,unsigned int k)
  78                  {
  79   1                      unsigned char Flash_Reg_B,Ram_Reg_B;
  80   1                      EA=0;   //关闭中断
  81   1                      Flash_Reg_B=Flash_Reg;
  82   1                      Ram_Reg_B=Ram_Reg;
  83   1                      Flash_Reg=i;
  84   1                      Flash_Page=Flash_Reg;
  85   1                      Ram_Reg=j;
  86   1                      Ram_Page=Ram_Reg;
  87   1                      while (k!=0)
  88   1                              {
  89   2                                      *n=*m;
  90   2                                      n++;
  91   2                                      m++;
  92   2                                      k--;
  93   2                              }
  94   1                      Flash_Reg=Flash_Reg_B;
  95   1                      Ram_Reg=Ram_Reg_B;
  96   1                      Flash_Page=Flash_Reg;
  97   1                      Ram_Page=Ram_Reg;
  98   1                      EA=1;   //打开中断
  99   1              }       
 100          /*串口通信中断处理程序,占用INT0*/
 101          void comtx(void) interrupt 0 using 1
 102          {
 103   1              unsigned char i,j;
 104   1              i=com_reg[5];
 105   1              if (i&0x1)     //通道A发送中
 106   1              {
 107   2                      if (txa_en)
 108   2                      {
 109   3                              com_reg[3]=*txa_point;
 110   3                              txa_point++;
 111   3                              txa_lenth--;
 112   3                              if (txa_lenth==0) {txa_en=0;com_reg[2]=0x09;}     //同时关闭发送通道A
 113   3                      }
 114   2              }
 115   1              if (i&0x2)     //通道A接收中
 116   1              {
 117   2                      j=com_reg[3];
C51 COMPILER V7.02b   VENUS                                                                01/18/2005 21:43:57 PAGE 3   

 118   2                      if (rxa_en)
 119   2                      {
 120   3                              *rxa_point=j;
 121   3                              rxa_point++;
 122   3                              rxa_length--;
 123   3                              if (rxa_length==0) {rxa_en=0;rxa_ok=1;}
 124   3                      }
 125   2                      else if (rxa_third)
 126   2                      {
 127   3                              rxa_third=0;
 128   3                              rxa_en=1;
 129   3                              rxa_length=rxa_length+j;
 130   3                              rxa_point=&rxa_buf;
 131   3                              if (rxa_length==0)  {rxa_en=0;}
 132   3                      }
 133   2                      else if (rxa_second)
 134   2                      {
 135   3                              rxa_second=0;
 136   3                              rxa_third=1;
 137   3                              rxa_length=j*256;
 138   3                      }
 139   2                      else if (rxa_first)
 140   2                      {
 141   3                              rxa_first=0;
 142   3                              if (j==0x55) {rxa_second=1;}
 143   3                      }
 144   2                      else if (j==0xaa) {rxa_first=1;}//收包头
 145   2              }
 146   1              if (i&0x10)    //通道B发送中
 147   1              {
 148   2                      if (txb_en)
 149   2                      {
 150   3                              com_reg[11]=*txb_point;
 151   3                              txb_point++;
 152   3                              txb_length--;
 153   3                              if (txb_length==0) {txb_en=0;com_reg[10]=0x09;}     //同时关闭发送通道B
 154   3                      }
 155   2              }
 156   1              if (i&0x20)    //通道B接收中
 157   1              {
 158   2                      j=com_reg[11];
 159   2                      if (rxb_en)
 160   2                      {
 161   3                              *rxb_point=j;
 162   3                              rxb_point++;
 163   3                              rxb_length--;
 164   3                              if (rxb_length==0) {rxb_en=0;rxb_ok=1;}
 165   3                      }
 166   2                      else if (rxb_third)
 167   2                      {
 168   3                              rxb_third=0;
 169   3                              rxb_en=1;
 170   3                              rxb_length=rxb_length+j;
 171   3                              rxb_point=&rxb_buf;
 172   3                              if (rxb_length==0)  {rxb_en=0;}
 173   3                      }
 174   2                      else if (rxb_second)
 175   2                      {
 176   3                              rxb_second=0;
 177   3                              rxb_third=1;
 178   3                              rxb_length=j*256;
 179   3                      }
C51 COMPILER V7.02b   VENUS                                                                01/18/2005 21:43:57 PAGE 4   

 180   2                      else if (rxb_first)
 181   2                      {
 182   3                              rxb_first=0;
 183   3                              if (j==0x55) {rxb_second=1;}
 184   3                      }
 185   2                      else if (j==0xaa) {rxb_first=1;}//收包头

⌨️ 快捷键说明

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