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

📄 main.lst

📁 十几个proteus的仿真实例
💻 LST
字号:
C51 COMPILER V8.02   MAIN                                                                  01/04/2007 15:44:40 PAGE 1   


C51 COMPILER V8.02, 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          #include <regx52.h>
   2          #include <stdio.h>
   3          #include<intrins.h>
   4          #define uchar unsigned char
   5          #define uint unsigned int
   6          void send(uchar outdata);
   7          void write(uchar addr1,uchar num1,uchar addr2,uchar num2);
   8          void init();
   9          sbit din=P2^0;
  10          sbit load=P2^1;
  11          sbit clk=P2^2; 
  12          //uchar codeseg[10]={0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b};
  13          void main()
  14          {
  15   1       write(0x0f,0x01,0x0f,0x01);
  16   1        _nop_();
  17   1        _nop_();
  18   1        _nop_();
  19   1        _nop_();
  20   1       write(0x0f,0x00,0x0f,0x00); //测试显示
  21   1       init();     //max7219初始化
  22   1       while(1)
  23   1       {
  24   2        write(0x01,1,0x00,0);//先送位,再送段/先发送给第一片 
  25   2        write(0x02,2,0x02,2);
  26   2        write(0x03,3,0x03,3);
  27   2        write(0x04,4,0x04,4);
  28   2        write(0x05,5,0x05,5);
  29   2        write(0x06,6,0x06,6);
  30   2        write(0x07,7,0x07,7);
  31   2        write(0x08,8,0x08,8);
  32   2       }
  33   1      }
  34          
  35          void init()
  36          {
  37   1       write(0x00,0x01,0x00,0x00);  //无效
  38   1       write(0x09,0xff,0x09,0xff);  //设置译码方式,使用bcd译码
  39   1       write(0x0a,0x0a,0x0a,0x0a);  //设置亮度
  40   1       write(0x0b,0x07,0x0b,0x07);  //设置扫描的位数
  41   1       write(0x0c,0x01,0x0c,0x01);  //设置待机方式
  42   1       } //先设置后面一片的工作方式,在设置前面一片的工作方式
  43          void write(uchar addr1,uchar num1,uchar addr2,uchar num2)
  44          {
  45   1        load=0;       //当LOAD为低电平时,芯片接收来自DIN的数据,接收完毕,
  46   1        _nop_();
  47   1        send(addr1);
  48   1         _nop_();
  49   1        send(num1);
  50   1        _nop_();
  51   1        clk=1;
  52   1        _nop_();
  53   1        clk=0;     //从DIN输入的数据经过16.5个CLK脉冲后移到DOUT引脚上。
  54   1                   //所以发完16个数据后必须加一个脉冲,否则数据传不到第二片
  55   1        send(addr2);
C51 COMPILER V8.02   MAIN                                                                  01/04/2007 15:44:40 PAGE 2   

  56   1        _nop_();
  57   1        send(num2);
  58   1        load=1;   //LOAD回到高电平时,接收的数据将被锁定
  59   1      }
  60          void send(uchar outdata)        //写串行数据子程序
  61          { uchar i,temp;
  62   1        for(i=0;i<8;i++)
  63   1        {
  64   2          temp=outdata&0x80;
  65   2          outdata=outdata<<1;
  66   2      
  67   2              if(temp==0x80)
  68   2               {
  69   3                 clk=1;
  70   3                 din=1;
  71   3                 _nop_();
  72   3                 clk=0;        //提供上升沿
  73   3                 }
  74   2              else
  75   2               {
  76   3                 clk=1;
  77   3                 din=0;
  78   3                 _nop_();
  79   3                 clk=0;        //提供上升沿
  80   3                 }
  81   2        }
  82   1      
  83   1      }


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