📄 main.lst
字号:
C51 COMPILER V7.00 MAIN 06/28/2002 15:36:03 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 BROWSE DEBUG OBJECTEXTEND CO
-DE SYMBOLS PAGEWIDTH(80) PAGELENGTH(80)
stmt level source
1 #include <stdio.h>
2 #include <ADUC812.H>
3
4 void main (void)
5 {
6 1 /*-------------------------------------
7 1 Setup the serial port
8 1 -------------------------------------*/
9 1 SCON = 0x50;
10 1 TMOD |= 0x20;
11 1 TH1 = 0xFA;
12 1 TR1 = 1;
13 1 TI = 1;
14 1 PCON |= 0x80;
15 1
16 1 /*-------------------------------------
17 1 Configure the D/A converters:
18 1 12-bit mode, 0-VDD range, DAC0 DAC1
19 1 DACCON = 0111 1?01
20 1 -------------------------------------*/
21 1 DACCON = 0x7B;
22 1
23 1 /*-------------------------------------
24 1 Loop thru all 4096 counts updating
25 1 DAC0 and DAC1.
26 1 -------------------------------------*/
27 1 while (1)
28 1 {
29 2 unsigned int i;
30 2
31 2 // Full 12 bit scale: 2^12 = 4096
32 2 for (i = 0; i < 4096; i++)
33 2 {
34 3 DACCON &= ~0x04; // CLR SYNC bit
35 3
36 3 DAC0H = i >> 8;
37 3 DAC0L = i & 0xFF;
38 3
39 3 DAC1H = (4095 - i) >> 8;
40 3 DAC1L = (4095 - i) & 0xFF;
41 3
42 3 DACCON |= 0x04; // SET SYNC bit
43 3
44 3 printf ("Output %4.4X to DAC0 (%1.4fV) ", (unsigned) i, (floa
-t) i * 5.0 / 4095.0);
45 3 printf ("Output %4.4X to DAC1 (%1.4fV)\n", (unsigned) 4095-i,
-(float) (4095-i) * 5.0 / 4095.0);
46 3 }
47 2 }
48 1 }
49
50
C51 COMPILER V7.00 MAIN 06/28/2002 15:36:03 PAGE 2
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION main (BEGIN)
; SOURCE LINE # 4
; SOURCE LINE # 5
; SOURCE LINE # 9
0000 759850 MOV SCON,#050H
; SOURCE LINE # 10
0003 438920 ORL TMOD,#020H
; SOURCE LINE # 11
0006 758DFA MOV TH1,#0FAH
; SOURCE LINE # 12
0009 D28E SETB TR1
; SOURCE LINE # 13
000B D299 SETB TI
; SOURCE LINE # 14
000D 438780 ORL PCON,#080H
; SOURCE LINE # 21
0010 75FD7B MOV DACCON,#07BH
0013 ?C0001:
; SOURCE LINE # 27
; SOURCE LINE # 28
; SOURCE LINE # 32
0013 E4 CLR A
0014 F500 R MOV i,A
0016 F500 R MOV i+01H,A
0018 ?C0003:
; SOURCE LINE # 33
; SOURCE LINE # 34
0018 53FDFB ANL DACCON,#0FBH
; SOURCE LINE # 36
001B E500 R MOV A,i
001D F5FA MOV DAC0H,A
; SOURCE LINE # 37
001F AD00 R MOV R5,i+01H
0021 ED MOV A,R5
0022 F5F9 MOV DAC0L,A
; SOURCE LINE # 39
0024 C3 CLR C
0025 74FF MOV A,#0FFH
0027 9500 R SUBB A,i+01H
0029 740F MOV A,#0FH
002B 9500 R SUBB A,i
002D F5FC MOV DAC1H,A
; SOURCE LINE # 40
002F C3 CLR C
0030 74FF MOV A,#0FFH
0032 9D SUBB A,R5
0033 F5FB MOV DAC1L,A
; SOURCE LINE # 42
0035 43FD04 ORL DACCON,#04H
; SOURCE LINE # 44
0038 850000 E MOV ?_printf?BYTE+03H,i
003B 850000 E MOV ?_printf?BYTE+04H,i+01H
003E AC00 R MOV R4,i
0040 AD00 R MOV R5,i+01H
0042 E4 CLR A
0043 120000 E LCALL ?C?FCASTI
0046 E4 CLR A
0047 FB MOV R3,A
0048 FA MOV R2,A
0049 79A0 MOV R1,#0A0H
004B 7840 MOV R0,#040H
004D 120000 E LCALL ?C?FPMUL
0050 7B00 MOV R3,#00H
0052 7AF0 MOV R2,#0F0H
0054 797F MOV R1,#07FH
0056 7845 MOV R0,#045H
0058 120000 E LCALL ?C?FPDIV
005B 8F00 E MOV ?_printf?BYTE+08H,R7
005D 8E00 E MOV ?_printf?BYTE+07H,R6
005F 8D00 E MOV ?_printf?BYTE+06H,R5
0061 8C00 E MOV ?_printf?BYTE+05H,R4
0063 7BFF MOV R3,#0FFH
0065 7A00 R MOV R2,#HIGH ?SC_0
0067 7900 R MOV R1,#LOW ?SC_0
0069 120000 E LCALL _printf
C51 COMPILER V7.00 MAIN 06/28/2002 15:36:03 PAGE 3
; SOURCE LINE # 45
006C C3 CLR C
006D 74FF MOV A,#0FFH
006F 9500 R SUBB A,i+01H
0071 FD MOV R5,A
0072 740F MOV A,#0FH
0074 9500 R SUBB A,i
0076 FC MOV R4,A
0077 F500 E MOV ?_printf?BYTE+03H,A
0079 8D00 E MOV ?_printf?BYTE+04H,R5
007B E4 CLR A
007C 120000 E LCALL ?C?FCASTI
007F E4 CLR A
0080 FB MOV R3,A
0081 FA MOV R2,A
0082 79A0 MOV R1,#0A0H
0084 7840 MOV R0,#040H
0086 120000 E LCALL ?C?FPMUL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -