?? 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 + -