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