📄 main.lst
字号:
C51 COMPILER V7.00 MAIN 06/28/2002 14:45:12 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE main.c DEBUG OBJECTEXTEND CODE
stmt level source
1 #include <ADUC812.H>
2 #include <stdio.h>
3
4 void main (void)
5 {
6 1 unsigned char chan_2_convert;
7 1
8 1 /*-----------------------------------------------
9 1 Configure the serial port to run at 300 Baud.
10 1 Yeah, this is really slow!
11 1 -----------------------------------------------*/
12 1 SCON = 0x50;
13 1 TMOD |= 0x20;
14 1 TH1 = 0xA0;
15 1 TR1 = 1;
16 1 TI = 1;
17 1
18 1 /*-----------------------------------------------
19 1 Configure the A/D to sequentially convert each
20 1 input channel.
21 1 -----------------------------------------------*/
22 1 ADCCON1 = 0x7C; // 0111 1100
23 1
24 1 while (1)
25 1 {
26 2 unsigned int conv_val;
27 2 unsigned char channel;
28 2
29 2 /*-----------------------------------------------
30 2 Start a conversion and wait for it to complete.
31 2 -----------------------------------------------*/
32 2 chan_2_convert = (chan_2_convert + 1) % 8;
33 2 ADCCON2 = (ADCCON2 & 0xF0) | chan_2_convert;
34 2 SCONV = 1;
35 2 while (ADCCON3 & 0x80);
36 2
37 2 /*-----------------------------------------------
38 2 Read A/D data and print it out.
39 2 -----------------------------------------------*/
40 2 channel = ADCDATAH >> 4;
41 2 conv_val = ADCDATAL | ((ADCDATAH & 0x0F) << 8);
42 2
43 2 printf ("ADC Channel %bu = 0x%4.4X\r\n", channel, conv_val);
44 2 }
45 1
46 1 }
47
C51 COMPILER V7.00 MAIN 06/28/2002 14:45:12 PAGE 2
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION main (BEGIN)
; SOURCE LINE # 4
; SOURCE LINE # 5
; SOURCE LINE # 12
0000 759850 MOV SCON,#050H
; SOURCE LINE # 13
0003 438920 ORL TMOD,#020H
; SOURCE LINE # 14
0006 758DA0 MOV TH1,#0A0H
; SOURCE LINE # 15
0009 D28E SETB TR1
; SOURCE LINE # 16
000B D299 SETB TI
; SOURCE LINE # 22
000D 75EF7C MOV ADCCON1,#07CH
0010 ?C0001:
; SOURCE LINE # 24
; SOURCE LINE # 25
; SOURCE LINE # 32
0010 E500 R MOV A,chan_2_convert
0012 04 INC A
0013 5407 ANL A,#07H
0015 F500 R MOV chan_2_convert,A
; SOURCE LINE # 33
0017 E5D8 MOV A,ADCCON2
0019 54F0 ANL A,#0F0H
001B 4500 R ORL A,chan_2_convert
001D F5D8 MOV ADCCON2,A
; SOURCE LINE # 34
001F D2DC SETB SCONV
0021 ?C0003:
; SOURCE LINE # 35
0021 E5F5 MOV A,ADCCON3
0023 20E7FB JB ACC.7,?C0003
0026 ?C0004:
; SOURCE LINE # 40
0026 E5DA MOV A,ADCDATAH
0028 C4 SWAP A
0029 540F ANL A,#0FH
002B F500 R MOV channel,A
; SOURCE LINE # 41
002D E5DA MOV A,ADCDATAH
002F 540F ANL A,#0FH
0031 ADD9 MOV R5,ADCDATAL
0033 F500 R MOV conv_val,A
0035 ED MOV A,R5
0036 F500 R MOV conv_val+01H,A
; SOURCE LINE # 43
0038 7BFF MOV R3,#0FFH
003A 7A00 R MOV R2,#HIGH ?SC_0
003C 7900 R MOV R1,#LOW ?SC_0
003E 850000 E MOV ?_printf?BYTE+03H,channel
0041 850000 E MOV ?_printf?BYTE+04H,conv_val
0044 F500 E MOV ?_printf?BYTE+05H,A
0046 120000 E LCALL _printf
; SOURCE LINE # 44
0049 80C5 SJMP ?C0001
; FUNCTION main (END)
C51 COMPILER V7.00 MAIN 06/28/2002 14:45:12 PAGE 3
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 75 ----
CONSTANT SIZE = 28 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 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 + -