📄 pcf8576d.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 + -