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

📄 main.lst

📁 本源码程序采用用51单片机AT89C55分控采用软件模拟的方式输出SPI信号! 控制16段LED护栏管的单色跳变
💻 LST
字号:
C51 COMPILER V6.12  MAIN                                                                   11/01/2008 12:29:30 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*  本程序要实现以下功能:  
   2          *          1)、可控24路跳变点变化(即每点刷新频率《10次)                           *
   3          *          2)、自变与受控变化                                                                  *
   4          *          3)、自变模式可以从eeprom中获取自变模式组合                                          *
   5          *          4)、可以通过通讯来改变eeprom里面的变化。进而达到改变外部效果的目的                  *         
             -       
   6          *          5)、可以在直接点控制和串行移位控制两种模式中选择                                    *   
   7          */
   8          
   9          //特别针对义乌项目修改,目标:标准化
  10          //可以控制64个全彩像素点跳变
  11          //可以分别依照指令控制8、16、24、32、40、48、56、64个全彩像素点跳变
  12           
  13          
  14          
  15          #include <at89x55.h>
  16          #include <stdlib.h>
  17          #include <eeaddr.h>
  18          #include <intrins.h>
  19          
  20          
  21          
  22          //*************宏定义****************
  23          #define uchar unsigned char
  24          #define uint  unsigned int
  25          #define YES   1
  26          #define NO    0
  27          #define TRUE  1
  28          #define FALSE 0
  29          
  30          
  31          #define      OFF     0
  32          #define        ON    1
  33          /*
  34          //#define Write2EEPROM(x,y,z) EE_W_Addr((x));\
  35              					//	Write_N_Bytes((y),(z));\
  36              					//	IIC_Stop(); 
  37          //#define ReadfromEEPROM(x,y,z) EE_W_Addr((x));\
  38           //   						  EE_RNB((z),(y)); 
  39          
  40           */
  41          #define EE_R_ADDR 0xA1
  42          #define EE_W_ADDR 0xA0
  43          #define DELAY_TIME 20
  44          //********硬件接口的宏定义*************
  45          #define RS485_ENABLE    P3_4
  46          #define SDA             P3_3
  47          #define SCL             P3_2
  48          sbit P3_4=P3^4; 
  49          sbit P3_2=P3^2; 
  50          sbit P3_3=P3^3;
  51          sbit P1_0=P1^0;
  52          sbit P1_1=P1^1; 
  53          sfr   WDREST = 0xa6; 
  54          
C51 COMPILER V6.12  MAIN                                                                   11/01/2008 12:29:30 PAGE 2   

  55          //*************一些通信协议的宏定义*****
  56          #define  HEAD1  0xeb
  57          #define  HEAD2  0x90 
  58          #define  Recv_OverTime    500
  59          //串行移位转并行输出的操作函数 用到的端口定义
  60          #define SCLK595       P1_1
  61          #define SDATA595      P1_0
  62          #define SLATCH595     P1_2
  63          
  64          //#define JUMP_NUMBER_MAX     735   
  65          
  66          uchar   idata  ucdot[24],uctemp[24],tt;
  67          uchar   Dimming_Count,j;
  68          bit     Is_change=0;
  69          
  70          //uint   LightNumber=735;//led 总个数735
  71          uint   JUMP_NUMBER_MAX=735;//led 总个数735
  72          
  73          //************全局变量定义***************
  74          // 1,一些中断的全局变量定义
  75          uint  uc1fz ;
  76          uint   ut10msTimer,ut10sTimer,ut20s;      
  77          //2,通信的一些全局变量定义
  78          uint   SelfAdd;
  79          uchar  RECV_Point;//接收数据指针
  80          uchar  RecvBuf[8];//接收数据缓冲区
  81          uchar  Recv_Wait_Time;//接收等待计时
  82          uint   Recv_DataLeng;
  83          //****************位变量定义******
  84          bdata   uchar  Flag;
  85          sbit   Recv_WaitTime_Flag=Flag^0;
  86          sbit   Recv_OverTime_Flag=Flag^1;
  87          sbit   Recv_LightData_Flag=Flag^2; 
  88          sbit   NO_RecvFlag=Flag^3; 
  89          bdata   unsigned char  road0,road1,road2;//24路
  90          
  91          //3,PWM的一些变量定义
  92          uchar PWMcount;
  93          uchar Light_Point;
  94          uint  LightCount;//灯的个数的加数器
  95          uchar LightData[24];
  96           
  97          
  98          //******函数定义************************
  99          void SYS_Init(void);
 100          void SCON_Init(void);
 101          void REST_WDT(void); 
 102          void RECV_Deal(void);
 103          void Clear_RecvBuf(void);
 104          void Com_Deal();
 105          
 106          void Delay(unsigned int time);
 107          bit EE_W_Addr(unsigned int ui_Addr_Value);
 108          bit EE_RNB(unsigned char n,unsigned char *buffer);
 109          bit Write_N_Bytes(unsigned char *buffer,unsigned char n);
 110          void IIC_Stop();
 111          static bit Read_N_Bytes(unsigned char n,unsigned char *buffer);
 112          static void IIC_Start(); 
 113          static void SEND_0(void); 
 114          static void SEND_1(void); 
 115          static void IIC_Byte_W(unsigned char b);
 116          static unsigned char IIC_Byte_R(); 
C51 COMPILER V6.12  MAIN                                                                   11/01/2008 12:29:30 PAGE 3   

 117          static bit IIC_ACK();
 118          void  COM_Jump(void);
 119          void Jump_mode1();//
 120          void Jump_mode2();
 121          void Jump_mode3();
 122          void Jump_mode4();
 123          void  mini_led_red_full_on(void);//小功率红色整体亮
 124          void  clear_all(void);
 125          
 126          void clr(void);
 127          void tb_red(void);//红色整体亮
 128          void tb_green(void);//绿色整体亮
 129          void tb_blue(void);//蓝色整体亮
 130          void tb_red_green(void);//跳变红绿整体亮
 131          void tb_red_blue(void);//跳变红蓝整体亮
 132          void  tb_green_blue(void);//跳变绿蓝整体亮
 133          
 134          void  pd_red(void);//红色跑动效果
 135          void  pd_green(void);//绿色跑动效果
 136          void  pd_blue(void);//蓝色跑动效果
 137          void  pd_red_green(void);//红绿跑动效果
 138          void  pd_red_blue(void);//红蓝跑动效果
 139          void  pd_green_blue(void);//绿蓝跑动效果
 140          
 141          void  seven_color_full(void);//全彩跑动效果
 142          
 143          
 144          
 145          /*************
 146          模式一	小功率线光源整体单色、整体七彩变换、七彩跑动变换								
 147          模式二	大功率洗墙光源整体单色、整体七彩变换、七彩跑动变换								
 148          模式三	小功率线光源和大功率洗墙光源同步整体单色、同步整体七彩变换、七彩跑动变换								
 149          模式四	小功率线光源和大功率洗墙光源间隔整体单色、间隔整体七彩变换、间隔七彩跑动变换								
 150          */
 151          
 152          void Delay1(unsigned int time);
 153          void Delay2(unsigned int time); 
 154          void Delay3(unsigned int time);//七彩追逐间隔延时 
 155          //void ShiftOutput( uchar Ucdata0,uchar Ucdata1,uchar Ucdata2);     //FOR  B //串行移位转并行输出的操作函

⌨️ 快捷键说明

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