?? 999.lst
字號:
C51 COMPILER V7.06 999 04/18/2009 15:10:58 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 999
OBJECT MODULE PLACED IN 999.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 999.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*-------------------------------------------
2 項目名: C語言彩燈程序系列 [C語言學習]
3 程序名: 漸明漸暗的閃爍彩燈
4 編寫人: 杜洋
5 初寫時間: 2005年8月25日 22時
6 程序功能: 使LED彩燈由亮漸滅再由滅漸亮的閃爍
7 實現方法: 通過改變彩燈亮滅的時間長度來改變彩燈亮度
8 CPU說明: AT89S52型單片機 12MHZ晶體振蕩器
9 接口說明: 8個LED彩燈接P1口
10 信息說明: 文件名-C彩燈
11 修改日志:
12 NO.1-2005年8月26日-修改了閃爍周期長度
13
14 -------------------------------------------*/
15
16 #include <AT89X51.h>
17 void delay (unsigned int d);
18
19 /* 彩燈主函數 實現彩燈的顯示 */
20 void main (void)
21
22 {
23 1
24 1 unsigned char a, b; /* a控制延時長度 b控制循環周期 */
25 1
26 1 while (1)
27 1 {
28 2
29 2 P2 = 0xff;
30 2
31 2 a = 0x00;
32 2
33 2 for (b=500; b>0; b--) /* 定義半周期循環時間(次數)*/
34 2 {
35 3
36 3 a++;
37 3
38 3 delay (a); /* 延時長度隨a而改變 */
39 3
40 3 P2 = 0x00;
41 3
42 3 a = ~a; /* a值取反 決定燈滅時的占空比 */
43 3
44 3 delay (a);
45 3
46 3 P2 = 0xff;
47 3
48 3 a = ~a; /* a值取反 使a回到原值繼續循環 */
49 3
50 3 }
51 2
52 2 P2 = 0x00; /* 彩燈全亮 使燈達到最亮 */
53 2
54 2 a = 0x00;
55 2
C51 COMPILER V7.06 999 04/18/2009 15:10:58 PAGE 2
56 2 for (b=500; b>0; b--)
57 2 {
58 3
59 3 a++;
60 3
61 3 delay (a);
62 3
63 3 P2 = 0xff;
64 3
65 3 a = ~a;
66 3
67 3 delay (a);
68 3
69 3 P2 = 0x00;
70 3
71 3 a = ~a;
72 3
73 3 }
74 2
75 2 P2 = 0xff;
76 2
77 2 }
78 1 }
79
80
81
82
83
84 void delay (unsigned int d) /* 延時功能函數--由d決定延時長度 */
85 {
86 1
87 1 unsigned char i;
88 1
89 1 while( --d != 0)
90 1
91 1 {
92 2
93 2 for(i = 0; i < 2; i++);
94 2
95 2 }
96 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 106 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
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 + -