📄 display.lst
字号:
C51 COMPILER V7.10 DISPLAY 08/24/2007 15:17:09 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE DISPLAY
OBJECT MODULE PLACED IN display.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE display.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "function.h"
2 #include "lcd.h"
3
4 //unsigned char x ;
5 unsigned char y ;
6 unsigned char *hz ;
7 unsigned char xpos;
8 unsigned char ypos;
9 unsigned char lcddata ;
10
11
12 /*********初始化************/
13 void lcd_init( void )
14 {
15 1 Send_cmd( 0x3e,0 ); //关显示
16 1 Send_cmd( 0x3e,1 );
17 1
18 1 Send_cmd( 0xc0,0 ); //起始行
19 1 Send_cmd( 0xc0,1 );
20 1
21 1 Send_cmd( 0x3f,0 ); //开显示
22 1 Send_cmd( 0x3f,1 );
23 1
24 1 lcd_clr( ); //清屏
25 1
26 1 }
27
28 /*******************用于显示汉字或字符的函数*************************************************/
29
30 void write_data(unsigned char xpos,unsigned char ypos,unsigned char lcddata)
31 { if(xpos<128)
32 1 {
33 2 if( ( xpos & 0x40 )== 0 )
34 2 {
35 3 Send_cmd( 0xb8 | ypos ,0);
36 3 Send_cmd( 0x40 | xpos, 0);
37 3 Send_data( lcddata,0 );
38 3 }
39 2 else
40 2 {
41 3 Send_cmd( 0xb8 | ypos ,1 );
42 3 Send_cmd( 0x40 | xpos ,1 );
43 3 Send_data( lcddata , 1 );
44 3 }
45 2 }
46 1 }
47
48
49
50 /*************显示一个字符************/
51 /*void lcd_putchar8x8( unsigned char x,unsigned char y,unsigned char ch )
52 {
53 unsigned char i;
54 for( i = 0; i < 8; i ++ )
55 {
C51 COMPILER V7.10 DISPLAY 08/24/2007 15:17:09 PAGE 2
56 write_data( x+i, y, zifu[(ch - 0x20)*8 + i] );
57 // write_data( x+i, y + 1,zifu[(ch - 0x20)*8 + 8 + i] );
58 }
59 }
60
61 */
62
63 /************** 显示16*16汉字*****************/
64 // x 显示列 y 显示行
65 void hz_disp( unsigned char x, unsigned char y, unsigned char *hz ) //X是判断字从行的那个位置显示.
66 { //
67 1 unsigned char i;
68 1 for( i = 0; i < 16; i++ )
69 1 {
70 2 write_data( x + i, y, hz[ i] );
71 2 write_data( x + i, y + 1, hz[ 16 + i] );
72 2 }
73 1 }
74
75 /************** 显示32*32汉字*****************/
76 void hz_disp32x32( unsigned char x, unsigned char y, unsigned char *hz )
77 {
78 1 unsigned char i;
79 1 for( i = 0; i < 30; i++ )
80 1 {
81 2 write_data( x + i, y, hz[ i] );
82 2 write_data( x + i, y + 1, hz[ 28 + i] );
83 2 write_data( x + i, y+2, hz[57+i] );
84 2 write_data( x + i, y +3, hz[86 + i] );
85 2 }
86 1 }
87
88 void hz_disp128x32( unsigned char x, unsigned char y, unsigned char *hz )
89 {
90 1 unsigned char i;
91 1 for( i = 0; i < 128; i++ )
92 1 {
93 2 write_data( x + i, y, hz[ i] );
94 2 write_data( x + i, y + 1, hz[ 128 + i] );
95 2 write_data( x + i, y + 2, hz[ 256 + i] );
96 2 write_data( x + i, y + 3, hz[ 384 + i] );
97 2 }
98 1 }
99
100 /*
101 /**************画点 x = 0 -- 128 y = 0 -- 64 *************************
102 void set_point( unsigned char x, unsigned char y )
103 {
104 unsigned char d = 0;
105 unsigned char temp =0;
106 unsigned char page1 = 0;
107 temp = y % 8;
108 if( x < 64 )
109 {
110 write_cmd_L( 0xB8 + (y/8) );
111 write_cmd_L( 0x40 + x );
112 d = Rddata();
113 write_cmd_L( 0xB8 + (y/8) );
114 write_cmd_L( 0x40 + x );
115 d = Rddata();
116 write_cmd_L( 0xB8 + (y/8) );
117 write_cmd_L( 0x40 + x );
C51 COMPILER V7.10 DISPLAY 08/24/2007 15:17:09 PAGE 3
118 page1 = d | (1<<temp);
119 write_dat_L( page1 );
120 }
121 else if( x <128 )
122 {
123
124 write_cmd_R( 0xB8 + (y/8) );
125 write_cmd_R( 0x40 + x -64 );
126 d = Rddata();
127 write_cmd_R( 0xB8 + (y/8) );
128 write_cmd_R( 0x40 + x -64 );
129 d = Rddata();
130 write_cmd_R( 0xB8 + (y/8) );
131 write_cmd_R( 0x40 + x - 64 );
132 page1 = d |(1<<temp);
133 write_dat_R( page1 );
134 }
135 else;
136
137 } */
138
139 /************清屏***********/
140 void lcd_clr( void )
141 {
142 1 unsigned char i,j,page;
143 1 for( i = 0; i < 8; i++ )
144 1 {
145 2 page = i;
146 2 page |= 0xb8;
147 2 Send_cmd( page,0 );
148 2 Send_cmd( 0x40,0 );
149 2 for( j = 0; j < 64; j++ )
150 2 Send_data( 0 ,0 );
151 2 Send_data( page,1 );
152 2 Send_data( 0x40,1 );
153 2 for( j = 0; j < 64; j++ )
154 2 Send_data( 0,1 );
155 2
156 2 for( i = 0; i < 8; i++ )
157 2 {
158 3 page = i;
159 3 page |= 0xb8;
160 3 Send_cmd( page,1 );
161 3 Send_cmd( 0x40,1 );
162 3 for( j = 0; j < 64; j++ )
163 3 Send_data( 0 ,1 );
164 3 Send_data( page,0 );
165 3 Send_data( 0x40,0 );
166 3 for( j = 0; j < 64; j++ )
167 3 Send_data( 0,0 );
168 3 }
169 2 }
170 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 587 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 7 18
IDATA SIZE = ---- ----
C51 COMPILER V7.10 DISPLAY 08/24/2007 15:17:09 PAGE 4
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -