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

📄 cs5522.lst

📁 我同事做的一个CS5522的51单片机的驱动,用的是89S52,开发环境是KEIL C
💻 LST
字号:
C51 COMPILER V6.12  CS5522                                                                 12/31/2003 17:28:30 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE CS5522
OBJECT MODULE PLACED IN .\cs5522.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE .\cs5522.c ROM(SMALL) DEBUG OBJECTEXTEND SRC(.\cs5522.SRC) 

stmt level    source

   1          #include<reg52.h>
   2          //***********************************
   3          #define   unch   unsigned char
   4          //***********************************
   5          sbit cs=P2^1;    //和cs5522有关的端口
   6          sbit sdi=P2^2;
   7          sbit sdo=P2^0;
   8          sbit sclk=P2^3;
   9          //************************************
  10          extern unsigned char data t_d[8];    //当前显示数的BCD码。
  11          void eight_dis(void);
  12          //*************************************
  13          extern unsigned char bdata  main_temp;  //全局缓冲变量
  14          extern bit main_temp_7;
  15          extern unsigned char dis_data[3];    //cs5522读出数据的暂时存放处
  16          //***********************************
  17          void eight_dis(void);
  18          void bcd_change(void);
  19          //***********************************
  20          //向CS5522发送一个字节
  21          void Se_Cs_W(unsigned char Cs_Word)
  22              {   
  23   1              unsigned char data Cs_i=8; 		  
  24   1              main_temp=Cs_Word;    	  
  25   1              while(Cs_i)
  26   1      	       {
  27   2      	          sdi=main_temp_7; 
  28   2                    sclk=1;
  29   2      			  main_temp<<=1;
  30   2      			  sclk=0;         
  31   2      			  Cs_i--;                     
  32   2      	          
  33   2      	        }
  34   1          }
  35          //*****************************************		
  36          //***********************************
  37          //向CS5522读一个字节。
  38          unsigned char ReadW(void)
  39                        {
  40   1      				     unsigned char  Read_i;                
  41   1      					  main_temp=0;
  42   1      				      Read_i=8;				    
  43   1      				     while(Read_i)
  44   1      				           {   
  45   2      					     
  46   2                                       main_temp>>=1;    						  
  47   2      						          main_temp_7=sdo;						          						  
  48   2      						          sclk=1;					      
  49   2      						          sclk=0;
  50   2      						          Read_i--;
  51   2      			              						   
  52   2      				           }
  53   1      				    return(main_temp); 		 
  54   1      				 
  55   1      				 
C51 COMPILER V6.12  CS5522                                                                 12/31/2003 17:28:30 PAGE 2   

  56   1      				 }	  	
  57          	
  58          	
  59          //***********************************
  60          //写1字节读3字节。
  61            void Sen_Rec(unsigned char Sen_Rec_tem)
  62                  { 
  63   1      		  
  64   1      	       cs=0;		
  65   1      		    Se_Cs_W(Sen_Rec_tem);
  66   1      	       dis_data[2]=ReadW();
  67   1      	       dis_data[1]=ReadW();
  68   1      	       dis_data[0]=ReadW();
  69   1      		    cs=1;
  70   1               }
  71          //************************************
  72          //直接写4字节。
  73          void F_Word(unch temp1,unch temp2,unch temp3,unch temp4)
  74                  { 
  75   1      		   cs=0;
  76   1      		   Se_Cs_W(temp1);
  77   1      		   Se_Cs_W(temp2);
  78   1      	      Se_Cs_W(temp3);
  79   1      	      Se_Cs_W(temp4);
  80   1      		   cs=1;	
  81   1      		
  82   1      		} 	 
  83          		
  84          
  85          //***********************************
  86          //起动串口。
  87           void initserial(void)
  88              { 
  89   1      	    unsigned char data Init_Tem=15;	  
  90   1      	    cs=0;	  
  91   1      	    while(Init_Tem)
  92   1      	      {
  93   2      		    Se_Cs_W(0xff);
  94   2      			 Init_Tem--;		  
  95   2      		   }
  96   1      	    Se_Cs_W(0xfe);	
  97   1      	    cs=1;
  98   1      	}
  99          	
 100          
 101          
 102          
 103          //***************************************************
 104          
 105          //配置CS5522
 106          void InitCs(void)
 107                  {
 108   1      		   unsigned char i,j;     
 109   1      //===================设置配置寄存器=======================
 110   1      //配置RS位寄存器写一 
 111   1             
 112   1              F_Word(0x03,0x00,0x00,0x80);    //直接写4字节?
 113   1      //读配置寄存器   		
 114   1        	
 115   1      //*************************************     
 116   1      //判断RV是否为“1若RV为1,向RS写0
 117   1         /*     do 
C51 COMPILER V6.12  CS5522                                                                 12/31/2003 17:28:30 PAGE 3   

 118   1                {  
 119   1      			   
 120   1      		//      F_Word(0x03,0x00,0x00,0x80);    //直接写4字节.
 121   1      //读配置寄存器		 
 122   1      	  	
 123   1                   Sen_Rec(0x0b);  }  //写1字节读3字节。	
 124   1      	    while(~dis_data[0]&0x40);  */
 125   1      //*************************************
 126   1      		 i=0xff;
 127   1      		 while(i)
 128   1      		      { 
 129   2      				   j=0xff;
 130   2      				   while(j)
 131   2      					   {j--;}
 132   2      					i--;
 133   2      				
 134   2      				}
 135   1              Sen_Rec(0x0b);
 136   1      		  bcd_change();
 137   1              eight_dis();
 138   1      		  while(1)
 139   1      		    {}  
 140   1      /*	  i=0xff;
 141   1      		  while(i)
 142   1      		      { 
 143   1      				   j=0xff;
 144   1      				   while(j)
 145   1      					   {j--;}
 146   1      					i--;
 147   1      				
 148   1      				}
 149   1              Sen_Rec(0x0b);                  //写1字节读3字节?  
 150   1              bcd_change();
 151   1              eight_dis();
 152   1      		  while(1)
 153   1      		    {}   */
 154   1      //************************************** 
 155   1      //写配置寄存器。         
 156   1      	   F_Word(0x03,0x00,0x14,0x00);    //直接写4字节?
 157   1      //****************************************
 158   1      //设置通道寄存器      
 159   1      	   F_Word(0x05,0x08,0x90,0x89);      
 160   1      //****************************************
 161   1               		 
 162   1      		 
 163   1      		 
 164   1      		 
 165   1      		 
 166   1      }
 167          	
 168          	
 169          
 170          
 171          				


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    130    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       4
C51 COMPILER V6.12  CS5522                                                                 12/31/2003 17:28:30 PAGE 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 + -