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

📄 main.lst

📁 keil c51开发的8279和51单片机通用键盘控制和Led显示及uart通信程序。
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.10   MAIN                                                                  08/04/2006 15:38:10 PAGE 1   


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

line level    source

   1          #include <at89x51.h>
   2          #include <absacc.h>
   3          #include "define.h"
   4          #include "Uart.h"
   5          
   6          uchar KeyBoard_Int_ID;          //键盘中断标志
   7          uchar KeyData;                          //键值
   8          uchar len;
   9          
  10          unsigned char state;             // .7=0 无暗盒 .7=1有暗盒状态  ,
  11          unsigned char bdata ab[4];       //     .0=1压迫器运动状态 .1=1床体运动状态 .2=1束光器运动状态 .3=1分隔选定状态 
  12          unsigned char bdata Led[3];      //     
  13          sbit Pmd       =ab[0]^0;         //压迫器进
  14          sbit Pmu       =ab[0]^1;         //压迫器退
  15          sbit Sh_on     =ab[0]^2;         //束光器横向开
  16          sbit Sh_off    =ab[0]^3;         //束光器横向关
  17          sbit Sv_on     =ab[0]^4;         //束光器纵向开
  18          sbit Sv_off    =ab[0]^5;         //束光器纵向关
  19          sbit Trh       =ab[0]^6;         //床头向旋转
  20          sbit Trf       =ab[0]^7;         //床足向选装
  21          
  22          sbit Imh       =ab[1]^0;                //球管头向移动
  23          sbit Imf       =ab[1]^1;                //球管足向移动
  24          sbit Tml       =ab[1]^2;                //床左移
  25          sbit Tmr       =ab[1]^3;                //床右移
  26          sbit R_driver  =ab[1]^4;        //      曝光
  27          sbit En_bed    =ab[1]^5;            //床旋转使能
  28          sbit N_D_mode  =ab[1]^6;            //常规、数字模式
  29          sbit DSA       =ab[1]^7;                //dsa模式
  30          
  31          sbit Zoom3     =ab[2]^0;                //II zoom3
  32          sbit Zoom2     =ab[2]^1;                //II zoom2
  33          sbit Zoom1     =ab[2]^2;                //II zoom1
  34          sbit Zoom0     =ab[2]^3;            //no zoom
  35          sbit Pol_h     =ab[2]^4;                //图像水平镜像
  36          sbit Pol_v     =ab[2]^5;                //图像垂直镜像
  37          sbit Sgq_H_A   =ab[2]^6;            //束光器手动半自动模式
  38          sbit Out_p     =ab[2]^7;                //出片
  39           
  40          sbit All_p     =ab[3]^0;                        //全片
  41          sbit H_2       =ab[3]^1;                //横向2分隔
  42          sbit V_2       =ab[3]^2;                //纵向2分隔
  43          sbit Cp_3      =ab[3]^3;                //3分隔
  44          sbit Cp_4      =ab[3]^4;                //4分隔
  45          sbit Cp_S      =ab[3]^5;                //分隔选定
  46          //sbit F_g       =ab[3]^6;              //脚闸
  47          //sbit H_g       =ab[3]^7;              //手闸
  48          //=============
  49          
  50          sbit Zoom3_led     =Led[0]^0;       //II zoom3
  51          sbit Zoom2_led     =Led[0]^1;       //II zoom2
  52          sbit Zoom1_led     =Led[0]^2;       //II zoom1
  53          sbit Zoom0_led     =Led[0]^3;       //no zoom
  54          sbit Ph_led        =Led[0]^4;           //图像水平镜像
  55          sbit Pv_led        =Led[0]^5;           //图像垂直镜像
C51 COMPILER V7.10   MAIN                                                                  08/04/2006 15:38:10 PAGE 2   

  56          sbit SHA_led       =Led[0]^6;       //束光器手动半自动模式
  57          sbit ND_led        =Led[0]^7;       //常规、数字模式
  58          
  59          sbit H2_led1       =Led[1]^0;           //横向2分隔led0
  60          sbit H2_led2       =Led[1]^1;           //横向2分隔led1
  61          
  62          sbit V2_led1       =Led[1]^2;           //纵向2分隔led0
  63          sbit V2_led2       =Led[1]^3;           //纵向2分隔led1
  64          
  65          sbit Cp3_led1      =Led[1]^4;           //3分隔led0
  66          sbit Cp3_led2      =Led[1]^5;           //3分隔led1
  67          sbit Cp3_led3      =Led[1]^6;           //3分隔led2
  68          sbit Cp_S_led      =Led[1]^7;           //分隔选定
  69          
  70          sbit Cp4_led1      =Led[2]^0;           //4分隔 led1
  71          sbit Cp4_led2      =Led[2]^1;           //4分隔 led1
  72          sbit Cp4_led3      =Led[2]^2;           //4分隔 led1
  73          sbit Cp4_led4      =Led[2]^3;           //4分隔 led1
  74          sbit All_p_led     =Led[2]^4;           //全片
  75          sbit DSA_led       =Led[2]^7;           //dsa模式
  76          
  77          
  78          
  79          /*
  80          sbit F_g_led       =Led[3]^6;           //脚闸
  81          sbit H_g_led       =Led[3]^7;           //手闸
  82          sbit Pmd_led       =Led[0]^0;    //压迫器进
  83          sbit Pmu_led       =Led[0]^1;    //压迫器退
  84          sbit Sgq_h_on_led  =Led[0]^2;    //束光器横向开
  85          sbit Sgq_h_off_led =Led[0]^3;    //束光器横向关
  86          sbit Sgq_v_on_led  =Led[0]^4;    //束光器纵向开
  87          sbit Sgq_v_off_led =Led[0]^5;    //束光器纵向关
  88          sbit Trh_led       =Led[0]^6;    //床头向旋转
  89          sbit Trf_led       =Led[0]^7;    //床足向选装
  90          sbit Imh_led       =Led[1]^0;           //球管头向移动
  91          sbit Imf_led       =Led[1]^1;           //球管足向移动
  92          sbit Tml_led       =Led[1]^2;           //床左移
  93          sbit Tmr_led       =Led[1]^3;           //床右移
  94          sbit R_driver_led  =Led[1]^4;       //曝光
  95          sbit En_bed_led    =Led[1]^5;           //床旋转使能
  96          
  97           */
  98          
  99          
 100          
 101           
 102          
 103          
 104          
 105          uchar Timer_Int_ID;                     //定时器定时中断标志
 106          uchar KeyBoard_Int_ID;          //键盘中断标志
 107          //uchar Uart_Int_ID;            //串口接收中断标志
 108          
 109          uchar KeyData;                          //键值
 110          
 111          uchar AD_Data[2];                       //A/D暂存数据
 112          
 113          uchar Timer_Int_ID;         //定时器中断标志位
 114          uchar Check;
 115          
 116          uchar Table[7]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00};                            //定义与键盘和AD有关的数据表
 117          idata unsigned char Tbak[7]={0xff,0xff,0xff,0xff,0xff,0xff,0x00};
C51 COMPILER V7.10   MAIN                                                                  08/04/2006 15:38:10 PAGE 3   

 118          
 119          uchar Rx_data[5];               //定义从中控板接收到的数据
 120          //uchar Tx_data[10];
 121          
 122          extern void Uart_Init(void);
 123          extern void ComOutChar(uchar OutData);
 124          extern unsigned char ComGetChar(); 
 125          extern void Timer0_Init(void);
 126          extern unsigned char GetTLC0832Data(uchar ucCmd);
 127          
 128          
 129          void Delay(void)
 130                  {
 131   1                      unsigned char i;
 132   1                      unsigned char j;
 133   1                      for(i = 0;i <= 200;i++)
 134   1                              for(j = 0;j <= 80;j++)
 135   1                                      {
 136   2                                              ;
 137   2                                      }
 138   1              }
 139          
 140          void Led_Display()
 141                  {
 142   1               if((Rx_data[2])==0xff)
 143   1                 {
 144   2                  state = state&0x7f; //无暗盒
 145   2                      All_p=0;
 146   2                  H2_led1=0;
 147   2                      H2_led2=0;
 148   2                  V2_led1=0;
 149   2                  V2_led2=0;
 150   2                      Cp3_led1=0;
 151   2                      Cp3_led2=0;
 152   2                      Cp3_led3=0;
 153   2                  Cp4_led1=0;
 154   2                  Cp4_led2=0;
 155   2                      Cp4_led3=0;
 156   2                      Cp4_led4=0;
 157   2      
 158   2                 } 
 159   1               else
 160   1                 {
 161   2                  if((Rx_data[2]&0x01)==0) All_p=1;
 162   2                              else   All_p=0;
 163   2                      if((Rx_data[2]&0x02)==0) H2_led1=1;
 164   2                              else   H2_led1=0;
 165   2              if((Rx_data[2]&0x04)==0) H2_led2=1;
 166   2                              else   H2_led2=0;
 167   2                      if((Rx_data[2]&0x08)==0) V2_led1=1;
 168   2                              else   V2_led1=0;
 169   2                      if((Rx_data[2]&0x10)==0) V2_led2=1;
 170   2                              else   V2_led2=0;
 171   2                      if((Rx_data[2]&0x20)==0) Cp3_led1=1;
 172   2                              else   Cp3_led1=0;
 173   2                      if((Rx_data[2]&0x40)==0) Cp3_led2=1;
 174   2                              else   Cp3_led2=0;
 175   2                      if((Rx_data[2]&0x80)==0) Cp3_led3=1;
 176   2                              else   Cp3_led3=0;
 177   2                      
 178   2                      if((Rx_data[3]&0x01)==0) Cp4_led1=1;
 179   2                              else   Cp4_led1=0;
C51 COMPILER V7.10   MAIN                                                                  08/04/2006 15:38:10 PAGE 4   

 180   2                  if((Rx_data[3]&0x02)==0) Cp4_led2=1;
 181   2                              else   Cp4_led2=0;
 182   2                      if((Rx_data[3]&0x04)==0) Cp4_led3=1;
 183   2                              else   Cp4_led3=0;
 184   2                  if((Rx_data[3]&0x08)==0) Cp4_led4=1;
 185   2                              else   Cp4_led4=0;
 186   2                 }
 187   1              }
 188          
 189          
 190          void Interrupt_Init(void)
 191                  {
 192   1                      EA = 0;               // CPU所有中断关(IE最高位MSB)
 193   1                      EX0 = 1;              // INT0中断开
 194   1                      IT0 = 1;              // INT0低电平触发(为1则为下降沿触发)
 195   1                      ES = 1;
 196   1                      ET0 = 1;
 197   1                      EA = 1;               // CPU总中断开(IE最高位MSB)
 198   1              }
 199          
 200          //void Speaker_out(void)//峰鸣器响函数
 201          //      {
 202          //              P1_4 = 1;
 203          //              Delay();
 204          //              P1_4 = 0;
 205          //      }
 206          
 207          void Int0_Int()interrupt 0 using 0
 208                  {       
 209   1                      IE0 = 0;
 210   1                      KeyBoard_Int_ID = 1;            //键盘中断标志
 211   1                      
 212   1              }
 213          
 214          void CPU_IO_Int(void) //通用IO口初始化
 215                  {
 216   1                      Speaker = 0;    //峰鸣器输出脚
 217   1                      HandGate = 0;   //脚闸输入脚
 218   1                      FootGate = 0;   //手闸输入脚

⌨️ 快捷键说明

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