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

📄 main.lst

📁 采用1*4,4*4键盘同时控制,带有8位数码显示的数控直流电源驱动及应用程序(Keil c51)
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.09   MAIN                                                                  12/06/2007 09:33:57 PAGE 1   


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

line level    source

   1          
   2          
   3          /***************Copyright (c)*****************************************                             
   4          **                                     
   5          ** Description: Made By KDQX in Hebust
   6          ** Email:       shirenwei2003@163.com
   7          **                               
   8          **--------------File Info--------------------------------------------
   9          **
  10          ** File Name: 数据直流电源(digtal power)
  11          ** Last modified Date: 2006-12-01 
  12          ** Last Version: V1.1
  13          ** Description: 河北科技大学2005年大学生创新项目
  14          **
  15          **-------------------------------------------------------------------
  16          **
  17          ** Created By: 侍任伟(tigerots
  18          ** Company: 科大七星工作室(KDQX)
  19          ** Created date: 2003-11-16
  20          ** Version: V1.0
  21          ** Descriptions:用AT89S52单片机实现电压电流的数字化控制
  22          **
  23          **-------------------------------------------------------------------
  24          **
  25          ** Modified by:侍任伟(tigerotsh)
  26          ** Company: 科大七星工作室(KDQX
  27          ** Modified date: 2006-12-01
  28          ** Version:V1.1
  29          ** Descriptions:增加用户存储/调用功能(RAM)
  30          **
  31          **-------------------------------------------------------------------
  32          **
  33          ** Modified by:
  34          ** Company: 
  35          ** Modified date: 
  36          ** Version:
  37          ** Descriptions:
  38          **
  39          **********************************************************************/
  40          
  41          //头文件
  42          #include "reg51.h"
  43          #include "intrins.h"
  44          #include "disp.c"
  45          #include "key.c"
  46          #include "delay.c"
  47          #include "tlc5615.c"
  48          #include "tlc1549.c"
  49          //#include "x5045.c"
  50          
  51          //4mul4键盘功能键
  52          #define USER 10
  53          #define CALL 11
  54          #define SETi 12
  55          #define SETu 13
C51 COMPILER V7.09   MAIN                                                                  12/06/2007 09:33:57 PAGE 2   

  56          #define ESC  14
  57          #define OK   15
  58          
  59          //1mul8键盘功能键
  60          #define ISET 19
  61          #define ISEL 18
  62          #define IADD 17
  63          #define ISUB 16
  64          
  65          #define USET 23
  66          #define USEL 22
  67          #define VADD 21
  68          #define VSUB 20
  69          
  70          //系统状态定义
  71          #define IDLE_STA                0xf0
  72          #define U_SET_STA               0xf1
  73          #define I_SET_STA               0xf2
  74          #define U_SETu                  0xf3
  75          #define I_SETi                  0xf4
  76          #define USER_SET_STA    0xf5
  77          #define CALL_USER_STA   0xf6
  78          
  79          //函数声明
  80          void IDLE_Mange(void);
  81          void U_SET_Mange(void);
  82          void I_SET_Mange(void);
  83          void Disp_I_Real(void);
  84          void Disp_U_Real(void);
  85          void U_SETu_Mange(void);
  86          void I_SETi_Mange(void);
  87          void USER_SET_Mange(void);
  88          void CALL_USER_Mange(void);
  89          
  90          
  91          //外部变量声明
  92          extern unsigned char Disp_Buf[8];
  93          
  94          //外部函数声明
  95          extern void Init(void);
  96          extern void Disp (void);
  97          extern unsigned char Key(void);
  98          extern void Delay(unsigned int N);
  99          extern unsigned int Read1549_U(void);
 100          extern unsigned int Read1549_I(void);
 101          extern void SEND_5615_U(unsigned int dd);
 102          extern void SEND_5615_I(unsigned int dd);
 103          
 104          //全局变量
 105          unsigned int U_data=500,I_data=300;//电流电压设定数据
 106          unsigned int U_temp=0,I_temp=0;//电流电压显示数据
 107          unsigned char Sys_sta;//系统状态
 108          unsigned char keytemp;//键值
 109          unsigned char U_Buf[4];
 110          
 111          struct store{
 112                                          unsigned int U;
 113                                          unsigned int I;
 114                                  };
 115          struct store user[7]={0};//0~~6 七组用户数据;7,8,9组作为系统预设数据
 116          
 117          //标志位
C51 COMPILER V7.09   MAIN                                                                  12/06/2007 09:33:57 PAGE 3   

 118          unsigned char uset_bit=3;
 119          unsigned char iset_bit=7;
 120          
 121          unsigned int dis=0;
 122          unsigned int disi=0;
 123          
 124          unsigned long int flashbuf = 0;//显示刷新频率
 125          
 126          unsigned char ubit=0;
 127          unsigned char ibit=0;
 128          
 129          unsigned char userbit=0;//用户已存储组数
 130          
 131          //状态位
 132          bit u_ds=0;
 133          bit i_ds=0;
 134          bit uset=0;
 135          bit flash=0;
 136          
 137          //函数初始化
 138          void Init (void)
 139          {
 140   1              AD_CLK = 0;
 141   1              AD_CS1 = 1;
 142   1              AD_CS2 = 1;
 143   1      
 144   1              Sys_sta=IDLE_STA;
 145   1      
 146   1              SEND_5615_U(U_data);
 147   1              Delay(50);
 148   1              SEND_5615_I(I_data);
 149   1              Delay(50);
 150   1      
 151   1              Disp_U_Real();
 152   1              Disp_I_Real();
 153   1              Delay(50);
 154   1              Sys_sta=IDLE_STA;
 155   1      }
 156          
 157          //显示设置电流电压
 158          void Disp_U_set(unsigned int du)
 159          {
 160   1              Disp_Buf[0]=du/1000;
 161   1              Disp_Buf[1]=du%1000/100;
 162   1              Disp_Buf[2]=du%100/10;
 163   1              Disp_Buf[3]=du%10;
 164   1      
 165   1              Disp();
 166   1      }
 167          void Disp_I_set(unsigned int di)
 168          {
 169   1              Disp_Buf[4]=di/1000;
 170   1              Disp_Buf[5]=di%1000/100;
 171   1              Disp_Buf[6]=di%100/10;
 172   1              Disp_Buf[7]=di%10;
 173   1      
 174   1              Disp();
 175   1      }
 176          //显示实际电流电压值
 177          void Disp_U_Real(void)
 178          {
 179   1              dis=dis++;
C51 COMPILER V7.09   MAIN                                                                  12/06/2007 09:33:57 PAGE 4   

 180   1              if(dis == 20)
 181   1              {
 182   2                      dis = 0;
 183   2                      AD_CLK = 0;
 184   2                      AD_CS1 = 1;
 185   2                      AD_CS2 = 1;
 186   2                      U_temp = Read1549_U();
 187   2                      Delay(30);
 188   2      
 189   2                      if(U_temp == 0)
 190   2                      {
 191   3                              Delay(10);
 192   3                              U_temp = Read1549_U();
 193   3                      }
 194   2      
 195   2                      Disp_Buf[0]=U_temp%10000/1000;
 196   2                  if(Disp_Buf[0]==0)
 197   2                  {
 198   3                      Disp_Buf[0]=18;
 199   3                  }
 200   2                      Disp_Buf[1]=U_temp%1000/100;
 201   2                      Disp_Buf[2]=U_temp%100/10;
 202   2                      Disp_Buf[3]=U_temp%10;
 203   2      
 204   2              }
 205   1              Disp();
 206   1      }
 207          
 208          void Disp_I_Real(void)
 209          {
 210   1              disi=disi++;
 211   1              if(disi == 20)
 212   1              {
 213   2                      disi = 0;
 214   2                      I_temp = Read1549_I();
 215   2                      Delay(10);
 216   2                      I_temp = Read1549_I();
 217   2              }
 218   1      
 219   1              Disp_Buf[4]=I_temp%10000/1000;
 220   1              Disp_Buf[5]=I_temp%1000/100;
 221   1              Disp_Buf[6]=I_temp%100/10;
 222   1              Disp_Buf[7]=I_temp%10;
 223   1      
 224   1              Disp();
 225   1      }
 226          //移位显示
 227          void Disp_change(unsigned char dc)
 228          {
 229   1              Disp_Buf[0]=Disp_Buf[1];
 230   1              Disp_Buf[1]=Disp_Buf[2];
 231   1              Disp_Buf[2]=Disp_Buf[3];
 232   1              Disp_Buf[3]=dc;
 233   1      
 234   1              Disp();
 235   1      }
 236          
 237          void Disp_changei(unsigned char di)
 238          {
 239   1              Disp_Buf[4]=Disp_Buf[5];
 240   1              Disp_Buf[5]=Disp_Buf[6];
 241   1              Disp_Buf[6]=Disp_Buf[7];
C51 COMPILER V7.09   MAIN                                                                  12/06/2007 09:33:57 PAGE 5   

 242   1              Disp_Buf[7]=di;
 243   1      
 244   1              Disp();
 245   1      }
 246          //IDLE状态下的服务程序
 247          void IDLE_Mange(void)
 248          {
 249   1              unsigned int temp;
 250   1              temp = U_data;
 251   1              keytemp = Key();
 252   1      
 253   1              Sys_sta=IDLE_STA;
 254   1              switch(keytemp)
 255   1              {
 256   2                      //微调键
 257   2                      case VADD:
 258   2                      {
 259   3                              if(U_data >= 0x03ff)
 260   3                              {}
 261   3                              else
 262   3                              {
 263   4                                      U_data=U_data+1;
 264   4                                      SEND_5615_U(U_data);
 265   4                                      Delay(5);
 266   4                              }
 267   3                      }break;
 268   2      
 269   2                      case VSUB:
 270   2                      {
 271   3                              if(U_data <= 5 || U_data >= 0x03ff)
 272   3                              {}
 273   3                              else
 274   3                              {
 275   4                                      U_data=U_data-1;
 276   4                                      SEND_5615_U(U_data);
 277   4                                      Delay(5);
 278   4                              }

⌨️ 快捷键说明

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