?? main.lst
字號:
C51 COMPILER V7.07 MAIN 11/19/2004 17:55:36 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: c:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //漢顯液晶模塊HZ132-64演示程序
2 //該模塊是一款使用簡便,功能多樣的漢顯模塊!
3 //模塊的資料請到 http://www.laogu.com/product/wwwlcm/index.htm 查看
4 //本例僅用了簡單的送數據到串口的方法就實現了文字的任意位置顯示,作圖,顯示圖片,t9兼容輸入法等操作
5 //本例程由'51單片機世界http://www.mcu51.com'的版主丁丁編寫,Email:mcu52@163.com
6 //2002年11月24日調試成功
7
8 #define uchar unsigned char
9 #define uint unsigned int
10 #define ulong unsigned long
11
12 extern char getbyte(void); //從接收緩沖區取一個byte,如不想等待則在調用前檢測inbufsign是否為1。
13 extern putbyte(char c); //放入一個字節到發送緩沖區
14 extern putstring(uchar *puts); //發送一個定義在程序存儲區的字符串到串口
15 extern putbytes(uchar *outplace,uint j);//放一串數據到發送緩沖區,需要定義發送的字節數
16 extern puthex(uchar c); //發送一個字節的hex碼,分成兩個字節發。
17 extern bit inbufsign; //串口接收到數據標志
18 #define CR putstring("\r\n") //發送一個回車換行
19 extern void serial_init (void); //串口初始化
20
21 //灰度
22 void lcd_light(uchar ch)
23 {
24 1 while(inbufsign)getbyte();
25 1 if(ch>0x3f)
26 1 return;
27 1 putbyte(0x1b);
28 1 putbyte(0x31);
29 1 putbyte(ch);
30 1 getbyte();getbyte();
31 1 }
32
33 //清屏
34 void lcd_cls(void)
35 {
36 1 while(inbufsign)getbyte();
37 1 putbyte(0x1b);
38 1 putbyte(0x32);
39 1 getbyte();getbyte();
40 1
41 1 }
42
43 // 設置光標位置
44 void lcd_cursor(uchar x, uchar y)
45 {
46 1 while(inbufsign)getbyte();
47 1 putbyte(0x1b);
48 1 putbyte(0x33);
49 1 putbyte(x);
50 1 putbyte(y);
51 1 getbyte();getbyte();
52 1
53 1 }
54
55 //閃爍還是關閉光標
C51 COMPILER V7.07 MAIN 11/19/2004 17:55:36 PAGE 2
56 void lcd_showcursor(uchar attr)
57 {
58 1 while(inbufsign)getbyte();
59 1 putbyte(0x1b);
60 1 putbyte(0x34);
61 1 putbyte(attr);
62 1 getbyte();getbyte();
63 1
64 1 }
65
66 //顯示字符串
67 void lcd_string(uchar attr,uchar *string)
68 {
69 1 while(inbufsign)getbyte();
70 1 putbyte(0x1b);
71 1 putbyte(0x37);
72 1 putbyte(attr);
73 1 putstring(string);
74 1 putbyte(0x00);
75 1 getbyte();getbyte();
76 1
77 1 }
78
79 //畫點
80 void lcd_dot(uchar attr,uchar x,uchar y)
81 {
82 1 while(inbufsign)getbyte();
83 1 putbyte(0x1b);
84 1 putbyte(0x38);
85 1 putbyte(attr);
86 1 putbyte(x);
87 1 putbyte(y);
88 1 getbyte();getbyte();
89 1
90 1 }
91
92 //畫線
93 void lcd_line(uchar attr,uchar x0,uchar y0,uchar x1,uchar y1)
94 {
95 1 while(inbufsign)getbyte();
96 1 putbyte(0x1b);
97 1 putbyte(0x39);
98 1 putbyte(attr);
99 1 putbyte(x0);
100 1 putbyte(y0);
101 1 putbyte(x1);
102 1 putbyte(y1);
103 1 getbyte();getbyte();
104 1
105 1 }
106
107 //畫圓
108 void lcd_circle(uchar attr,uchar ox,uchar oy,uchar rx)
109 {
110 1 while(inbufsign)getbyte();
111 1 putbyte(0x1b);
112 1 putbyte(0x41);
113 1 putbyte(attr);
114 1 putbyte(ox);
115 1 putbyte(oy);
116 1 putbyte(rx);
117 1 getbyte();getbyte();
C51 COMPILER V7.07 MAIN 11/19/2004 17:55:36 PAGE 3
118 1
119 1 }
120
121 // 畫圖片,*picture_data指向圖片數據,圖片數據的第一二個字節是圖片寬度和圖片高度
122 void lcd_picture(uchar attr,uchar x0,uchar y0,uchar *picture_data)
123 {
124 1 putbyte(0x1b);
125 1 putbyte(0x42);
126 1 putbyte(attr);
127 1 putbyte(x0);
128 1 putbyte(y0);
129 1 putbytes(picture_data,(((*picture_data)+7)/8)*(*(picture_data+1))+2);
130 1 getbyte();getbyte();
131 1
132 1 }
133
134 //畫ICON
135 void lcd_icon(uchar attr,uchar ch)
136 {
137 1 while(inbufsign)getbyte();
138 1 putbyte(0x1b);
139 1 putbyte(0x43);
140 1 putbyte(attr);
141 1 putbyte(ch);
142 1 getbyte();getbyte();
143 1
144 1 }
145
146
147 //取數字組合的有效拼音組合,
148 //*num指向輸入的數字,
149 //返回的有效拼音組合放在pinyin[6][8]
150 //函數返回返回有效拼音的個數
151 uchar lcd_num2pinyin(uchar *num, uchar pinyin[6][8])
152 {
153 1 ulong n=0;//超時用
154 1 uchar m,i,j,ch;
155 1 while(inbufsign)getbyte(); //清空串口緩沖區
156 1 putbyte(0x1b);
157 1 putbyte(0x47);
158 1 putstring(num);
159 1 putbyte(0x00);
160 1 while(1)
161 1 {
162 2 if(inbufsign)//串口接收到了數據
163 2 {
164 3 if(getbyte()==0x1b)
165 3 {
166 4 m=getbyte();//查到的總條數
167 4 for(i=0;i<m;i++)
168 4 {
169 5
170 5 for(j=0;;j++)
171 5 {
172 6 ch=getbyte();
173 6 pinyin[i][j]=ch;
174 6 if(ch==0)break;
175 6 }
176 5 }
177 4 getbyte();getbyte();
178 4
179 4 return(m);
C51 COMPILER V7.07 MAIN 11/19/2004 17:55:36 PAGE 4
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -