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

📄 cd4094.lst

📁 ch451键盘LED管理芯片的驱动程序,很好用的,设计很标准的代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V4.01,  CD4094                                                                20/08/04  10:59:13  PAGE 1   


DOS C51 COMPILER V4.01, COMPILATION OF MODULE CD4094
OBJECT MODULE PLACED IN D:\YANTEST\NEWREAD\CH451S\CD4094.OBJ
COMPILER INVOKED BY: D:\WAVE6000\COMP51\C51.EXE D:\YANTEST\NEWREAD\CH451S\CD4094.C DB SB OE

stmt level    source

   1          /*
   2          *****************************
   3          **filename:CD4094.C
   4          *****************************
   5          */
   6          #include "CD4094.h"
   7          #include "hardware.h"
   8          
   9          
  10          static unsigned char Value1_4094=0xff;
  11          static unsigned char Value2_4094=0xff;
  12          
  13          void Set1BitMask4094(unsigned char BitMask);
  14          void Clear1BitMask4094(unsigned char BitMask);
  15          
  16          void Set2BitMask4094(unsigned char BitMask);
  17          void Clear2BitMask4094(unsigned char BitMask);
  18          
  19          /////////////////////////////////
  20          //4094_SPI WRITE
  21          void Write4094(unsigned char ch)
  22          {
  23   1      	unsigned char xdata i;
  24   1      
  25   1              WatchDog();
  26   1      
  27   1              NOP;NOP;NOP;
  28   1              NOP;NOP;NOP;
  29   1      	for(i=0;i<8;i++)
  30   1      	{
  31   2                      WatchDog();
  32   2      
  33   2      		if(ch&0x80)Set573Bit(SI_4094);  //SI_4094=1;
  34   2      		else	   Clear573Bit(SI_4094);//SI_4094=0;
  35   2      		NOP;NOP;NOP;
  36   2                      NOP;NOP;NOP;
  37   2      		Clear573Bit(SCK_4094);          //SCK_4094=0;
  38   2                      NOP;NOP;NOP;
  39   2                      NOP;NOP;NOP;
  40   2      		Set573Bit(SCK_4094);            //SCK_4094=1;
  41   2                      ch = (ch<<1);
  42   2                      NOP;NOP;NOP;
  43   2                      NOP;NOP;NOP;
  44   2      	}
  45   1              NOP;NOP;NOP;
  46   1              NOP;NOP;NOP;
  47   1      }
  48          
  49          
  50          void Set1BitMask4094(unsigned char BitMask)
  51          {
  52   1              WatchDog();
  53   1      
  54   1              HC138_YN=0;
  55   1      
  56   1      	Value1_4094|=BitMask;
  57   1      	Write4094(Value1_4094);
  58   1      
  59   1      	STB1_CD4094=1;
C51 COMPILER V4.01,  CD4094                                                                20/08/04  10:59:13  PAGE 2   

  60   1      	NOP;NOP;
  61   1      }
  62          
  63          void Clear1BitMask4094(unsigned char BitMask)
  64          {
  65   1              WatchDog();
  66   1      
  67   1              HC138_YN=0;
  68   1      
  69   1      	Value1_4094&=(~BitMask);
  70   1      	Write4094(Value1_4094);
  71   1      
  72   1      	STB1_CD4094=1;
  73   1      	NOP;NOP;
  74   1      }
  75          
  76          void Set2BitMask4094(unsigned char BitMask)
  77          {
  78   1              WatchDog();
  79   1      
  80   1              HC138_YN=0;
  81   1      
  82   1      	Value2_4094|=BitMask;
  83   1      	Write4094(Value2_4094);
  84   1      
  85   1      	STB2_CD4094=1;
  86   1      	NOP;NOP;
  87   1      }
  88          
  89          void Clear2BitMask4094(unsigned char BitMask)
  90          {
  91   1              WatchDog();
  92   1      
  93   1              HC138_YN=0;
  94   1      
  95   1      	Value2_4094&=(~BitMask);
  96   1      	Write4094(Value2_4094);
  97   1      
  98   1      	STB2_CD4094=1;
  99   1      	NOP;NOP;
 100   1      }
 101          
 102          
 103          void SelectPlayAddr(unsigned char addr)
 104          {
 105   1              WatchDog();
 106   1      
 107   1              HC138_YN=0;
 108   1      
 109   1      	Write4094(addr|0X01);
 110   1      
 111   1      	STB2_CD4094=1;
 112   1      	NOP;NOP;
 113   1      }
 114          
 115          
 116          void SelectChip(unsigned char ch)
 117          {
 118   1              WatchDog();
 119   1      
 120   1      	switch(ch)
 121   1      	{
 122   2      		case SEL_X5045 :
 123   2                              Set573Bit(AT45LIB_CS|AT45REC_CS);
 124   2      			Set1BitMask4094(CH451_CS);
 125   2      			Clear1BitMask4094(DS1302_CS);
C51 COMPILER V4.01,  CD4094                                                                20/08/04  10:59:13  PAGE 3   

 126   2                              X5045_CS=0;
 127   2      			break;
 128   2      		case SEL_AT45LIB:
 129   2                              X5045_CS=1;
 130   2                              Set573Bit(AT45REC_CS);
 131   2      			Set1BitMask4094(CH451_CS);
 132   2      			Clear1BitMask4094(DS1302_CS);
 133   2                              Clear573Bit(AT45LIB_CS);
 134   2      			break;
 135   2                      case SEL_AT45REC:
 136   2                              X5045_CS=1;
 137   2                              Set573Bit(AT45LIB_CS);
 138   2      			Set1BitMask4094(CH451_CS);
 139   2      			Clear1BitMask4094(DS1302_CS);
 140   2                              Clear573Bit(AT45REC_CS);
 141   2      			break;
 142   2      		case SEL_CH451:
 143   2                              X5045_CS=1;
 144   2                              Set573Bit(AT45LIB_CS|AT45REC_CS);
 145   2      			Clear1BitMask4094(CH451_CS|DS1302_CS);
 146   2      			break;
 147   2                      case SEL_DS1302:
 148   2                              X5045_CS=1;
 149   2                              Set573Bit(AT45LIB_CS|AT45REC_CS);
 150   2      			Set1BitMask4094(CH451_CS);
 151   2      			Set1BitMask4094(DS1302_CS);
 152   2      			break;
 153   2      		case SEL_NULL:
 154   2                              X5045_CS=1;
 155   2                              Set573Bit(AT45LIB_CS|AT45REC_CS);
 156   2      			Set1BitMask4094(CH451_CS);
 157   2                              Clear1BitMask4094(DS1302_CS);
 158   2      			break;
 159   2      		default:
 160   2                              X5045_CS=1;
 161   2                              Set573Bit(AT45LIB_CS|AT45REC_CS);
 162   2      			Set1BitMask4094(CH451_CS);
 163   2                              Clear1BitMask4094(DS1302_CS);

⌨️ 快捷键说明

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