📄 1335c51.lst
字号:
210 #define Ovlay 0x5b
211 /* 该指令设置了显示区的合成显示方式以及显示1区和3区的显示方式。该指令带有一个参
212 数。参数的功能如下:
213 P [ 0 0 0 OV DM2 DM1 MX1 MX0 ]
214 OV...显示合成设置位。=0为二重合成显示,用于文本与图形或图形与图形的混合显示;=1为
215 三重合成显示,仅用于图形混合显示。
216 [说明1]:二重合成显示方式是将两个显示区的内容经某一种逻辑运算合成出新的显示数据
217 从而产生新的显示画面。该方式将以第一、第二显示区为主,第三第四显示区为辅的合
218 成,合成方式如下:
219
220 SAD2 +--------+ --- SAD2 +----------+ ---
221 |L2 | |L2 | ^
222 SAD1 +--------+ | SAD1-+---------+ | |
223 |L1 | | SL2 |L1 | |
224 (SL1) | | | (SL1) | | | SL2
225 | |-+ --- SAD3 |---------| | |
226 | | | |L3 |---+ ---
227 +--------+ + 新数据 (L/F-SL1)| | |
228 逻辑 +---------+ - +->新数据
229 运算 逻辑
230 运算
231 (a)单屏结构:显示1,2区参加的 (b)单屏结构:显示1,2,3区参加的
232 二重合成显示方式 二重合成显示方式(一)
233
234
235 SAD2-- +----------+ ---- SAD2-- +-----------+ ---
236 | L2 | (SL2) | L2 | (SL2)
237 SAD1--+---------+ | SAD1- +----------+ |
238 | L1 |--+ - SAD3 (SL1) | L1 |--+ ---
239 | |L3| | |L4| (L/F-SL2)
240 | | | (SL3) SAD3- +----------+ |
241 | |--+ ---- | L3 |--+ ---
C51 COMPILER V8.15 1335C51 10/29/2008 21:06:48 PAGE 5
242 | | v (L/F-SL1)| | v
243 +---------+- + 新数据 +----------+->+ 新数据
244 逻辑 逻辑
245 运算 运算
246
247 (c)单屏结构:显示1,2,3区参加的 (d)单屏结构:显示1,2,3,4区参加的
248 二重合成限时方式(二) 二重合成限时方式
249
250 [说明2]:三重合成显示方式是将三个显示区的内容经某一种或二种逻辑运算合成出新的显示
251 数据从而产生新的显示画面。该方式将以第一、第二、第三显示区参加的合成,合成方
252 式如下:
253
254
255 SAD3------ +---------------+
256 | L3 |
257 SAD2---- +---------------+ |
258 |L2 | |
259 SAD1-- +---------------+ | |
260 |L1 | |--+
261 | | | |
262 | |--+ |
263 | | v v
264 +---------------+->+--+->新数据
265 逻辑
266 运算
267
268 MX1,MX0....显示合成方式设置位。组合设置了4种合成显示方式:
269
270 ==============================================================================
271 MX1 MX0 合成方式 用途
272 ==============================================================================
273 0 0 L1 or L2 or L3 简单逻辑或合成 底线坐标和文本图形混合显示
274 0 1 (L1 xor L2) or L3 逻辑异或。或合成 负向字符显示,区域内闪烁底线
275 1 0 (L1 and L2) or L3 逻辑与。或合成 简单动画立体表达式
276 1 1 L1 > L2 > L3 优先叠加 简单动画立体表达式
277 ==============================================================================
278 [说明]
279 1。合成显示产生的结果仅改变显示画面而不改变各显示区的内容
280 2。优先叠加合成显示是三个显示区以L1覆盖L2、L2覆盖L3的方式逻辑或合成显示,当关
281 闭L1时,L2和L3与L1相同的显示部分(为'1'处)被关闭;当L2被关闭时,L3与L2相同显
282 示的部分(为'1'处)被关闭。
283
284 DM1.......显示一区的显示属性位。DM1=0设置显示一区为文本显示属性,其数据均作为字
285 符代码处理;=1设置显示一区为图形显示属性,其数据均作为图形数据处理。
286
287 DM2.......显示三区的显示属性位。DM2=0设置显示三区为文本显示属性,其数据均作为字
288 符代码处理;=1设置显示三区为图形显示属性,其数据均作为图形数据处理。
289 */
290
291 //点位移设置。A0=1..写指令/0...读写参数;/WR=0;/RD=1.后续参数1字节:
292 #define HdotScr 0x5a
293
294 /*该指令设置了以点为单位的显示画面的水平位移量。该指令的作用有二:1。在制作负向
295 显示字符时,与'SYSTEM SET'参数'IV'结合使用。通过设置该指令可以产生做边界,使得行
296 首字符有比较好的显示效果。2。在制作画面滚动显示效果时与'SCROOLL'指令结合产生水平
297 向点滚动的效果。但要注意的是该指令控制在显示数据合成之后向驱动系统输出之处,故该
298 指令所产生的滚动效果是针对所有参加显示的区,因此,要想使某一显示区产生点滚动而其
299 他显示区不动是不可能的??(可以在调用本指令以前先关闭其他显示区?)
300 附带参数: [ 0 0 0 0 0 D ]
301 D......水平点位移参数。D取值在0~7,当D取值由0->7方向递增时,显示画面呈现左移效果,
302 反之右移。
303 [说明]:与SCROLL指令结合使用方法:显示左移时,首先使用HDOY SCR指令使点位移参数从
C51 COMPILER V8.15 1335C51 10/29/2008 21:06:48 PAGE 6
304 0->7然后使用SCROLL指令将显示起始地址SAD加1,并同时将HDOT SCR参数清零。循环上述过
305 程,将产生显示水平向左点位移的效果。显示右移时,首先使用HDOY SCR指令使点位移参数
306 从7->0,然后使用SCROLL指令将显示起始地址SAD减1,并同时将HDOT SCR参数置7。循环上
307 述过程,将产生显示水平向右点位移的效果。
308 */
309
310 //光标形状设置。A0=1..写指令/0...读写参数;/WR=0;/RD=1.后续参数2字节
311 #define CsrForm 0x5d
312
313 /* 该指令设置了光标的显示形状。光标的显示形状有线状形式和块状形式两种。光标的形
314 状是可以设置的。该指令所带的两个参数将实现对光标形状的设置。两参数功能如下:
315 P1 [ 0 0 0 0 0 CRX ]
316 CRX....光标形状水平方向点列数。CRX取值 0~7,对应实际点列1~8点, CRX<=FX.
317
318
319 P2 [ CM 0 0 0 0 CRY ]
320 CRY....光标形状垂直方向点行数。CRY取值范围 1~FH,对应实际点行1~16行,CRY=0或
321 CRY>FY无效
322 CM.....光标形状选择位。=0为线状光标显示;=1为块状光标显示。
323 [说明]:线状光标的形状由CRX确定其长度,由CRY确定其所占的显示行数,当CRY=FY时,
324 光标显示底线形式。光标显示仅在文本方式下有效。
325 */
326
327 //Cgram首地址设置.A0=1..写指令/0...读写参数;/WR=0;/RD=1.后续参数2字节
328 #define CgramAdr 0x5c
329
330 /* 该指令设置了CGRAM在显示存储器内的起始地址SAG.从该地址SAG起的2K字节空间(M2=0)
331 或4K字节空间(M2=1)为CGRAM区域。该指令带有两个参数:
332 P1 [ SAGL ]
333 P2 [ SAGH ]
334 SAG.... CGRAM起始地址。SAGL为SAG的低8位,SAGH为SAG的高8位。
335 [说明]SAG所指向对应的是字符代码0的字模首地址,所以对于CGRAM1的首地址应该是SAG+
336 0x80*8,CGRAM2区域的字符代码为0xE0~0xFF,但是由于控制部在CGRAM2的首地址上安置了异
337 或0x40的电路,所以,CGRAM2的地址应按0xA0~0xBF计算,即CGRAM2的首地址为SAG+0xA0*8
338 */
339
340 //光标移动方向设置。A0=1;/WR=0;/RD=1.后续参数:无
341 #define CsrDirR 0x4c
342 #define CsrDirL 0x4d
343 #define CsrDirU 0x4e
344 #define CsrDirD 0x4f
345
346 /* 该指令规定了光标指针CSR在计算机读写显示数据后自动修复的方向,从显示效果来说,
347 就是光标移动的方向设置。该指令的两个参数位DR1,DR0:
348 ===========================
349 DR1 DR0 自动定位方向
350 ===========================
351 0 0 右
352 0 1 左
353 1 0 上
354 1 1 下
355 ===========================
356
357 */
358 //光标指针设置。A0=1..写指令/0...读写参数;/WR=0/1;/RD=1/0(指令/后续参数读写).后
359 //续参数2字节
360
361 #define CsrW 0x46
362
363 /* 该指令设置了光标指针CSR.该指针有两个功能:1。作为当前光标显示的位置;2。作为
364 显示存储器当前的地址指针。2个参数:CSRL,CSRH
365
C51 COMPILER V8.15 1335C51 10/29/2008 21:06:48 PAGE 7
366 [说明]:当光标指针指向有效显示区域之外时,光标将自动消失,但不影响显示数据的读写。
367 光标指针在计算机的每次读写显示数据操作后,将根据最近设置的光标指针移动方向而自动
368 修正。光标指针不受画面滚动操作的影响。
369 */
370
371 //读取光标指针。A0=1..写指令/0...读写参数;/WR=0;/RD=1.后续参数2字节
372 #define CsrR 0x47
373
374 /* 该指令代码写入后,计算机将从SED1335等数据通道读出当前的光标指针值。光标指针读
375 出的顺序是先CSRL再CSRH.
376 */
377
378 //数据写入设置。A0=1..写指令/0...读写参数;/WR=0;/RD=1.后续参数N字节
379 #define mWrite 0x42
380
381 /*该指令写入后将允许计算机连续的向显示存储器内写入数据。写入的单元地址由光标指针
382 CSR提供,写操作完成后光标指针自动根据所设置的光标指针移动方向进行修改。显示数据
383 写入操作在计算机写入下一指令代码后结束。
384 */
385
386 //数据读取设置。A0=1..写指令/0...读写参数;/WR=0;/RD=1.后续参数N字节
387 #define mRead 0x43
388
389 // 程序参数定义,根据用户选择的LCM型号修改
390 #define Busy 0x40 // 忙状态标志位0b0100 0000
391 #define paraP9 0x28 // 相对于320 X 240
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406 #if 0
//菜单光标控制程序,控制光标开/关
void SurCtl(uint x0, uchar y0, uint xt, uchar yt, uchar att)
{
Rectangle(x0-7, y0-7, xt+7, yt+7, att);
Rectangle(x0-6, y0-6, xt+6, yt+6, att);
Rectangle(x0-5, y0-5, xt+5, yt+5, att);
if(att==0)
{
Linexy(x0-8,y0-8,x0-4,y0-4,1);
Linexy(x0-8,yt+8,x0-4,yt+4,1);
Linexy(xt+8,y0-8,xt+4,y0-4,1);
Linexy(xt+8,yt+8,xt+4,yt+4,1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -