📄 main.lst
字号:
846 //-----------------------------
847
848 unsigned long SampleVoltageAndOut()
849 {
850 1
851 1 unsigned long lt;
852 1 unsigned int nRet;
853 1 unsigned char Save;
854 1
855 1 Save = EIE2;
856 1
857 1 EIE2&=~0x02;
858 1
859 1 AMX0SL = 0; // 采集通道0
C51 COMPILER V8.02 MAIN 01/16/2008 21:37:44 PAGE 15
860 1 AD0INT = 0;
861 1
862 1 AD0BUSY = 1;
863 1
864 1
865 1 while(AD0INT==0);
866 1 AD0INT = 0;
867 1
868 1 EIE2 = Save;
869 1
870 1 // DA输出
871 1 DAC0L = ADC0L;
872 1 DAC0H = ADC0H;
873 1
874 1
875 1 nRet = ADC0H;
876 1 nRet<<=8;
877 1 nRet+=ADC0L;
878 1
879 1 lt = nRet+1;
880 1 lt =lt*AD_VREF;
881 1 lt >>=12;
882 1
883 1
884 1 g_Voltage = lt;
885 1
886 1 return g_Voltage;
887 1
888 1
889 1 }
890
891 //------------------------------
892 // 测量温度
893 // Vtemp=0.00286*Temp+0.776
894 // g_Temperature/2.86=实际温度
895 //-----------------------------
896
897 long SampleTemperature()
898 {
899 1 unsigned int nRet;
900 1 unsigned long lt;
901 1 unsigned char Save;
902 1
903 1 Save = EIE2;
904 1
905 1 EIE2&=~0x02;
906 1
907 1 AMX0SL = 8; // 采集通道8
908 1 AD0INT = 0;
909 1
910 1 AD0BUSY = 1;
911 1
912 1
913 1 while(AD0INT==0);
914 1 AD0INT = 0;
915 1
916 1 EIE2 = Save;
917 1
918 1 // 计算实际的温度
919 1 nRet = ADC0H<<8;
920 1 nRet+=ADC0L;
921 1
C51 COMPILER V8.02 MAIN 01/16/2008 21:37:44 PAGE 16
922 1 lt =nRet+1;
923 1 lt =lt*AD_VREF;
924 1 lt >>=12;
925 1
926 1 // 1000V
927 1 g_Temperature=lt-776;
928 1
929 1 return g_Temperature;
930 1
931 1 }
932
933 //---------------------------------------------------------
934 // 软件延时函数
935 //---------------------------------------------------------
936
937
938
939 // ;时钟周期数
940 // lcall ;4
941 void dly(unsigned char cnt){while(cnt){cnt--;}} // delay: mov a,r7 ;1
942 // jz quit ;2
943 // dec r7 ;1
944 // sjmp delay ;2
945 // quit: ret ;1
946 // 6n+5 sysclk @c8051f022(0.5425)
947 // 延时(6n+5)*0.0904us @11.0592MHZ
948
949 //....................................................................................
950 // 延时ms毫秒
951 //....................................................................................
952 void Dlyms(unsigned int ms) // 延时cnt(ms)@11.0592MHZ
953 {
954 1 while(ms)
955 1 {
956 2 dly(250);
957 2 dly(210);
958 2
959 2 dly(250);
960 2 dly(210);
961 2
962 2 dly(250);
963 2 dly(210);
964 2
965 2 dly(250);
966 2 dly(210);
967 2
968 2 dly(250);
969 2 dly(210);
970 2
971 2 dly(250);
972 2 dly(210);
973 2
974 2 dly(250);
975 2 dly(210);
976 2
977 2 dly(250);
978 2 dly(210);
979 2
980 2 ms--;
981 2 }
982 1 }
983
C51 COMPILER V8.02 MAIN 01/16/2008 21:37:44 PAGE 17
984
985
986
987
988
989
990
C51 COMPILER V8.02 MAIN 01/16/2008 21:37:44 PAGE 18
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION mn_init_m (BEGIN)
; SOURCE LINE # 133
; SOURCE LINE # 134
; SOURCE LINE # 139
0000 A2AF MOV C,EA
0002 9200 R MOV c,C
; SOURCE LINE # 140
0004 C2AF CLR EA
; SOURCE LINE # 141
0006 900000 E MOV DPTR,#DEVICE_ID
0009 E4 CLR A
000A 93 MOVC A,@A+DPTR
;---- Variable 'chip_id' assigned to Register 'R7' ----
; SOURCE LINE # 142
000B 6403 XRL A,#03H
000D 6005 JZ ?C0001
; SOURCE LINE # 143
000F 7EFF MOV R6,#0FFH
0011 7FA7 MOV R7,#0A7H
0013 22 RET
0014 ?C0001:
; SOURCE LINE # 148
0014 900000 E MOV DPTR,#NUM_SOCKETS
0017 E4 CLR A
0018 93 MOVC A,@A+DPTR
0019 FF MOV R7,A
001A 7E00 MOV R6,#00H
001C 7C00 MOV R4,#00H
001E 7D3D MOV R5,#03DH
0020 120000 E LCALL ?C?IMUL
0023 8E00 R MOV num,R6
0025 8F00 R MOV num+01H,R7
; SOURCE LINE # 149
0027 E4 CLR A
0028 900000 R MOV DPTR,#val
002B F0 MOVX @DPTR,A
; SOURCE LINE # 150
002C 7B01 MOV R3,#01H
002E 7A00 E MOV R2,#HIGH sock_info
0030 7900 E MOV R1,#LOW sock_info
0032 FD MOV R5,A
0033 120000 E LCALL ?C?MEMSET
; SOURCE LINE # 153
0036 120000 E LCALL mn_ip_init
0039 8E00 R MOV num,R6
003B 8F00 R MOV num+01H,R7
; SOURCE LINE # 154
003D E500 R MOV A,num+01H
003F 4500 R ORL A,num
0041 7003 JNZ $ + 5H
0043 020000 R LJMP ?C0003
; SOURCE LINE # 155
; SOURCE LINE # 158
0046 120000 E LCALL mn_timer_init
; SOURCE LINE # 167
0049 900000 E MOV DPTR,#NUM_VF_PAGES
004C E4 CLR A
004D 93 MOVC A,@A+DPTR
004E FF MOV R7,A
C51 COMPILER V8.02 MAIN 01/16/2008 21:37:44 PAGE 19
004F 7E00 MOV R6,#00H
0051 7C00 MOV R4,#00H
0053 7D1F MOV R5,#01FH
0055 120000 E LCALL ?C?IMUL
0058 8E00 R MOV num,R6
005A 8F00 R MOV num+01H,R7
; SOURCE LINE # 168
005C E4 CLR A
005D 900000 R MOV DPTR,#val
0060 F0 MOVX @DPTR,A
; SOURCE LINE # 169
0061 7B01 MOV R3,#01H
0063 7A00 E MOV R2,#HIGH vf_dir
0065 7900 E MOV R1,#LOW vf_dir
0067 FD MOV R5,A
0068 120000 E LCALL ?C?MEMSET
; SOURCE LINE # 171
;---- Variable 'i' assigned to Register 'R7' ----
006B E4 CLR A
006C FF MOV R7,A
006D ?C0004:
006D 900000 E MOV DPTR,#NUM_VF_PAGES
0070 E4 CLR A
0071 93 MOVC A,@A+DPTR
0072 FE MOV R6,A
0073 EF MOV A,R7
0074 C3 CLR C
0075 9E SUBB A,R6
0076 5018 JNC ?C0005
; SOURCE LINE # 172
0078 75F01F MOV B,#01FH
007B EF MOV A,R7
007C A4 MUL AB
007D 2400 E ADD A,#LOW vf_dir+018H
007F F582 MOV DPL,A
0081 E5F0 MOV A,B
0083 3400 E ADDC A,#HIGH vf_dir+018H
0085 F583 MOV DPH,A
0087 7420 MOV A,#020H
0089 F0 MOVX @DPTR,A
008A A3 INC DPTR
008B E4 CLR A
008C F0 MOVX @DPTR,A
008D 0F INC R7
008E 80DD SJMP ?C0004
0090 ?C0005:
; SOURCE LINE # 175
0090 900000 E MOV DPTR,#NUM_SOCKETS
0093 E4 CLR A
0094 93 MOVC A,@A+DPTR
0095 FF MOV R7,A
0096 7E00 MOV R6,#00H
0098 7C00 MOV R4,#00H
009A 7D09 MOV R5,#09H
009C 120000 E LCALL ?C?IMUL
009F 8E00 R MOV num,R6
00A1 8F00 R MOV num+01H,R7
; SOURCE LINE # 176
00A3 E4 CLR A
00A4 900000 R MOV DPTR,#val
00A7 F0 MOVX @DPTR,A
; SOURCE LINE # 177
C51 COMPILER V8.02 MAIN 01/16/2008 21:37:44 PAGE 20
00A8 7B01 MOV R3,#01H
00AA 7A00 E MOV R2,#HIGH page_send_info
00AC 7900 E MOV R1,#LOW page_send_info
00AE FD MOV R5,A
00AF 120000 E LCALL ?C?MEMSET
; SOURCE LINE # 179
00B2 E4 CLR A
00B3 FF MOV R7,A
00B4 ?C0007:
00B4 900000 E MOV DPTR,#NUM_SOCKETS
00B7 E4 CLR A
00B8 93 MOVC A,@A+DPTR
00B9 FE MOV R6,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -