📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 12/06/2007 22:38:44 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: f:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*
2 ****************************************************************************************************
3 * 沈阳市万柳塘路56号
4 * (c)著作权2005,世信汇诚电子版权所有
5 * 世信汇诚电子的源代码是不公开, 属于世信汇诚电子的企业机密文件, 任何未经允许使用
6 * 或发表的行为都是违法行,任何个人或组织尝试或者参与修改源代码的行为,都应尽早得到世信
7 * 汇诚电子设计组的同意.
8 *
9 * 版本号:1.0
10 * 作 者:linan4526
11 * 日 期:2005-05-08
12 *---------------------------------------------------------------------------------------------------
13 * 描 述:SXHC-I型MCU51实验
14 ****************************************************************************************************
15 */
16 #include <main.h>
17 /**********************************************************************
18 函数功能: 单位为1毫秒延迟函数
19 入口参数: wTime: 延迟wTime毫秒
20 出口参数: 无
21 ***********************************************************************/
22 void Delay(word wTime)
23 {
24 1 dword dwTime;
25 1
26 1 for (; wTime!=0; wTime--)
27 1 {
28 2 for (dwTime=40; dwTime!=0; dwTime--);
29 2 }
30 1 }
31 /**********************************************************************
32 函数功能: 主函数
33 入口参数: 无
34 出口参数: 无
35 ***********************************************************************/
36 void main()
37 {
38 1 word wNum;
39 1 while (1)
40 1 {
41 2 wNum=2;
42 2 while (wNum--)/*以下程序为每隔600毫秒点亮一个数码管*/
43 2 {
44 3 P2_6=0;/*给第1个数码管供电*/
45 3 P2_7=1;/*给第2个数码管断电*/
46 3 P0=0xf9;/*第1个数码管显示1*/
47 3 Delay(300);/*延迟300毫秒*/
48 3 P2_6=1;/*给第1个数码管断电*/
49 3 P2_7=0;/*给第1个数码管供电*/
50 3 P0=0x4c;/*第2个数码管显示2*/
51 3 Delay(300);
52 3 }
53 2 wNum=5;
54 2 while (wNum--)/*以下程序为每隔100毫秒点亮一个数码管*/
55 2 {
C51 COMPILER V7.50 MAIN 12/06/2007 22:38:44 PAGE 2
56 3 P2_6=0;/*给第1个数码管供电*/
57 3 P2_7=1;/*给第2个数码管断电*/
58 3 P0=0xf9;/*第1个数码管显示1*/
59 3 Delay(50);/*延迟300毫秒*/
60 3 P2_6=1;/*给第1个数码管断电*/
61 3 P2_7=0;/*给第1个数码管供电*/
62 3 P0=0x4c;/*第2个数码管显示2*/
63 3 Delay(50);
64 3 }
65 2 wNum=10;
66 2 while (wNum--)/*以下程序为每隔50毫秒点亮一个数码管*/
67 2 {
68 3 P2_6=0;/*给第1个数码管供电*/
69 3 P2_7=1;/*给第2个数码管断电*/
70 3 P0=0xf9;/*第1个数码管显示1*/
71 3 Delay(10);/*延迟300毫秒*/
72 3 P2_6=1;/*给第1个数码管断电*/
73 3 P2_7=0;/*给第1个数码管供电*/
74 3 P0=0x4c;/*第2个数码管显示2*/
75 3 Delay(10);
76 3 }
77 2 wNum=50;
78 2 while (wNum--)/*以下程序为每隔10毫秒点亮一个数码管*/
79 2 {
80 3 P2_6=0;/*给第1个数码管供电*/
81 3 P2_7=1;/*给第2个数码管断电*/
82 3 P0=0xf9;/*第1个数码管显示1*/
83 3 Delay(5);/*延迟300毫秒*/
84 3 P2_6=1;/*给第1个数码管断电*/
85 3 P2_7=0;/*给第1个数码管供电*/
86 3 P0=0x4c;/*第2个数码管显示2*/
87 3 Delay(5);
88 3 }
89 2 wNum=250;
90 2 while (wNum--)/*以下程序为每隔5毫秒点亮一个数码管*/
91 2 {
92 3 P2_6=0;/*给第1个数码管供电*/
93 3 P2_7=1;/*给第2个数码管断电*/
94 3 P0=0xf9;/*第1个数码管显示1*/
95 3 Delay(1);/*延迟300毫秒*/
96 3 P2_6=1;/*给第1个数码管断电*/
97 3 P2_7=0;/*给第1个数码管供电*/
98 3 P0=0x4c;/*第2个数码管显示2*/
99 3 Delay(1);
100 3 }
101 2 }
102 1 }
C51 COMPILER V7.50 MAIN 12/06/2007 22:38:44 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION _Delay (BEGIN)
; SOURCE LINE # 22
0000 8E00 R MOV wTime,R6
0002 8F00 R MOV wTime+01H,R7
; SOURCE LINE # 23
; SOURCE LINE # 26
0004 ?C0001:
0004 E500 R MOV A,wTime+01H
0006 4500 R ORL A,wTime
0008 6041 JZ ?C0007
; SOURCE LINE # 27
; SOURCE LINE # 28
000A E4 CLR A
000B 750028 R MOV dwTime+03H,#028H
000E F500 R MOV dwTime+02H,A
0010 F500 R MOV dwTime+01H,A
0012 F500 R MOV dwTime,A
0014 ?C0004:
0014 E4 CLR A
0015 FF MOV R7,A
0016 FE MOV R6,A
0017 FD MOV R5,A
0018 FC MOV R4,A
0019 AB00 R MOV R3,dwTime+03H
001B AA00 R MOV R2,dwTime+02H
001D A900 R MOV R1,dwTime+01H
001F A800 R MOV R0,dwTime
0021 C3 CLR C
0022 120000 E LCALL ?C?ULCMP
0025 601A JZ ?C0003
0027 74FF MOV A,#0FFH
0029 2500 R ADD A,dwTime+03H
002B F500 R MOV dwTime+03H,A
002D E500 R MOV A,dwTime+02H
002F 34FF ADDC A,#0FFH
0031 F500 R MOV dwTime+02H,A
0033 E500 R MOV A,dwTime+01H
0035 34FF ADDC A,#0FFH
0037 F500 R MOV dwTime+01H,A
0039 E500 R MOV A,dwTime
003B 34FF ADDC A,#0FFH
003D F500 R MOV dwTime,A
003F 80D3 SJMP ?C0004
; SOURCE LINE # 29
0041 ?C0003:
0041 E500 R MOV A,wTime+01H
0043 1500 R DEC wTime+01H
0045 7002 JNZ ?C0021
0047 1500 R DEC wTime
0049 ?C0021:
0049 80B9 SJMP ?C0001
; SOURCE LINE # 30
004B ?C0007:
004B 22 RET
; FUNCTION _Delay (END)
; FUNCTION main (BEGIN)
; SOURCE LINE # 36
; SOURCE LINE # 37
C51 COMPILER V7.50 MAIN 12/06/2007 22:38:44 PAGE 4
0000 ?C0008:
; SOURCE LINE # 39
; SOURCE LINE # 40
; SOURCE LINE # 41
0000 750000 R MOV wNum,#00H
0003 750002 R MOV wNum+01H,#02H
0006 ?C0010:
; SOURCE LINE # 42
0006 E500 R MOV A,wNum+01H
0008 1500 R DEC wNum+01H
000A AE00 R MOV R6,wNum
000C 7002 JNZ ?C0022
000E 1500 R DEC wNum
0010 ?C0022:
0010 4E ORL A,R6
0011 601E JZ ?C0011
; SOURCE LINE # 43
; SOURCE LINE # 44
0013 C2A6 CLR P2_6
; SOURCE LINE # 45
0015 D2A7 SETB P2_7
; SOURCE LINE # 46
0017 7580F9 MOV P0,#0F9H
; SOURCE LINE # 47
001A 7F2C MOV R7,#02CH
001C 7E01 MOV R6,#01H
001E 120000 R LCALL _Delay
; SOURCE LINE # 48
0021 D2A6 SETB P2_6
; SOURCE LINE # 49
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -