📄 dinzhuanv10.lst
字号:
C51 COMPILER V7.50 DINZHUANV10 11/09/2006 15:57:20 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE DINZHUANV10
OBJECT MODULE PLACED IN dinzhuanv10.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE dinzhuanv10.c BROWSE DEBUG OBJECTEXTEND
line level source
1 //************************************
2 //***********
3 //**** 2004-06-19 mcu at89c2051 38400BPS OSC 22.1184MHZ
4 // ding li zhao ming 地砖
5 //************************************
6 #include <reg51.h>
7 #include <stdio.h>//一般I/O函数
8 #include <stdlib.h>//标准函数
9 #include <absacc.h>//绝对地址
10 #include <intrins.h>//内部函数
11 #include <setjmp.h>
12 #define uchar unsigned char
13 #define uint unsigned int
14 #define Byte unsigned char
15 #define Word unsigned int
16 #define ulong unsigned long
17 #define bool bit
18 #define true 1
19 #define false 0
20 #define V_TH0 0xff /* 时间常数高8位 (65536-500)/256 */
21 #define V_TL0 0x80 /* 时间常数低8位 (65536-500)%256 11.0592*/
22 #define ADD 1
23 //******************************
24 sbit roe=P0^2;
25 sbit goe=P0^3;
26 sbit boe=P0^4;
27 //**************************************************************
28 uchar dis_buf_r,dis_buf_g,dis_buf_b; //显示缓冲
29 uchar mode;
30 uchar pointer;
31 uchar send_buf[4];
32 uchar pwm,rl;
33 uchar setadd;
34 jmp_buf env;
35 int retval;
36 uchar bdata flags;
37 sbit flag0=flags^0;
38 sbit flag1=flags^1;
39 sbit flag2=flags^2;
40 sbit flag3=flags^3;
41 sbit frameok=flags^4;
42 //*********************************
43 void delay(uint j);
44 void qcgd(uint speed);
45 //*********************************
46 void main(void)
47 {
48 1 TMOD=0x21;
49 1 SCON=0xd0;
50 1 TH1=0xfd;
51 1 TL1=0xfd; //256-(22.1184*10~6/32/12/3/38400*2)
52 1 //PCON=0X80;//倍频
53 1 SM2=1;
54 1 TL0=V_TL0;
55 1 TH0=V_TH0;
C51 COMPILER V7.50 DINZHUANV10 11/09/2006 15:57:20 PAGE 2
56 1 TR0=1;
57 1 ET0=1;
58 1 TR1=1;
59 1 ET1=0;
60 1 ES=1;
61 1 EA=1;
62 1 PS=1;
63 1 frameok=0;
64 1 pointer=0;
65 1 dis_buf_b=dis_buf_g=dis_buf_r=15;
66 1 setadd=(~P1)&0x3f;
67 1 while(1)
68 1 {
69 2 if(mode==0x55)
70 2 {delay(4);}
71 2 else
72 2 {
73 3 retval=setjmp(env);
74 3 if(retval==0)
75 3 {
76 4 qcgd(20);
77 4 }
78 3 }
79 2 }
80 1 }
81 //*********************************
82 // 接收数据
83 //*********************************
84 void receive(void)
85 {
86 1 dis_buf_r=send_buf[1];
87 1 dis_buf_g=send_buf[2];
88 1 dis_buf_b=send_buf[3];
89 1 }
90 //*****************************************
91 // 延时
92 //**************************************
93 void delay(uint tim)
94 {
95 1 uint i;
96 1 while(tim!=0)
97 1 {
98 2 for(i=0;i<50;i++)
99 2 {
100 3 if(frameok)
101 3 {receive();
102 4 mode=0x55;
103 4 frameok=0;
104 4 SM2=1;
105 4 pointer=0;
106 4 retval=1;
107 4 longjmp(env,retval);
108 4 }
109 3 }
110 2 tim--;
111 2 }
112 1 }
113 //************************************
114 //七彩过渡roe=(dis_buf_r<pwm)?0:1;
115 //**********************************
116 void qcgd(uint speed)
117 {
C51 COMPILER V7.50 DINZHUANV10 11/09/2006 15:57:20 PAGE 3
118 1
119 1 //for(i=0;i<255;i++){dis_buf_r=i;dis_buf_g=0;dis_buf_b=0;delay(speed);}//red
120 1 /*
121 1 for(i=0;i<16;i++){dis_buf_r=15;dis_buf_g=i;dis_buf_b=0;delay(speed);}//yeloww
122 1 for(i=0;i<16;i++){dis_buf_r=~i;dis_buf_g=15;dis_buf_b=0;delay(speed);}//grn
123 1 for(i=0;i<16;i++){dis_buf_r=0;dis_buf_g=15;dis_buf_b=i;delay(speed);}//qi
124 1 for(i=0;i<16;i++){dis_buf_r=0;dis_buf_g=~i;dis_buf_b=15;delay(speed);}//blu
125 1 for(i=0;i<16;i++){dis_buf_r=i;dis_buf_g=0;dis_buf_b=15;delay(speed);}//zhi
126 1 for(i=0;i<16;i++){dis_buf_r=15;dis_buf_g=i;dis_buf_b=15;delay(speed);}//w
127 1 for(i=0;i<16;i++){dis_buf_r=15;dis_buf_g=~i;dis_buf_b=~i;delay(speed);}//r
128 1 */
129 1 for(dis_buf_g=63;dis_buf_g<64;dis_buf_g--)
130 1 {dis_buf_b=dis_buf_g;delay(speed);}//r
131 1 dis_buf_r=63;dis_buf_g=0;dis_buf_b=0;
132 1
133 1 for(dis_buf_g=1;dis_buf_g<64;dis_buf_g++)
134 1 {delay(speed);}//y
135 1 dis_buf_g=63;
136 1 for(dis_buf_r=63;dis_buf_r<64;dis_buf_r--)
137 1 {delay(speed);}//g
138 1 dis_buf_r=0;
139 1 for(dis_buf_b=1;dis_buf_b<64;dis_buf_b++)
140 1 {delay(speed);}//q
141 1 dis_buf_b=63;
142 1 for(dis_buf_g=63;dis_buf_g<64;dis_buf_g--)
143 1 {delay(speed);}//b
144 1 dis_buf_g=0;
145 1 for(dis_buf_r=1;dis_buf_r<64;dis_buf_r++)
146 1 {delay(speed);}//z
147 1 dis_buf_r=63;
148 1 for(dis_buf_g=1;dis_buf_g<64;dis_buf_g++)
149 1 {delay(speed);}//w
150 1 dis_buf_g=63;
151 1 }
152
153 //****************************************
154 // 通讯子程序
155 //**************************************
156 void send(void) interrupt 4
157 {
158 1 if(!TI && RI && !frameok)
159 1 {RI=0;
160 2 if(pointer==0)
161 2 {
162 3 if(SBUF==setadd||SBUF==0)
163 3 {
164 4 SM2=0;pointer++;
165 4 }
166 3 }
167 2 else
168 2 {
169 3 if(pointer<3)
170 3 {send_buf[pointer]=SBUF;pointer++;}
171 3 else
172 3 {
173 4 send_buf[pointer]=SBUF;
174 4 frameok=1;
175 4 }
176 3 }
177 2 }//end if
178 1 }//end sub
179 //*******************************************
C51 COMPILER V7.50 DINZHUANV10 11/09/2006 15:57:20 PAGE 4
180 void timer1() interrupt 1
181 {
182 1 TL0=V_TL0;
183 1 TH0=V_TH0;
184 1 pwm++;
185 1 if(pwm>63)pwm=0;
186 1 //for(pwm=0;pwm<64;pwm++)
187 1 // {
188 1 roe=(dis_buf_r<=pwm)?1:0;
189 1 goe=(dis_buf_g<=pwm)?1:0;
190 1 boe=(dis_buf_b<=pwm)?1:0;
191 1 // }
192 1 }//end sub
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 466 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 22 6
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 + -