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