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

📄 wled0.lst

📁 c8051f020 的扩展8255驱动数码管显示 同样是keilc啊
💻 LST
字号:
C51 COMPILER V7.05   WLED0                                                                 02/16/2006 11:55:35 PAGE 1   


C51 COMPILER V7.05, COMPILATION OF MODULE WLED0
OBJECT MODULE PLACED IN WLED0.OBJ
COMPILER INVOKED BY: C:\SiLabs\MCU\IDEfiles\C51\BIN\C51.exe WLED0.C DB OE

stmt level    source

   1          //参考程序B:WLED0.C程序功能: 数码管将轮流点亮,显示从"0"到"F"
   2          #include <c8051f020.h>                    
   3          #define SYSCLK 2000000                    //系统工作频率
   4          #define PORTA           0x8000      // 8255  A口地址
   5          #define PORTB           0x8001      // 8255  B口地址
   6          #define PORTC           0x8002      // 8255  C口地址
   7          #define PORTCON         0x8003      // 8255  控制口地址
   8          void PORT_Init (void);
   9          void main (void) 
  10          {
  11   1      unsigned int i;
  12   1      unsigned char  k;
  13   1      char j;
  14   1      unsigned char xdata * Pointm;
  15   1      unsigned char code F7SEG[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,
  16   1      0x39,0x5e,0x79,0x71};
  17   1              WDTCN = 0xde;          //禁止看门狗定时器
  18   1              WDTCN = 0xad;
  19   1              PORT_Init ();
  20   1              Pointm=PORTCON;
  21   1              *Pointm=0x80;           //8255初始化,设定B口输出,C口输出,A口不用
  22   1      while(1)                //循环显示
  23   1          {
  24   2              for(j=0;j<16;j++)    //依次显示"0"-----"F",共16个数字
  25   2      {
  26   3              k=F7SEG[j];              // 查表,得到字形码数值存放在变量K中
  27   3          //k=0x3f;
  28   3                                                                                
  29   3              Pointm=PORTB;          // B口存放字位码
  30   3              *Pointm=0x01;          //从左边第一位数码管开始显示数字
  31   3              Pointm=PORTC;          //C口存放字形码
  32   3          *Pointm=k;                 //显示K中存放的字形码
  33   3              for(i=0;i<=32000;i++);      //延时
  34   3          Pointm=PORTB;     
  35   3              *Pointm=0x02;                //左边第二位数码管开始显示数字
  36   3              for(i=0;i<=32000;i++);
  37   3              Pointm=PORTB;
  38   3              *Pointm=0x04;              //左边第三位数码管开始显示数字
  39   3              for(i=0;i<=32000;i++);
  40   3              Pointm=PORTB;
  41   3              *Pointm=0x08;               //左边第四位数码管开始显示数字
  42   3              for(i=0;i<=32000;i++);
  43   3              Pointm=PORTB;
  44   3              *Pointm=0x10;               //左边第五位数码管开始显示数字
  45   3              for(i=0;i<=32000;i++);
  46   3              Pointm=PORTB;
  47   3              *Pointm=0x20;                //左边第六位数码管开始显示数字
  48   3              for(i=0;i<=32000;i++);
  49   3              }
  50   2        }
  51   1      }
  52          void PORT_Init (void)
  53          {
  54   1         EMI0CF |= 0x2c;      /*EMIF工作在地址/数据复用方式,只用外部存储器,ALE高*/
  55   1      /*低脉宽占1个SYSCLK周期*/
C51 COMPILER V7.05   WLED0                                                                 02/16/2006 11:55:35 PAGE 2   

  56   1         EMI0TC |= 0x6d;              /*地址建立/保持时间占1个SYSCLK周期,/WR和/RD占12个SYSCLK周期*/
  57   1         P74OUT=0x3f;         /*P7为漏极开路,P4,P5,P6为推拉方式*/
  58   1      }
  59          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    183    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   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 + -