?? lcd1602.lst
字號:
C51 COMPILER V7.50 LCD1602 08/20/2007 10:44:33 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE LCD1602
OBJECT MODULE PLACED IN LCD1602.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LCD1602.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<at89x52.h>
2 #include <intrins.h>
3 #define uchar unsigned char
4 #define LCM_Data P1
5
6
7 sbit rs = P3^7;
8 sbit rw = P3^6;
9 sbit ep = P3^4;
10
11 void delay_ms(unsigned int);
12
13 void lcd_wcmd(uchar);
14 void lcd_bz();
15 void lcd_pos(uchar);
16 void lcd_wdat(uchar);
17 void display(uchar,uchar *);
18
19 uchar code dis1[] = {" www.willar.com "};
20 uchar code dis2[] = {"WELCOME TO WEINA"};
21
22
23 void delay_ms(unsigned int i)
24 {
25 1 unsigned char j;
26 1 while (i--)
27 1 {
28 2 for( j=0;j<123;j++);
29 2 }
30 1 }
31
32
33
34 void lcd_bz()
35 { // ??LCD????
36 1 bit result;
37 1 LCM_Data |= 0x80 ;
38 1 do
39 1 {
40 2 rs = 0;
41 2 rw = 1;
42 2 ep = 1;
43 2 result = (bit)(LCM_Data & 0x80);////
44 2 ep = 0;
45 2 }while (result == 1);
46 1 }
47
48
49
50 void lcd_wcmd(uchar cmd)
51 { // ???????LCD
52 1 lcd_bz();
53 1 rs = 0;
54 1 rw = 0;
55 1 ep = 0;
C51 COMPILER V7.50 LCD1602 08/20/2007 10:44:33 PAGE 2
56 1 LCM_Data = cmd;
57 1 ep = 1;
58 1 ep = 0;
59 1 }
60
61 void lcd_pos(uchar pos)
62 { //??????
63 1 lcd_wcmd(pos | 0x80);
64 1 }
65
66 void lcd_wdat(uchar dat)
67 { //?????????LCD
68 1 lcd_bz();
69 1 rs = 1;
70 1 rw = 0;
71 1 ep = 0;
72 1 LCM_Data = dat;
73 1 ep = 1;
74 1 ep = 0;
75 1 }
76
77 void lcd_init()
78 { //LCD?????
79 1 delay_ms(15);
80 1 lcd_wcmd(0x38); //function set
81 1 delay_ms(5);
82 1 lcd_wcmd(0x38); //function set
83 1 delay_ms(5);
84 1 lcd_wcmd(0x38);
85 1
86 1 lcd_wcmd(0x38);
87 1 lcd_wcmd(0x08); //display on/off
88 1 lcd_wcmd(0x01); //??LCD?????
89 1 delay_ms(5);
90 1 lcd_wcmd(0x06); //entry mode set
91 1 lcd_wcmd(0x0c); //entry mode set
92 1
93 1 }
94
95 /*---------------
96 ????:display()
97 ?? :?LCD????????
98 ?? :??????,??????
99 ?? :lcd_wcmd(), lcd_pos()
100 ????:pos ?????,q?????????????
101 ??? :?
102 ----------------*/
103 void display(uchar pos, uchar *q)
104 {
105 1 uchar i;
106 1 //lcd_wcmd(0x01); //clear
107 1 delay_ms(5);
108 1 lcd_pos(pos);
109 1 for(i=0;i<16;i++)
110 1 {
111 2 lcd_wdat(*q);
112 2 q++;
113 2 delay_ms(250);
114 2 }
115 1 }
116
117 main()
C51 COMPILER V7.50 LCD1602 08/20/2007 10:44:33 PAGE 3
118 {
119 1 //delay_ms(500);
120 1 lcd_init(); // ???LCD
121 1 delay_ms(10);
122 1
123 1 display(0x00,dis1);
124 1 display(0x40,dis2);
125 1 //display(0x14,dis1);
126 1 //display(0x54,dis2);
127 1 //lcd_wcmd(0x07); //entry mode set
128 1 //delay(1);
129 1 while(1)
130 1 { ;
131 2 //display(0x00,dis1);
132 2 //display(0x40,dis2);
133 2 //display(0x14,dis1);
134 2 //display(0x54,dis2);
135 2 }
136 1 }
137
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 223 ----
CONSTANT SIZE = 34 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 3
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -