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

📄 addsub.lst

📁 单片机开发板源程序适合初学者 第二部分DA转换输出
💻 LST
字号:
C51 COMPILER V8.06   ADDSUB                                                                04/10/2008 09:39:19 PAGE 1   


C51 COMPILER V8.06, COMPILATION OF MODULE ADDSUB
OBJECT MODULE PLACED IN ADDSUB.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ADDSUB.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*实验名称:按加减键实现内部加减 0.01
   2            功能:数码显示0.20---2.00
   3            作者:http://www.mcuprog.com
   4                  05-02-01
   5          */
   6          #include <reg51.h>
   7          //LCD的口线
   8          sbit E=P2^2;
   9          sbit RW=P2^1;
  10          sbit RS=P2^0;   
  11          
  12          unsigned char dpbl,ledbai,ledshi,ledge,keytime;
  13          unsigned char bdata myflag;
  14          sbit keybit = myflag^0;
  15          
  16          void time0(void);
  17          void keyscan(void);
  18          void Delay(unsigned int t);
  19          void SendCommandByte(unsigned char ch);
  20          void SendDataByte(unsigned char ch);
  21          void InitLcd(void);
  22          void dispdpbl(void);
  23          
  24          void main(void)
  25          {
  26   1              InitLcd();
  27   1              myflag=0x00;
  28   1              dpbl=0;
  29   1              keytime=4;              //20MS扫一次按键
  30   1              SendCommandByte(0x80);
  31   1              Delay(2);
  32   1              SendDataByte('S');
  33   1              SendDataByte('U');
  34   1              SendDataByte('M');
  35   1              SendDataByte(':');
  36   1              TH0=0xee;               //定时5MS
  37   1              TL0=0x00;
  38   1              TMOD=0x01;
  39   1              TR0=1;
  40   1              IT0=1;
  41   1              IE=0x83;
  42   1              while(1)
  43   1              {}      
  44   1      }       
  45          
  46          void int0_1(void) interrupt 0
  47          {
  48   1              dpbl++;                         //每进一次下降沿中断,变量计数加1
  49   1      }
  50          void time0(void) interrupt 1
  51          {
  52   1              TH0=0xee;
  53   1              TL0=0x00;
  54   1              if(keytime--==0)
  55   1              {keytime=0x04;P1=0xff;keyscan();
C51 COMPILER V8.06   ADDSUB                                                                04/10/2008 09:39:19 PAGE 2   

  56   2              ledbai=(dpbl/100)|0x30;
  57   2              ledshi=((dpbl%100)/10)|0x30;
  58   2              ledge=(dpbl%10)|0x30;
  59   2              dispdpbl();
  60   2              }
  61   1      }  
  62          
  63          void keyscan(void)
  64          {
  65   1              if(P1==0xfe)
  66   1              {
  67   2                      if(keybit==0)
  68   2                      {keybit=1;dpbl=0;}
  69   2              }
  70   1              else
  71   1              {
  72   2                      keybit=0;
  73   2              }
  74   1              P1=0xff;
  75   1      }
  76          
  77          void Delay(unsigned int t)   // delay 40us
  78          {
  79   1       for(;t!=0;t--) ;
  80   1      }
  81          //=============================================
  82          void SendCommandByte(unsigned char ch)
  83          {
  84   1         RS=0;
  85   1         RW=0;
  86   1         P0=ch;
  87   1         E=1;
  88   1          Delay(1);
  89   1         E=0;
  90   1         Delay(100);  //delay 40us
  91   1      }
  92          //-------------------------------------------------------
  93          void SendDataByte(unsigned char ch)
  94          {  RS=1;
  95   1         RW=0;
  96   1         P0=ch;
  97   1         E=1;
  98   1             Delay(1);
  99   1         E=0;
 100   1         Delay(100); //delay 40us
 101   1      }
 102          //-------------------------------------------------
 103          void InitLcd(void)
 104          {SendCommandByte(0x30);
 105   1       SendCommandByte(0x30);
 106   1       SendCommandByte(0x30);
 107   1       SendCommandByte(0x38); //设置工作方式
 108   1       SendCommandByte(0x0c); //显示状态设置
 109   1       SendCommandByte(0x01); //清屏
 110   1       SendCommandByte(0x06); //输入方式设置
 111   1      }
 112          
 113          void dispdpbl(void)
 114          {
 115   1              SendCommandByte(0x85);
 116   1              SendDataByte(ledbai);
 117   1              SendDataByte(ledshi);
C51 COMPILER V8.06   ADDSUB                                                                04/10/2008 09:39:19 PAGE 3   

 118   1              SendDataByte(ledge);
 119   1              
 120   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    309    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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