📄 lcm.lst
字号:
C51 COMPILER V7.50 LCM 06/22/2006 09:45:46 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE LCM
OBJECT MODULE PLACED IN .\myproject\lcm.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcm.c LARGE OPTIMIZE(5,SPEED) BROWSE DEBUG OBJECTEXTEND OBJECT(.\myproject\
-lcm.obj)
line level source
1
2 #define LCM_GLOBAL
3 #include "config.h"
4
5 INT8U bdata SfrByte;
6
7 sbit SB0 = SfrByte ^ 0;
8 sbit SB1 = SfrByte ^ 1;
9 sbit SB2 = SfrByte ^ 2;
10 sbit SB3 = SfrByte ^ 3;
11 sbit SB4 = SfrByte ^ 4;
12 sbit SB5 = SfrByte ^ 5;
13 sbit SB6 = SfrByte ^ 6;
14 sbit SB7 = SfrByte ^ 7;
15
16
17 INT8U FigureId[10] = {0x77,0x30,0x6e,0x7c,0x39,0x5d,0x5f,0x70,0x7f,0x7d};
18
19 INT8U data chZK[32];
20
21 void ReadZK(INT8U type, INT8U da1, INT8U da2, BOOLEAN y_n_bit)
22 {
23 1 INT8U code *data p1;
24 1 INT32U addr;
25 1 INT8U i, *pZK;
26 1
27 1 switch(type)
28 1 {
29 2 case 0:
30 2 addr = 0x38500;
31 2 addr += (INT32U)da1 * 30L;
32 2 SPI_Read(addr, 30, chZK, y_n_bit);
33 2 break;
34 2
35 2 case 1:
36 2 addr = 0x38000;
37 2 addr += 8L * da1;
38 2 SPI_Read(addr, 8, chZK, y_n_bit);
39 2 break;
40 2
41 2 case 2:
42 2 p1 = 0x6000 + 16L * da1;
43 2 if(y_n_bit)
44 2 {
45 3 for(i=0; i<16; i++)
46 3 chZK[i] = *p1++;
47 3 }
48 2 else
49 2 {
50 3 for(i=0; i<16; i++)
51 3 chZK[i] = (~(*p1++));
52 3 }
53 2 break;
54 2
C51 COMPILER V7.50 LCM 06/22/2006 09:45:46 PAGE 2
55 2 case 3:
56 2 da1 &= 0x7f;
57 2 da2 &= 0x7f;
58 2 addr = ((INT32U)da1 - 0x21) * 94L + ((INT32U)da2 - 0x21);
59 2 addr *= 28;
60 2
61 2 pZK = chZK;
62 2 *pZK++ = 0x00;
63 2 *pZK++ = 0x00;
64 2 SPI_Read(addr, 28, pZK, y_n_bit);
65 2 chZK[30] = 0x00;
66 2 chZK[31] = 0x00;
67 2 break;
68 2
69 2 default:
70 2 return;
71 2 }
72 1 }
73
74
75 /*--------和液晶控制器T6963C有关说明和定义-------
76
77 状态标志字寄存器:PSDR bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
78 STA7 STA6 STA5 STA4 STA3 STA2 STA1 STA0
79
80 STA0:指令读、写状态 =1:准备好 =0:忙
81 STA1:数据读、写状态 =1:准备好 =0:忙
82 STA2:数据自动读状态 =1:准备好 =0:忙
83 STA3:数据自动写状态 =1:准备好 =0:忙
84 STA4:未用
85 STA5:控制器运行检测可能性 =1:可能 =0:不能
86 STA6:屏读/拷贝出错状态 =1:出错 =0:正确
87 STA7:闪烁状态检测 =1:正常显示 =0:关显示
88
89 T6963C可管理64KB字节的显示缓冲区。显示缓冲区的管理是通过地址计数器、图形计数器、字符计数器和CG RAM地址偏移
-寄存器进行寻址管理
90 一般情况下将显示缓冲区划分为文本显示区、图形显示区和CG RAM区,三个区的首地址可通过指令设置
91
92 图形区域的显示原理:图形区域的首地址字节单元中的内容对应显示屏第一行点阵前八个点的显示,1- 点亮,0-灭;依
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -