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

📄 cd4094.lst

📁 此程序位单片机应用程序
💻 LST
字号:
C51 COMPILER V7.50   CD4094                                                                11/15/2007 16:01:10 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE CD4094
OBJECT MODULE PLACED IN CD4094.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CD4094.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          /* 本程序意在通过串口控制4094,使八路发光管组合输出128种状态*/                                            
             -                                
   3          #include "STC89C51.h"
   4          #include "init.h"
   5          #define uch unsigned char
   6          
   7                  #define TRUE 1
   8                  #define FALSE 0 
   9                  uch key=0;
  10                  uch t;
  11                  uch pulse_num;                //脉冲计数
  12                  uch clock_level;              //时钟电平
  13                  uch CD4094_data;              //4094处理的数据
  14          
  15              void send_4094()               /*自变量可否为位。若可以,就可写个通用函数*/
  16                  {
  17   1              uch z;  
  18   1              if (pulse_num<8)
  19   1                      {
  20   2                              if (clock_level==0)
  21   2                              {
  22   3                                  z=CD4094_data&(0x80>>(pulse_num));//由低向高产生数据,&位与,z是字节数,不是位数
  23   3                                      if (z>=1)
  24   3                                  //if (CD4094_data&(0x01<<pulse_num)==1)
  25   3                                      POWER_DATE=1;
  26   3                                      else
  27   3                                      POWER_DATE=0;
  28   3      
  29   3                                      POWER_CLOCK=1;
  30   3                                      clock_level=1;
  31   3                                      pulse_num++;
  32   3                              
  33   3                          }
  34   2                              else if(clock_level==1)
  35   2                              {
  36   3                                      
  37   3                                      POWER_DATE=0;
  38   3                                      POWER_CLOCK=0;
  39   3                                      clock_level=0;
  40   3      
  41   3                              }
  42   2                      }
  43   1              else
  44   1                      {
  45   2                      pulse_num=0;
  46   2                      POWER_CS=1;
  47   2                      POWER_CS=0;
  48   2                      CD4094_data=0;
  49   2                  TR0=0;   //定时器计数条件3-1
  50   2              ET0=0;   //定时器中断条件3-3,开启定时器0中断
  51   2                      key=0;
  52   2                      }
  53   1              }
  54                  
C51 COMPILER V7.50   CD4094                                                                11/15/2007 16:01:10 PAGE 2   

  55              
  56              void timer0() interrupt 1  //定时器0中断函数,在允许中断情况下,定时器溢出时产生动作。
  57                  {
  58   1                      if (CD4094_data!=0)
  59   1                      send_4094();
  60   1              }
  61          
  62                  void init()
  63                  {
  64   1      
  65   1                      POWER_CS=0;      //
  66   1                      POWER_DATE=0;
  67   1                      POWER_CLOCK=0;
  68   1      
  69   1      ///////////////////////////////////
  70   1                      TMOD=0X22;  //T1,T2工作于方式2自动重装8位计数器
  71   1                      TL1=0xfd;   
  72   1                      TH1=0xfd;
  73   1                      SCON=0x50;  //01010000,方式一,允许接收
  74   1                      PCON=0x00; 
  75   1                      TR1=1;      //允许T1运行
  76   1      ///////////////////////////////////////////
  77   1                      TH0=0xCD;//50ms定时cd
  78   1                      TL0=0xCD;//0XFF-0xCD=0x32=50,000
  79   1                      EA=1;    //定时器中断条件3-2
  80   1              }
  81                  
  82              void main()
  83                  {
  84   1                  init(); 
  85   1                      while (1)
  86   1                      {
  87   2                              if (RI==1)
  88   2                              {
  89   3                                      CD4094_data=SBUF;
  90   3                                      RI=0;
  91   3                                      if (CD4094_data!=0)
  92   3                                      {
  93   4                                  TR0=1;   //定时器计数条件3-1
  94   4                              ET0=1;   //定时器中断条件3-3,开启定时器0中断
  95   4                                      }
  96   3                                      else
  97   3                                      {
  98   4                                  TR0=0;   //定时器计数条件3-1
  99   4                              ET0=0;   //定时器中断条件3-3,开启定时器0中断                    
 100   4                                      }
 101   3                              }
 102   2                      }
 103   1              }


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