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

📄 pcf8576d.lst

📁 DS18B20用来测温度十分方便
💻 LST
字号:
C51 COMPILER V3.96,  SN-83203013  PCF8576D                                                 09/12/05  17:49:31  PAGE 1   


DOS C51 COMPILER V3.96, COMPILATION OF MODULE PCF8576D
OBJECT MODULE PLACED IN .\OUT\PCF8576D.OBJ
COMPILER INVOKED BY: C:\C51\BIN\C51.EXE PCF8576D.C-CODE-DEBUG-SMALL-OBJECTEXTEND-OJ(.\OUT\PCF8576D.OBJ) 

stmt level    source

   1          //***********************************************************************
   2          //FILE:	pcf8576d.c
   3          //功能:	不同模式下,LCD的显示
   4          //***********************************************************************
   5          #include"main.h"
   6          #include"I2C.h"
   7          #include"pcf8576d.h"
   8          //***********************************************************************
   9          
  10          uchar DispBuff[6]={0,0,0,0,0,0};				//显示缓冲区
  11          //extern int Humi;
  12          
  13          /*************************************
  14          名称:  DecodeTab[10]
  15          功能:  LCD上的8段译码表
  16          *************************************/
  17          uchar code DecodeTab[10]=						
  18          {	
  19          	0xeb,0x60,0xc7,0xe5,0x6c,					//"0"到"4"
  20          	0xad,0xaf,0xe0,0xef,0xed					//"5"到"9"
  21          };
  22          
  23          
  24          /*************************************
  25          名称:  PCF8576Disp
  26          功能:  显示函数
  27          *************************************/
  28          void  PCF8576Disp()								
  29          {
  30   1      	ISendByte(PCF8576,0x60);					    //选中PCF8576D
  31   1      	ISendStr(PCF8576,0,DispBuff,6);				//将缓冲区的数据发送到8576
  32   1      }
  33          
  34          /*************************************
  35          名称:  PCF8576Temp
  36          功能:  温度显示函数
  37          *************************************/
  38          void PCF8576Temp()								     
  39          {   
  40   1       int i=Temp;
  41   1        if(i>=0)                                 //判断当前温度是零上还是零下
  42   1           {
  43   2          	 DispBuff[0]=0;								          
  44   2           }
  45   1        else
  46   1           {
  47   2             DispBuff[0]=0x04;	                 //04显示-
  48   2             i=-i;
  49   2           } 
  50   1        DispBuff[1]=DecodeTab[(i/100)];	         //将湿度整数部分译码写入缓冲       
  51   1      	DispBuff[2]=DecodeTab[(i/10)%10]|DPPic;  //显示"."(DP)
  52   1      	DispBuff[3]=DecodeTab[i%10];             //显示小数部分
  53   1      	DispBuff[4]=0;								           //第五个字节为"0",不显示
  54   1        DispBuff[5]=TEMPPic;			               //如果是正的,显示"+",PLUSPic+TEMPPic
  55   1      				                                   //否则显示"-",MINUSPic+TEMPPic;
C51 COMPILER V3.96,  SN-83203013  PCF8576D                                                 09/12/05  17:49:31  PAGE 2   

  56   1        PCF8576Disp();								             //调用显示函数
  57   1      } 
  58          
  59          /*************************************
  60          名称:  PCF8576Temp
  61          功能:  湿度显示函数
  62          *************************************/
  63          void PCF8576Humi()						             //取3位显示		   
  64          {
  65   1        int i=Humi;
  66   1        DispBuff[0]=0x6e;								         //6e显示H
  67   1        DispBuff[1]=DecodeTab[(i/100)];	         //将湿度整数部分译码写入缓冲       
  68   1      	DispBuff[2]=DecodeTab[(i/10)%10]|DPPic;  //显示"."(DP)
  69   1      	DispBuff[3]=DecodeTab[i%10];             //显示小数部分
  70   1      	DispBuff[4]=0;								           //第五个字节为"0",不显示
  71   1      	DispBuff[5]=0;
  72   1      	PCF8576Disp();								           //调用显示函数
  73   1      }
  74          
C51 COMPILER V3.96,  SN-83203013  PCF8576D                                                 09/12/05  17:49:31  PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION PCF8576Disp (BEGIN)
                                           ; SOURCE LINE # 28
                                           ; SOURCE LINE # 29
                                           ; SOURCE LINE # 30
0000 7F70          MOV     R7,#070H
0002 7D60          MOV     R5,#060H
0004 120000  E     LCALL   _ISendByte
                                           ; SOURCE LINE # 31
0007 7F70          MOV     R7,#070H
0009 E4            CLR     A
000A FD            MOV     R5,A
000B 7B04          MOV     R3,#04H
000D 7A00    R     MOV     R2,#HIGH DispBuff
000F 7900    R     MOV     R1,#LOW DispBuff
0011 750006  E     MOV     ?_ISendStr?BYTE+05H,#06H
0014 120000  E     LCALL   _ISendStr
                                           ; SOURCE LINE # 32
0017 22            RET     
             ; FUNCTION PCF8576Disp (END)

             ; FUNCTION PCF8576Temp (BEGIN)
                                           ; SOURCE LINE # 38
                                           ; SOURCE LINE # 39
                                           ; SOURCE LINE # 40
;---- Variable 'i' assigned to Register 'R2/R3' ----
0000 AB00    E     MOV     R3,Temp+01H
0002 AA00    E     MOV     R2,Temp
                                           ; SOURCE LINE # 41
0004 C3            CLR     C
0005 EA            MOV     A,R2
0006 6480          XRL     A,#080H
0008 9480          SUBB    A,#080H
000A 4005          JC      ?C0002
                                           ; SOURCE LINE # 42
                                           ; SOURCE LINE # 43
000C E4            CLR     A
000D F500    R     MOV     DispBuff,A
                                           ; SOURCE LINE # 44
000F 800A          SJMP    ?C0003
0011         ?C0002:
                                           ; SOURCE LINE # 46
                                           ; SOURCE LINE # 47
0011 750004  R     MOV     DispBuff,#04H
                                           ; SOURCE LINE # 48
0014 C3            CLR     C
0015 E4            CLR     A
0016 9B            SUBB    A,R3
0017 FB            MOV     R3,A
0018 E4            CLR     A
0019 9A            SUBB    A,R2
001A FA            MOV     R2,A
                                           ; SOURCE LINE # 49
001B         ?C0003:
                                           ; SOURCE LINE # 50
001B AE02          MOV     R6,AR2
001D AF03          MOV     R7,AR3
001F 7C00          MOV     R4,#00H
0021 7D64          MOV     R5,#064H
0023 120000  E     LCALL   ?C_SIDIV
C51 COMPILER V3.96,  SN-83203013  PCF8576D                                                 09/12/05  17:49:31  PAGE 4   

0026 7400    R     MOV     A,#LOW DecodeTab
0028 2F            ADD     A,R7
0029 F582          MOV     DPL,A
002B EE            MOV     A,R6
002C 3400    R     ADDC    A,#HIGH DecodeTab
002E F583          MOV     DPH,A
0030 E4            CLR     A
0031 93            MOVC    A,@A+DPTR
0032 F500    R     MOV     DispBuff+01H,A
                                           ; SOURCE LINE # 51
0034 AE02          MOV     R6,AR2
0036 AF03          MOV     R7,AR3
0038 7C00          MOV     R4,#00H
003A 7D0A          MOV     R5,#0AH
003C 120000  E     LCALL   ?C_SIDIV
003F 7C00          MOV     R4,#00H
0041 7D0A          MOV     R5,#0AH
0043 120000  E     LCALL   ?C_SIDIV
0046 7400    R     MOV     A,#LOW DecodeTab
0048 2D            ADD     A,R5
0049 F582          MOV     DPL,A
004B EC            MOV     A,R4
004C 3400    R     ADDC    A,#HIGH DecodeTab
004E F583          MOV     DPH,A
0050 E4            CLR     A
0051 93            MOVC    A,@A+DPTR
0052 4410          ORL     A,#010H
0054 F500    R     MOV     DispBuff+02H,A
                                           ; SOURCE LINE # 52
0056 AE02          MOV     R6,AR2
0058 AF03          MOV     R7,AR3
005A 7C00          MOV     R4,#00H
005C 7D0A          MOV     R5,#0AH
005E 120000  E     LCALL   ?C_SIDIV
0061 7400    R     MOV     A,#LOW DecodeTab
0063 2D            ADD     A,R5
0064 F582          MOV     DPL,A
0066 EC            MOV     A,R4
0067 3400    R     ADDC    A,#HIGH DecodeTab
0069 F583          MOV     DPH,A
006B E4            CLR     A
006C 93            MOVC    A,@A+DPTR
006D F500    R     MOV     DispBuff+03H,A
                                           ; SOURCE LINE # 53
006F E4            CLR     A
0070 F500    R     MOV     DispBuff+04H,A
                                           ; SOURCE LINE # 54
0072 750020  R     MOV     DispBuff+05H,#020H
                                           ; SOURCE LINE # 56
0075 120000  R     LCALL   PCF8576Disp
                                           ; SOURCE LINE # 57
0078 22            RET     
             ; FUNCTION PCF8576Temp (END)

             ; FUNCTION PCF8576Humi (BEGIN)
                                           ; SOURCE LINE # 63
                                           ; SOURCE LINE # 64
                                           ; SOURCE LINE # 65
;---- Variable 'i' assigned to Register 'R2/R3' ----
0000 AB00    E     MOV     R3,Humi+01H
0002 AA00    E     MOV     R2,Humi
                                           ; SOURCE LINE # 66
C51 COMPILER V3.96,  SN-83203013  PCF8576D                                                 09/12/05  17:49:31  PAGE 5   

0004 75006E  R     MOV     DispBuff,#06EH
                                           ; SOURCE LINE # 67
0007 AE02          MOV     R6,AR2
0009 AF03          MOV     R7,AR3
000B 7C00          MOV     R4,#00H
000D 7D64          MOV     R5,#064H
000F 120000  E     LCALL   ?C_SIDIV
0012 7400    R     MOV     A,#LOW DecodeTab
0014 2F            ADD     A,R7
0015 F582          MOV     DPL,A
0017 EE            MOV     A,R6
0018 3400    R     ADDC    A,#HIGH DecodeTab
001A F583          MOV     DPH,A
001C E4            CLR     A
001D 93            MOVC    A,@A+DPTR
001E F500    R     MOV     DispBuff+01H,A
                                           ; SOURCE LINE # 68
0020 AE02          MOV     R6,AR2
0022 AF03          MOV     R7,AR3
0024 7C00          MOV     R4,#00H
0026 7D0A          MOV     R5,#0AH
0028 120000  E     LCALL   ?C_SIDIV
002B 7C00          MOV     R4,#00H
002D 7D0A          MOV     R5,#0AH
002F 120000  E     LCALL   ?C_SIDIV
0032 7400    R     MOV     A,#LOW DecodeTab
0034 2D            ADD     A,R5
0035 F582          MOV     DPL,A
0037 EC            MOV     A,R4
0038 3400    R     ADDC    A,#HIGH DecodeTab
003A F583          MOV     DPH,A
003C E4            CLR     A
003D 93            MOVC    A,@A+DPTR
003E 4410          ORL     A,#010H
0040 F500    R     MOV     DispBuff+02H,A
                                           ; SOURCE LINE # 69
0042 AE02          MOV     R6,AR2
0044 AF03          MOV     R7,AR3
0046 7C00          MOV     R4,#00H
0048 7D0A          MOV     R5,#0AH
004A 120000  E     LCALL   ?C_SIDIV
004D 7400    R     MOV     A,#LOW DecodeTab
004F 2D            ADD     A,R5
0050 F582          MOV     DPL,A
0052 EC            MOV     A,R4
0053 3400    R     ADDC    A,#HIGH DecodeTab
0055 F583          MOV     DPH,A
0057 E4            CLR     A
0058 93            MOVC    A,@A+DPTR
0059 F500    R     MOV     DispBuff+03H,A
                                           ; SOURCE LINE # 70
005B E4            CLR     A
005C F500    R     MOV     DispBuff+04H,A
                                           ; SOURCE LINE # 71
005E F500    R     MOV     DispBuff+05H,A
                                           ; SOURCE LINE # 72
0060 120000  R     LCALL   PCF8576Disp
                                           ; SOURCE LINE # 73
0063 22            RET     
             ; FUNCTION PCF8576Humi (END)


C51 COMPILER V3.96,  SN-83203013  PCF8576D                                                 09/12/05  17:49:31  PAGE 6   


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