📄 main.lst
字号:
C51 COMPILER V8.08 MAIN 01/05/2008 15:57:36 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c DEBUG OBJECTEXTEND CODE
line level source
1 #include <ADUC841.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 9600 Baud.
10 1 -----------------------------------------------*/
11 1 SCON = 0x50;
12 1 TMOD |= 0x20;
13 1 TH1 = 0xFA; /* 9600 baud */
14 1 TR1 = 1;
15 1 TI = 1;
16 1
17 1 /*-----------------------------------------------
18 1 Configure the A/D to sequentially convert each
19 1 input channel.
20 1 -----------------------------------------------*/
21 1 ADCCON1 = 0x7C; // 0111 1100
22 1
23 1 while (1)
24 1 {
25 2 unsigned int conv_val;
26 2 unsigned char channel;
27 2
28 2 /*-----------------------------------------------
29 2 Start a conversion and wait for it to complete.
30 2 -----------------------------------------------*/
31 2 chan_2_convert = (chan_2_convert + 1) % 8;
32 2 ADCCON2 = (ADCCON2 & 0xF0) | chan_2_convert;
33 2 SCONV = 1;
34 2 while (ADCCON3 & 0x80);
35 2
36 2 /*-----------------------------------------------
37 2 Read A/D data and print it out.
38 2 -----------------------------------------------*/
39 2 channel = ADCDATAH >> 4;
40 2 conv_val = ADCDATAL | ((ADCDATAH & 0x0F) << 8);
41 2
42 2 printf ("ADC Channel %bu = 0x%4.4X\r\n", channel, conv_val);
43 2 }
44 1
45 1 }
46
C51 COMPILER V8.08 MAIN 01/05/2008 15:57:36 PAGE 2
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION main (BEGIN)
; SOURCE LINE # 4
; SOURCE LINE # 5
; SOURCE LINE # 11
0000 759850 MOV SCON,#050H
; SOURCE LINE # 12
0003 438920 ORL TMOD,#020H
; SOURCE LINE # 13
0006 758DFA MOV TH1,#0FAH
; SOURCE LINE # 14
0009 D28E SETB TR1
; SOURCE LINE # 15
000B D299 SETB TI
; SOURCE LINE # 21
000D 75EF7C MOV ADCCON1,#07CH
0010 ?C0001:
; SOURCE LINE # 23
; SOURCE LINE # 24
; SOURCE LINE # 31
0010 E500 R MOV A,chan_2_convert
0012 2401 ADD A,#01H
0014 FF MOV R7,A
0015 E4 CLR A
0016 33 RLC A
0017 EF MOV A,R7
0018 5407 ANL A,#07H
001A F500 R MOV chan_2_convert,A
; SOURCE LINE # 32
001C E5D8 MOV A,ADCCON2
001E 54F0 ANL A,#0F0H
0020 4500 R ORL A,chan_2_convert
0022 F5D8 MOV ADCCON2,A
; SOURCE LINE # 33
0024 D2DC SETB SCONV
0026 ?C0003:
; SOURCE LINE # 34
0026 E5F5 MOV A,ADCCON3
0028 20E7FB JB ACC.7,?C0003
002B ?C0004:
; SOURCE LINE # 39
002B E5DA MOV A,ADCDATAH
002D C4 SWAP A
002E 540F ANL A,#0FH
0030 F500 R MOV channel,A
; SOURCE LINE # 40
0032 E5DA MOV A,ADCDATAH
0034 540F ANL A,#0FH
0036 ADD9 MOV R5,ADCDATAL
0038 F500 R MOV conv_val,A
003A ED MOV A,R5
003B F500 R MOV conv_val+01H,A
; SOURCE LINE # 42
003D 7BFF MOV R3,#0FFH
003F 7A00 R MOV R2,#HIGH ?SC_0
0041 7900 R MOV R1,#LOW ?SC_0
0043 850000 E MOV ?_printf?BYTE+03H,channel
0046 850000 E MOV ?_printf?BYTE+04H,conv_val
0049 F500 E MOV ?_printf?BYTE+05H,A
004B 120000 E LCALL _printf
C51 COMPILER V8.08 MAIN 01/05/2008 15:57:36 PAGE 3
; SOURCE LINE # 43
004E 80C0 SJMP ?C0001
; FUNCTION main (END)
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 80 ----
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 + -