📄 demo.lst
字号:
C51 COMPILER V7.00 DEMO 08/13/2007 07:56:06 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE DEMO
OBJECT MODULE PLACED IN demo.OBJ
COMPILER INVOKED BY: c:\Keil\C51\BIN\C51.EXE demo.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "STC12C2052.H"
2
3 typedef unsigned char BYTE;
4
5 sbit SDO=P1^5;
6 sbit SCLK=P1^7;
7
8 void BrushOut(BYTE nDots,BYTE dr,BYTE dg,BYTE db)
9 { BYTE i,j,mask;
10 1
11 1 // SDO,SCLK为数据和移位输出口,位变量,nDots为灯的个数
12 1 // 本程序仅适用于GMODE=1,CMODE=1的情况
13 1 // 首先输出32个'0'的起始帧
14 1 SCLK=0;
15 1 SDO=0;
16 1 for(i=0;i<32;i++) { SCLK=1;SCLK=0; }
17 1
18 1 // 再输出nDots点的数据,这里假设各点的颜色都是(dr,dg,db)
19 1 // dr,db,dg为红绿兰的灰度值0-31
20 1 for(i=0;i<nDots;i++)
21 1 { //首先输出1个'1'起始位
22 2 SDO=1;SCLK=1;SCLK=0;
23 2
24 2 //输出5位红色数据
25 2 mask=0x10;
26 2 for(j=0;j<5;j++)
27 2 { if(mask & dr) SDO=1;
28 3 else SDO=0;
29 3 SCLK=1;SCLK=0;
30 3 mask>>=1; }
31 2
32 2 //输出5位绿色数据
33 2 mask=0x10;
34 2 for(j=0;j<5;j++)
35 2 { if(mask & dg) SDO=1;
36 3 else SDO=0;
37 3 SCLK=1;SCLK=0;
38 3 mask>>=1; }
39 2
40 2 //输出5位兰色数据
41 2 mask=0x10;
42 2 for(j=0;j<5;j++)
43 2 { if(mask & db) SDO=1;
44 3 else SDO=0;
45 3 SCLK=1;SCLK=0;
46 3 mask>>=1; }
47 2 }
48 1
49 1 //输出完nDots的数据后,还要补nDots个脉冲
50 1 SDO=0;
51 1 for(i=0;i<nDots;i++) { SCLK=1;SCLK=0; }
52 1
53 1 //传输结束
54 1 }
55
C51 COMPILER V7.00 DEMO 08/13/2007 07:56:06 PAGE 2
56 void delay(unsigned int n)
57 { BYTE t;
58 1 for(;n>0;n--)
59 1 for(t=0;t<250;t++) ;
60 1 }
61
62 main()
63 { BYTE i;
64 1
65 1 while(1)
66 1 {
67 2 //红色渐亮
68 2 for(i=0;i<32;i++)
69 2 {
70 3 BrushOut(20,i,0,0);
71 3 delay(600); }
72 2
73 2 //红色渐暗同时绿色渐亮
74 2 for(i=0;i<32;i++)
75 2 {
76 3 BrushOut(20,31-i,i,0);
77 3 delay(600); }
78 2
79 2 //绿色渐暗同时兰色渐亮
80 2 for(i=0;i<32;i++)
81 2 {
82 3 BrushOut(20,0,31-i,i);
83 3 delay(600); }
84 2
85 2 //兰色渐暗
86 2 for(i=0;i<32;i++)
87 2 {
88 3 BrushOut(20,0,0,31-i);
89 3 delay(600); }
90 2
91 2 //白色渐亮
92 2 for(i=0;i<32;i++)
93 2 {
94 3 BrushOut(20,i,i,i);
95 3 delay(600); }
96 2
97 2 //七彩演示
98 2 BrushOut(20,31,0,0);delay(10000);
99 2 BrushOut(20,31,31,0);delay(10000);
100 2 BrushOut(20,0,31,0);delay(10000);
101 2 BrushOut(20,0,31,31);delay(10000);
102 2 BrushOut(20,0,0,31);delay(10000);
103 2 BrushOut(20,31,0,31);delay(10000);
104 2 BrushOut(20,31,31,31);delay(10000);
105 2 }
106 1
107 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 379 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
C51 COMPILER V7.00 DEMO 08/13/2007 07:56:06 PAGE 3
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -