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

📄 ymain.lst

📁 8051单片机的运放测试仪电子大赛程序。
💻 LST
字号:
C51 COMPILER V8.08   YMAIN                                                                 08/13/2007 11:03:18 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE YMAIN
OBJECT MODULE PLACED IN ymain.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ymain.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*8279键盘和 LED显 示程序* /         
   2          /*此程序响应8279的键盘中断,并根据按键来更新LED 显示 */
   3          
   4          #include<reg51.h>
   5          #include<absacc.h>
   6          #include<yh.h>
   7          
   8          bit int_flag=0; /*中断标志位*/
   9          uchar key_value;/*中断返回键值 */
  10          uchar js;
  11          /*共阴的七段数码管译码0 1  2    3   4    5    6    7    8   9  a   b    c   d   e    f*/
  12          uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  13          uchar code sinbo[]={0x80,0x83,0x86,0x8D,0x90,0x96,0x99,0x9C,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,
  14                                                  0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,
  15                                                  0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,
  16                                                  0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  17                                                  0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,
  18                                                  0xf1,0xef,0xee,0xec,0xeb,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xdf,0xdd,0xda,0xd8,0xd6,
  19                                                  0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,
  20                                                  0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x7c,
  21                                                  0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,
  22                                                  0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,
  23                                                  0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,
  24                                                  0x07,0x06,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  25                                                  0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,
  26                                                  0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,
  27                                                  0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,
  28                                                  0x5b,0x60,0x63,0x66,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80};
  29          
  30          
  31          
  32          
  33          ///////////////////////////////////////////////////////////////////////////////
  34          
  35          //读取键盘数据,返回当前被按下的键号     
  36          uchar keyin(void)
  37          {
  38   1              uchar i;
  39   1              COM8279=0x40;
  40   1              i=DAT8279;
  41   1              i=i&0x3f; //取键盘数据低7位
  42   1              return(i);
  43   1      }
  44          
  45          
  46          void main(void)
  47          {       
  48   1              //////////////////////////////////////////////////////////////////////////////
  49   1              //初始化单片机  
  50   1              AUXR = 0x02;/*STC单片机关内部RAM和开ALE*/
  51   1      
  52   1              delay(1000);
  53   1              //////////////////////////////////////////////////////////////////////////////
  54   1              //初始化8279
  55   1              COM8279=0xd1;//1101 0001b 清除所有显示  
C51 COMPILER V8.08   YMAIN                                                                 08/13/2007 11:03:18 PAGE 2   

  56   1              do{ACC=COM8279;}
  57   1              while(clflag==1);   //清除起来比较慢,所以一条指令执行的时间不足以完成所有清除,故需等待                  
  58   1          COM8279=0x00;                       
  59   1              DA0832=0; 
  60   1              COM8255=0x80;      //pa,pb以方式0工作,三个口都是输出 
  61   1              COM8255=0x80;
  62   1              COM8255=0x80; 
  63   1              IE=0x83;             //开中断 
  64   1      //    IE=0x81;
  65   1              TCON=0x01;                        
  66   1              TMOD=0x00;           //用定时器0,方式0  
  67   1              TH0=0x0F4;
  68   1          TL0=0x010;
  69   1          TR0=1;
  70   1              //////////////////////////////////////////////////////////////////////////////
  71   1      
  72   1          //大循环 
  73   1              while(1)
  74   1              {  
  75   2                      while(int_flag==0)  /*等待中断 */
  76   2                      {
  77   3                          //此处可填入后台程序  
  78   3                      }
  79   2                      
  80   2                      int_flag=0;
  81   2      
  82   2              //根据键值调用键盘响应函数        
  83   2                      switch(key_value)
  84   2                      {
  85   3                              case 0x00:key0();break;
  86   3                              case 0x01:key1();break;
  87   3                              case 0x02:key2();break;
  88   3                              case 0x03:key3();break;
  89   3                              case 0x08:key4();break;
  90   3                              case 0x09:key5();break;
  91   3                      
  92   3                              default:break;
  93   3                      }
  94   2              }
  95   1      }
  96          
  97          //INT0的中断服务函数   
  98          //INT0由8279在键盘按下时发出    
  99          //注意关键字interrupt
 100          void int_int0() interrupt 0 using 0
 101          {
 102   1              //设置标志,告诉主循环中断发生了   
 103   1              int_flag=1;
 104   1              //读取键值 
 105   1              key_value=keyin();
 106   1      }
 107          
 108          
 109          void DA_time0() interrupt 1 using 1
 110          {
 111   1        
 112   1        TR0=0;
 113   1        TH0=0x0F4;
 114   1        TL0=0x010;
 115   1        //DA0832 5Hz 正弦波输出                          
 116   1        DA0832=sinbo[js];
 117   1        js++;
C51 COMPILER V8.08   YMAIN                                                                 08/13/2007 11:03:18 PAGE 3   

 118   1        if(js==251)
 119   1          js=0;
 120   1        
 121   1        TR0=1;
 122   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    198    ----
   CONSTANT SIZE    =    267    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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