?? demo.lst
字號(hào):
C51 COMPILER V4.01, DEMO 15/10/01 14:15:50 PAGE 1
DOS C51 COMPILER V4.01, COMPILATION OF MODULE DEMO
OBJECT MODULE PLACED IN F:\C_SOFT\SED1335\DEMO.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE F:\C_SOFT\SED1335\DEMO.C DB SB OE
stmt level source
1 #include <reg51.h>
2 #include <stdio.h>
3 #include <math.h>
4 #include <absacc.h>
5 #include <string.h>
6 /* 直接訪問(wèn)方式地址定義,根據(jù)用戶平臺(tái)接口修改 */
7 #define wcadd1 XBYTE[0x8100] /* 寫指令代碼地址 */
8 #define wdadd1 XBYTE[0x8000] /* 寫參數(shù)及顯示數(shù)據(jù)地址 */
9 #define rdadd1 XBYTE[0x8100] /* 讀參數(shù)及顯示數(shù)據(jù)地址 */
10 #define rbadd1 XBYTE[0x8000] /* 讀忙狀態(tài)地址 */
11 /* 程序參數(shù)定義,根據(jù)用戶選擇的LCM型號(hào)修改 */
12 #define PARA 0x1f;
13 /* 定義調(diào)用函數(shù) */
14 CCW1_PR(char O_X,char O_Y,char code_1); /* 漢字寫入函數(shù)(文本方式) */
15 CCW2_PR(char O_X,char O_Y,char code_1); /* 漢字寫入函數(shù)(圖形方式) */
16 W_DOT(int O_X,int O_Y ); /* 繪點(diǎn)函數(shù) */
17 CW_PR(O_X,O_Y); /* 西文寫入函數(shù) */
18 /*-------------------240128的SYSTEM SET 參數(shù)-------------------------------*/
19 unsigned char SYSTAB[8]={0x30,0x87,0x07,0x1e,0x21,0x80,0x1f,0x00};
20 unsigned char SCRTAB[10]={0x00,0x00,0x80,0xf0,0x01,0x80,0x00,0x00,0x00,0x00};
21 /* 在此可以觀察文本方式下的字符及光標(biāo)的顯示效果(寫入內(nèi)容為"Sevicer tel:") */
22 unsigned char CTAB1[12]={0x53,0x65,0x76,0x69,0x63,0x65,0x72,0x20,0x54,0x45,0x4c,0x3a};
23 /* 文本方式下的漢字顯示方法
24 在文本方式下顯示漢字, 需要在SED1335 等顯示RAM 內(nèi)建立一個(gè)自定義字符庫(kù)
25 CGRAM,然后通過(guò)在相應(yīng)的單元寫入相應(yīng)的字符代碼來(lái)實(shí)現(xiàn)漢字的顯示.
26 SED1335 等的字符代碼對(duì)應(yīng)的是8x8 點(diǎn)陣的字符塊, 而一個(gè)漢字需要四個(gè)8x8
27 點(diǎn)陣的字符塊組合顯示, 所以在建立漢字的CGRAM 時(shí), 需要四個(gè)字符代碼管理一個(gè)
28 漢字, 一般是按左上部, 左下部, 右上部和右下部四部分分配代碼. 比如在演示程
29 序中建立 "清華" 兩個(gè)漢字的CGRAM,那么這兩個(gè)漢字的代碼為80H(81H,82H,83H)和
30 84H(85H,86H,87H). */
31 code unsigned char CGTAB[4][32]={0x00,0x40,0x37,0x10,0x83,0x60,0x2F,0x08, /* 清 */
32 0x13,0x22,0xE3,0x22,0x23,0x22,0x22,0x22,
33 0x40,0x48,0xFC,0x40,0xF8,0x40,0xFE,0x08,
34 0xFC,0x08,0xF8,0x08,0xF8,0x08,0x28,0x10,
35 0x04,0x04,0x08,0x08,0x18,0x29,0x4A,0x08, /* 華 */
36 0x09,0x01,0xFF,0x01,0x01,0x01,0x01,0x01,
37 0x40,0x48,0x58,0x60,0xC0,0x40,0x44,0x44,
38 0x3C,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,
39 0x04,0xFF,0x05,0x41,0x33,0x14,0x01,0xF6, /* 蓬 */
40 0x1B,0x10,0x13,0x10,0x17,0x10,0x28,0x47,
41 0x44,0xFE,0x40,0xF8,0x10,0xE0,0x18,0x46,
42 0xF8,0x40,0xF8,0x40,0xFC,0x40,0x46,0xFC,
43 0x00,0x43,0x30,0x10,0x00,0x07,0xF1,0x11, /* 遠(yuǎn) */
44 0x11,0x11,0x12,0x12,0x14,0x28,0x47,0x00,
45 0x10,0xF8,0x00,0x00,0x08,0xFC,0x20,0x20,
46 0x20,0x24,0x24,0x1C,0x00,0x06,0xFC,0x00 };
47 /**********************/
48 /* 演示主程序 */
49 /**********************/
50 void main()
51 {
52 1 unsigned char i,j,code_1;
53 1 unsigned int k,O_X,O_Y;
54 1 INT_1(); /* 調(diào)初始化函數(shù) */
*** WARNING 206 IN LINE 54 OF F:\C_SOFT\SED1335\DEMO.C: 'INT_1': missing function-prototype
55 1 k=0;
56 1 for(j=0;j<128;j++) /* 繪點(diǎn)顯示 */
57 1 {
58 2 O_X=k;
C51 COMPILER V4.01, DEMO 15/10/01 14:15:50 PAGE 2
59 2 O_Y=j+0x10;
60 2 W_DOT(O_X,O_Y); /* 調(diào)繪點(diǎn)函數(shù) */
61 2 k++;
62 2 if(k>240)break;
63 2 }
64 1 for(j=126;j>0;j--)
65 1 {
66 2 O_X=k;
67 2 O_Y=j+0x10;
68 2 W_DOT(O_X,O_Y); /* 調(diào)繪點(diǎn)函數(shù) */
69 2 k++;
70 2 if(k>240)break;
71 2 }
72 1
73 1 code_1=0x00; /* 中文顯示(圖形方式) */
74 1 O_X=0x10+0x02;
75 1 O_Y=0x00;
76 1 CCW2_PR(O_X,O_Y,code_1); /* 調(diào)中文顯示函數(shù)(圖形方式) */
77 1 code_1=0x01;
78 1 O_X=0x10+0x19;
79 1 O_Y=0x00;
80 1 CCW2_PR(O_X,O_Y,code_1); /* 調(diào)中文顯示函數(shù)(圖形方式) */
81 1 code_1=0x02;
82 1 O_X=0x10+0x02;
83 1 O_Y=0x6f;
84 1 CCW2_PR(O_X,O_Y,code_1); /* 調(diào)中文顯示函數(shù)(圖形方式) */
85 1 code_1=0x03;
86 1 O_X=0x10+0x19;
87 1 O_Y=0x6f;
88 1 CCW2_PR(O_X,O_Y,code_1); /* 調(diào)中文顯示函數(shù)(圖形方式) */
89 1
90 1 /*------- 中文顯示(文本方式)----------- */
91 1 CGRAM(); /* 調(diào)CGRAM子程序 */
*** WARNING 206 IN LINE 91 OF F:\C_SOFT\SED1335\DEMO.C: 'CGRAM': missing function-prototype
92 1 code_1=0x80; /* 取字模 */
93 1 O_X=0x00;
94 1 O_Y=0x02;
95 1 CCW1_PR(O_X,O_Y,code_1); /* 調(diào)中文顯示函數(shù)(文本方式) */
96 1 code_1=0x84; /* 取字模 */
97 1 O_X=0x1c;
98 1 O_Y=0x04;
99 1 CCW1_PR(O_X,O_Y,code_1); /* 調(diào)中文顯示函數(shù)(文本方式) */
100 1 code_1=0x88; /* 取字模 */
101 1 O_X=0x00;
102 1 O_Y=0x0e;
103 1 CCW1_PR(O_X,O_Y,code_1); /* 調(diào)中文顯示函數(shù)(文本方式) */
104 1 code_1=0x8c; /* 取字模 */
105 1 O_X=0x1c;
106 1 O_Y=0x0e;
107 1 CCW1_PR(O_X,O_Y,code_1); /* 調(diào)中文顯示函數(shù)(文本方式) */
108 1
109 1 /*------------西文顯示-------------*/
110 1 wcadd1=0x5d; /* 設(shè)光標(biāo)形狀 */
111 1 wdadd1=0x07;
112 1 wdadd1=0x03;
113 1 wcadd1=0x5b; /* OVLAY代碼 */
114 1 wdadd1=0x01;
115 1 wcadd1=0x59; /* DISP ON\OFF代碼 */
116 1 wdadd1=0x56;
117 1 O_X=0; /*X軸方向取值0~29(十進(jìn)制)*/
118 1 O_Y=0; /*Y軸方向取值0~15(十進(jìn)制)*/
119 1 CW_PR(O_X,O_Y); /* 調(diào)西文寫入函數(shù) */
120 1 }
121 /********************/
122 /* 初始化函數(shù) */
123 /********************/
C51 COMPILER V4.01, DEMO 15/10/01 14:15:50 PAGE 3
124 INT_1()
125 {
126 1 unsigned char i;
127 1 wcadd1=0x40; /* SYSTEM SET代碼 */
128 1 for(i=0;i<8;i++)
129 1 {
130 2 wdadd1=SYSTAB[i]; /* 寫入?yún)?shù) */
131 2 }
132 1 wcadd1=0x44; /* SCROLL代碼 */
133 1 for(i=0;i<10;i++)
134 1 {
135 2 wdadd1=SCRTAB[i]; /* 寫入?yún)?shù) */
136 2 }
137 1 wcadd1=0x5a; /* HDOT SCR 代碼 */
138 1 wdadd1=0x00; /* 設(shè)置參數(shù)P1 */
139 1 wcadd1=0x5b; /* OVLAY 代碼 */
140 1 wdadd1=0x00; /* 設(shè)置參數(shù):顯示一,三區(qū)為文本屬性 */
141 1 CLEAR(); /* 調(diào)清屏函數(shù) */
*** WARNING 206 IN LINE 141 OF F:\C_SOFT\SED1335\DEMO.C: 'CLEAR': missing function-prototype
142 1 wcadd1=0x59; /* 顯示狀態(tài)設(shè)置 */
143 1 wdadd1=0x54; /* 設(shè)置參數(shù):顯示一~四區(qū)開顯示 */
144 1 }
145 /*********************/
146 /* 清屏函數(shù) */
147 /*********************/
148 CLEAR()
149 {
150 1 unsigned int i,j;
151 1 wcadd1=0x4c; /* CSRDIR 代碼 */
152 1 wcadd1=0x46; /* CSRW 代碼 */
153 1 wdadd1=0x00; /* 設(shè)置參數(shù)光標(biāo)指針低8位 */
154 1 wdadd1=0x00; /* 設(shè)置參數(shù)光標(biāo)指針高8位 */
155 1 wcadd1=0x42; /* MWRITE 代碼 */
156 1 for(j=0;j<2195;j++)
157 1 {
158 2 for(i=0;i<30;i++)
159 2 {
160 3 wdadd1=0x00; /* 寫入數(shù)據(jù) */
161 3 }
162 2 }
163 1 }
164 /********************/
165 /* CGRAM函數(shù) */
166 /********************/
167 CGRAM()
168 {
169 1 unsigned char i,j;
170 1 wcadd1=0x5c; /* CGRAMADR 代碼 */
171 1 wdadd1=0x00; /* 設(shè)置SAG=0x3000 */
172 1 wdadd1=0x30;
173 1 wcadd1=0x46; /* CSRW 代碼 */
174 1 wdadd1=0x00; /* 設(shè)置CSR=0x3400(字符代碼=80H) */
175 1 wdadd1=0x34;
176 1 wcadd1=0x4c; /* CSRDIR 代碼 */
177 1 wcadd1=0x42; /* MWRITE 代碼 */
178 1 for(j=0;j<4;j++)
179 1 {
180 2 for(i=0;i<32;i++)
181 2 {
182 3 wdadd1=CGTAB[j][i]; /* 寫入字模數(shù)據(jù) */
183 3 }
184 2 }
185 1 }
186 /*************************/
187 /* 寫漢字函數(shù)(文本方式) */
188 /*************************/
C51 COMPILER V4.01, DEMO 15/10/01 14:15:50 PAGE 4
189 CCW1_PR(char O_X,char O_Y,code_1)
190 {
*** WARNING 235 IN LINE 190 OF F:\C_SOFT\SED1335\DEMO.C: parameter 3: different types
191 1 unsigned int i,j;
192 1 i=PARA;
193 1 j=i*O_Y+O_X;
194 1 wcadd1=0x4f; /* CSRDIR 代碼(下移) */
195 1 wcadd1=0x46; /* CSRW 代碼 */
196 1 wdadd1=j%256; /* 設(shè)置光標(biāo)地址 */
197 1 wdadd1=j/256;
198 1 wcadd1=0x42; /* MWRITE 代碼 */
199 1 wdadd1=code_1; /* 寫入漢字代碼 */
200 1 wdadd1=code_1+1; /* 寫入漢字代碼 */
201 1 j++;
202 1 wcadd1=0x46; /* CSRW 代碼 */
203 1 wdadd1=j%256; /* 設(shè)置光標(biāo)地址 */
204 1 wdadd1=j/256;
205 1 wcadd1=0x42; /* MWRITE 代碼 */
206 1 wdadd1=code_1+2; /* 寫入漢字代碼 */
207 1 wdadd1=code_1+3; /* 寫入漢字代碼 */
208 1 }
209 /************************/
210 /* 寫漢字函數(shù)(圖形方式)*/
211 /************************/
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -