📄 ql300uart.lst
字号:
C51 COMPILER V7.06 QL300UART 11/23/2007 13:52:43 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE QL300UART
OBJECT MODULE PLACED IN ql300uart.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ql300uart.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*视频字符叠加模块(器)UART接口测试程序(仅供参考)
2 本程序仅提供常用的基本功能,其它功能读者请自行编写
3 应用产品:QL300A
4 编译环环境: KEIL C
5 简要说明:
6 本测试程序使用AT89S51,晶振11.0592MHZ
7 注:读者如果使用更高运行速度请在指令结束插入适当的延时
8 */
9
10 #include<reg51.h>
11 #include<intrins.h>
12 #include<stdio.h>
13 #include<string.h>
14 //#include<ql503_spi_public.c>
15 #define UN unsigned char
16
17 void csf_main(void);//初始化叠加的默认值
18
19 UN code zfc[]={0,0,0,0,12,0,0,30,0,0,14,0,0,14,0,31,
20 255,254,31,255,254,24,0,14,24,0,14,24,0,14,24,0,
21 14,0,0,16,3,255,240,3,255,240,0,12,0,0,12,0,
22 0,12,0,3,140,0,3,143,252,3,143,252,7,12,0,7,
23 12,0,7,140,0,15,204,0,15,204,0,28,236,0,28,124,
24 1,60,63,254,56,15,254,8,0,0,0,0,0,0,0,0};//定
25 void csf_uart();
26 sfr16 DPTR=0x82;
27
28 unsigned char bdata bm;
29 sbit bm0=bm^0;
30 sbit bm1=bm^1;
31 sbit bm2=bm^2;
32 sbit bm3=bm^3;
33 sbit bm4=bm^4;
34 sbit bm5=bm^5;
35 sbit bm6=bm^6;
36 sbit bm7=bm^7;
37
38 void write_1byte(unsigned char x);
39 void Tx4b(UN a,b,c,d);
40 void cls(UN ys);//cm1//按指定颜色清屏0-7
41 void Neiwai_SaoMiao(UN x);//cm2//内外频及扫描方式选择0-1
42 void hwy(UN h,l);//cm3//设定水平方向开始显示的位置0-511
43 void vwy(UN h,l);//cm4 PAL方式下设定垂直方向开始显示的位置0-511
44 void zfjj(UN x);//cm5
45 void size(UN x);//cm6//字符大小,设置指定行的字符大小,size:大小0-3
46 void Ding_Wei(UN H,L);//cm7 //定位,设置要显示的起始位置H:行号1-16,L:列号1-35
47 //void Tx_arry(UN zfc[]);//字符数组的显示
48 void Tx_nei_ma(UN nmH,nmL);//cm8//按字符内码显示1字符,nmH:内码高字节,nmL:内码低字节
49 void MoRen_Color(UN ys);//cm9//设置默认字符颜色,ys高位0-7,低位0-7
50 void hj(UN x);//cm10//行距设定0-7
51 void bk(UN x);//cm11
52 void yy_ys(UN x);//cm12
53 void fxg(UN x);//cm13
54 void yykg(UN x);//cm14
55 void blinking(UN x);//cm15
C51 COMPILER V7.06 QL300UART 11/23/2007 13:52:43 PAGE 2
56 void lxfszf();//cm16
57
58 void wcode(UN idata zfc[],UN x);//cm17
59 //无cm18
60 void copy_f_r(UN m,n);//cm19
61 void disram(UN x);//cm20
62
63 void delay(unsigned int x);
64 void delay_ms(unsigned int nMs);//豪秒级的延时<65535ms,,延时函数读者可根据实际使用编写
65 #define addr 0xff
66 //============================================================================
67 //主程序
68 //============================================================================
69 void main(void)
70 {UN i,j,h,a,b,a1,b1;
71 1 unsigned int old1,new1;
72 1 csf_uart();
73 1 delay_ms(200);
74 1 cls(1);//按蓝色清屏
75 1 delay_ms(60);//发清屏指令后延时
76 1 blinking(0);//不闪烁
77 1 hj(0);//设行距为0
78 1 hwy(0,10);//设水平位移
79 1 vwy(0,12);//设垂直位移
80 1 yy_ys(0);//设阴影颜色为黑色
81 1 yykg(2);//设强阴影
82 1
83 1 Ding_Wei(2,7);//定位,第2行第7列
84 1 disram(8);//调出显示用户自定义RAM的8个字符
85 1
86 1 Ding_Wei(3,9);//定位,第3行第9列
87 1 MoRen_Color(0x16);//改变默认字符颜色为蓝底黄字
88 1 disram(4);//调出显示用户自定义RAM的8个字符
89 1
90 1
91 1 MoRen_Color(0x17);//改变默认字符颜色为蓝底白字
92 1 Tx_nei_ma(0,0xa0);//按字符内码显示1字符
93 1 Tx_nei_ma(0,0xa1);//按字符内码显示1字符
94 1 Tx_nei_ma(0,0xa2);//按字符内码显示1字符
95 1 Tx_nei_ma(0,0x02);//按字符内码显示1字符
96 1 Tx_nei_ma(0,0x03);//按字符内码显示1字符
97 1
98 1 yykg(0);////设为无阴影
99 1 Ding_Wei(4,2);//定位,第4行第2列
100 1 hj(2);//设行距为2
101 1 i=0;
102 1 while(i<15){Tx_nei_ma(0,0x11+i);i++;}//按字符内码循环显示字符
103 1
104 1
105 1 Ding_Wei(5,2);//定位,第5行第2列
106 1 size(2);//设字符大小为2号字
107 1 zfjj(1);//设字间距为1
108 1 bk(2);//有背景显示且框架阴影在底边
109 1 MoRen_Color(0x27);//
110 1 i=0;
111 1 while(i<15){Tx_nei_ma(0,0x11+i);i++;}//按字符内码显示字符
112 1 Ding_Wei(6,2);
113 1 size(3);
114 1 zfjj(3);
115 1 //bk(1);//有背景显示且框架阴影在底边
116 1 yykg(0);//设无阴影
117 1
C51 COMPILER V7.06 QL300UART 11/23/2007 13:52:43 PAGE 3
118 1 MoRen_Color(0x60);
119 1
120 1 i=0;
121 1 while(i<8){Tx_nei_ma(0,0x11+i);i++;}//按字符内码显示字符
122 1
123 1 bk(0);//有背景显示且框架阴影在底边
124 1 Ding_Wei(7,2);
125 1 MoRen_Color(0x17);
126 1 disram(8);
127 1
128 1
129 1 Ding_Wei(7,2);
130 1 blinking(1);//设闪烁
131 1 MoRen_Color(0x17);
132 1 disram(8);
133 1 wcode(zfc,5);//写入1个用户自定义字符点阵数据(96个字节)到用户RAM 5区;
134 1 Ding_Wei(7,10);
135 1 size(3);
136 1 Tx_nei_ma(0,0xa0);//按字符内码显示1字符
137 1 copy_f_r(15,6);//复制用户FLASH 15区的点阵数据到指定的用户RAM 6区 。
138 1 //---------------------------------------------------------
139 1 Ding_Wei(1,10);
140 1 lxfszf();//连续发送字符代码显示
141 1 write_1byte(1);write_1byte(0xce);delay(100);write_1byte(1);write_1byte(0xcf);delay(100);write_1byte(1);wri
-te_1byte(0xd0);delay(100);
142 1 write_1byte(1);write_1byte(0x40);delay(100);write_1byte(1);write_1byte(0x41);delay(100);write_1byte(1);wri
-te_1byte(0x42);delay_ms(3);
143 1 //------------------------------------------------------------------------
144 1 Ding_Wei(1,17);Tx_nei_ma(0,0xa0);//按字符内码显示1字符
145 1
146 1
147 1
148 1
149 1 while(1){;}//主循环
150 1
151 1 }
*** WARNING C280 IN LINE 70 OF QL300UART.C: 'j': unreferenced local variable
*** WARNING C280 IN LINE 70 OF QL300UART.C: 'h': unreferenced local variable
*** WARNING C280 IN LINE 70 OF QL300UART.C: 'a': unreferenced local variable
*** WARNING C280 IN LINE 70 OF QL300UART.C: 'b': unreferenced local variable
*** WARNING C280 IN LINE 70 OF QL300UART.C: 'a1': unreferenced local variable
*** WARNING C280 IN LINE 70 OF QL300UART.C: 'b1': unreferenced local variable
*** WARNING C280 IN LINE 71 OF QL300UART.C: 'old1': unreferenced local variable
*** WARNING C280 IN LINE 71 OF QL300UART.C: 'new1': unreferenced local variable
152 //==========================================================================
153 void csf_main(void)//初始化叠加的默认值
154 {UN idata i;
155 1
156 1 cls(1);//按蓝色清屏
157 1
158 1 delay_ms(70);//清屏后至少插入70ms的延时
159 1 }
*** WARNING C280 IN LINE 154 OF QL300UART.C: 'i': unreferenced local variable
160 //----------------------------------------------------------------------------------
161
162
163 void csf_uart()
164 {TMOD=0x21;TH1=0xfa;TL1=0xfa;SCON=0x50;PCON=0x80;//9600波特率
165 1 TR1=1;}
166
167
168 void cls(UN ys)//按指定颜色清屏:ys:0=7
C51 COMPILER V7.06 QL300UART 11/23/2007 13:52:43 PAGE 4
169 {Tx4b(1,ys,0,addr);}
170 //---------------------------------------------
171 void Neiwai_SaoMiao(UN x)//内外屏及扫描方式选择:x=0为内同步;x=1为外同步
172 {Tx4b(2,x,0,addr);}
173
174 //----------------------------------------
175 void hwy(UN h,l)////设定水平方向开始显示的位置h:0-1;l:0-0xff
176 {Tx4b(3,h,l,addr);}
177
178 //----------------------------------------
179 void vwy(UN h,l)//PAL方式下设定垂直方向开始显示的位置h:0-1;l:0-0xff
180 {Tx4b(4,h,l,addr);}
181
182 //----------------------------------------
183 void zfjj(UN x)//字符间距x:0-3
184 {Tx4b(5,x,0,addr);}
185
186 //-------字符大小,设置指定行的字符大小,size=0-3:
187 void size(UN x)
188 {Tx4b(6,x,0,addr);}
189
190 //-------定位,设置要显示的起始位置--------------------
191 void Ding_Wei(UN H,L)
192 {Tx4b(7,H,L,addr);}
193
194 //----------------------------------------
195 void Tx_nei_ma(UN nmH,nmL)//按字符内码显示1字符
196 {Tx4b(8,nmH,nmL,addr);}
197
198 //-------设置默认字符颜色--------------------
199 void MoRen_Color(UN ys)
200 {Tx4b(9,ys,0,addr);}
201
202 ////行距设定0-7
203 void hj(UN x)
204 {Tx4b(10,x,0,addr);}
205
206 //x=0-3;AT1=0无背景显示,AT1=1有背景显示但背景无框架,AT1=2有背景显示且框架阴影在底边,AT1=3有背景显示且框
-架阴影在顶边;默认为0
207 void bk(UN x)
208 {Tx4b(11,x,0,addr);}
209 //阴影颜色x=0-7
210 void yy_ys(UN x)
211 {Tx4b(12,x,0,addr);}
212
213 //框架效果;0-1;默认为1
214 void fxg(UN x)
215 {Tx4b(13,x,0,addr);}
216
217 ////0-2;0=无阴影;1=微阴影;2=强阴影;开关及颜色都在 行距函数里控制
218 void yykg(UN x)
219 {Tx4b(14,x,0,addr);}
220 //0-1;0不闪,1闪
221 void blinking(UN x)
222 {Tx4b(15,x,0,addr);}
223
224 void lxfszf()
225 {Tx4b(16,0,0,addr);
226 1
227 1 }
228
229 //写入1个用户自定义字符点阵数据到指定的用户RAM区;sz[1]=0-7,第二个字节为用户区号//
C51 COMPILER V7.06 QL300UART 11/23/2007 13:52:43 PAGE 5
230
231 void wcode(UN idata zfc[],UN x)
232 {UN i;
233 1 Tx4b(17,x,0,addr);
234 1 i=0xff;
235 1 do
236 1 {i++;write_1byte(zfc[i]);}//发送字符代码
237 1 while(i<96-1);
238 1
239 1 while(RI==0){;}RI=0;//返回的0X55可不判断
240 1 // delay_ms(3);
241 1 }
242
243 //复制1指定的FLASH区(0-15)的点阵数据到指定RAM区 (0-7)
244 void copy_f_r(UN m,n)
245 {Tx4b(19,m,n,addr);delay_ms(2);}
246
247 void disram(UN x)
248 {Tx4b(20,x,0,addr);}
249
250
251
252 void Tx4b(UN a,b,c,d)//连续写4个字节--1个指令
253 {ES=0;write_1byte(0x55);write_1byte(a);write_1byte(b);write_1byte(c);write_1byte(d);ES=1;delay_ms(1);}
254
255
256 void write_1byte(unsigned char x)//写1个字节
257 { unsigned char i=0;
258 1 SBUF=x;while(TI==0){;}TI=0;
259 1 }
260
261 void delay_ms(unsigned int nMs)//豪秒级的延时<65535ms
262 {
263 1 unsigned int n=0;
264 1 TMOD=0x21;
265 1 TR0=1;
266 1 while(n<nMs)////利用T0做定时计数器,循环采样,直到达到定时值
267 1 {
268 2 TH0=0;
269 2 TL0=20;
270 2 while(TH0<4)
271 2 {;
272 3 }
273 2 n++;
274 2 }
275 1 TR0=0;
276 1 }
277
278 void delay(unsigned int x)
279 {do{x--;}
280 1 while(x!=0);
281 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 994 ----
CONSTANT SIZE = 96 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 23
IDATA SIZE = ---- 1
BIT SIZE = ---- ----
C51 COMPILER V7.06 QL300UART 11/23/2007 13:52:43 PAGE 6
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 9 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -