📄 lcd.lst
字号:
C51 COMPILER V8.02 LCD 09/12/2008 21:03:49 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN lcd.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include"includes.h"
2
3 void mydelay(unsigned int j)
4 {
5 1 unsigned int i;
6 1 for(i=0;i<j;i++);
7 1
8 1 }
9 void lcd_sendcmd(unsigned char da) //向液晶发送指令
10 {
11 1 unsigned char i;
12 1 cs=0;
13 1 a0=0; //指令通道
14 1 sck=1;
15 1 for(i = 0; i < 8; i++)
16 1 {
17 2 da <<= 1;
18 2 cda = CY;
19 2 sck = 0;
20 2 mydelay(10);
21 2 sck = 1;
22 2 mydelay(10);
23 2 }
24 1 cs = 1;
25 1 mydelay(20);
26 1
27 1
28 1 }
29 void lcd_senddata(unsigned char da) //向液晶发送数据
30 {
31 1 unsigned char i;
32 1 cs=0;
33 1 a0=1; //数据通道
34 1 sck=1;
35 1 for(i = 0; i < 8; i++)
36 1 {
37 2 da <<= 1;
38 2 cda = CY;
39 2 sck = 0;
40 2 mydelay(10);
41 2 sck = 1;
42 2 mydelay(10);
43 2 }
44 1 cs = 1;
45 1 mydelay(20);
46 1
47 1
48 1 }
49 void lcd_init(void)
50 {
51 1 res = 1;
52 1 mydelay(32767);
53 1 mydelay(32767);
54 1 lcd_sendcmd(0xE2); //internal reset
55 1 lcd_sendcmd(0xA2); //d0:Set LCD drive voltage bias ratio 0=1/9bias 1=1/7bias
C51 COMPILER V8.02 LCD 09/12/2008 21:03:49 PAGE 2
56 1 lcd_sendcmd(0xC8); //d3:select COM output direction 0=normal 1=reverse
57 1 lcd_sendcmd(0xA0); //d0:select SEG output direction 0=normal 1=reverse
58 1 lcd_sendcmd(0xA6); //d0=0display normal;=1reverse
59 1 lcd_sendcmd(0xf8); //select booster ratio
60 1 lcd_sendcmd(0x00); //d0\d1=00:4x
61 1 lcd_sendcmd(0x2C); //d2:1=select internal power supply operating mode
62 1 lcd_sendcmd(0x2E); //
63 1 lcd_sendcmd(0x2F);
64 1 // lcd_sendcmd(0x25); //select internal resistor ratio(RB/RA)mode
65 1 lcd_sendcmd(0x81); //select the VO output voltage electronic volume register
66 1 lcd_sendcmd(0x14); //select the VO output voltage electronic volume register
67 1 lcd_sendcmd(0x0e); //select the VO output voltage electronic volume register
68 1 lcd_sendcmd(0xAF); //d0:LCD display ON=1/OFF=0
69 1 lcd_sendcmd(0xE0);
70 1 lcd_sendcmd(0x40); //Set the display RAM start line address
71 1 }
72
73 void Set_Page_Address(unsigned char dat) //设置页地址
74 {
75 1 lcd_sendcmd(0xb0|dat);
76 1 }
77
78 void Set_Colume_Address(unsigned char dat) //设置列地址
79 {
80 1 unsigned char tmp;
81 1 tmp=dat>>4;
82 1 lcd_sendcmd(0x10|tmp); //送列地址高三位
83 1 tmp=0x0f&dat;
84 1 lcd_sendcmd(tmp); //送列地址低四位
85 1 }
86 void lcd_clr(void) //清屏
87 {
88 1 unsigned char i,j;
89 1 for(i = 0; i < 8; i++)
90 1 {
91 2 Set_Page_Address(i);
92 2 Set_Colume_Address(0);
93 2
94 2 for(j = 0; j < 128; j++)
95 2 {
96 3 lcd_senddata(0x00);
97 3
98 3 }
99 2 }
100 1 }
101 void lcd_drawpot(unsigned char x/*0-127*/, unsigned char y/*0-63*/)
102 {
103 1 unsigned char temp;
104 1 Set_Colume_Address(x);
105 1 Set_Page_Address(y>>3);
106 1 y &= 0x07;
107 1 temp = 1<<y;
108 1 lcd_senddata(temp);
109 1 }
110 //x每写一个字+16,y换行+1
111 void lcd_drawhanzimo(unsigned char x/*0-127*/,unsigned char y/*0-7*/,unsigned char* ptr)
112 {
113 1 unsigned int i;
114 1
115 1 Set_Page_Address(y);
116 1 Set_Colume_Address(x);
117 1 for(i = 0; i<16; i ++)
C51 COMPILER V8.02 LCD 09/12/2008 21:03:49 PAGE 3
118 1 lcd_senddata(*(ptr+i));
119 1
120 1 Set_Page_Address(y+1);
121 1 Set_Colume_Address(x);
122 1 for(i = 0; i<16; i++)
123 1 lcd_senddata(*(ptr+i+16));
124 1 }
125
126
127 void lcd_drawnumber(unsigned char x/*0-127*/,unsigned char y/*0-7*/,unsigned char* ptr)
128 {
129 1 unsigned int i;
130 1 Set_Page_Address(y);
131 1 Set_Colume_Address(x);
132 1 for(i = 0; i<8; i ++)
133 1 lcd_senddata(*(ptr+i));
134 1
135 1 Set_Page_Address(y+1);
136 1 Set_Colume_Address(x);
137 1 for(i = 0; i<8; i++)
138 1 lcd_senddata(*(ptr+i+8));
139 1
140 1 }
141
142
*** WARNING C316 IN LINE 142 OF lcd.c: unterminated conditionals
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 609 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 16
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -