📄 lcd1602.lst
字号:
C51 COMPILER V6.12 LCD1602 04/08/2008 12:55:02 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE LCD1602
OBJECT MODULE PLACED IN .\lcd1602.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\lcd1602.c DEBUG OBJECTEXTEND
stmt level source
1 #include <reg52.h>
2 #define uchar unsigned char
3
4 sbit RS=P2^0;
5 sbit RW=P2^1;
6 sbit E=P2^2;
7
8 void delay(uchar t)
9 {
10 1 uchar i;
11 1 for(;t>0;t--)
12 1 for(i=164;i>0;i--);
13 1 }
14
15 uchar read(bit cmd_dat,bit rd_wr)
16 {
17 1 uchar rd_dat;
18 1 E=0;
19 1 RS=cmd_dat;
20 1 RW=rd_wr;
21 1 E=1;
22 1 rd_dat=P0;
23 1 return rd_dat;
24 1 }
25
26 void lcd_write(bit cmd_dat,bit rd_wr,uchar str)
27 {
28 1 uchar rd_dat;
29 1 E=0;
30 1 rd_dat=0x80;
31 1 while(rd_dat & 0x80)
32 1 rd_dat=read(0,1); //检测忙标志
33 1 E=0;
34 1 RS=cmd_dat;
35 1 RW=rd_wr;
36 1 P0=str;
37 1 E=1;
38 1 }
39
40 void main()
41 {
42 1 uchar i,str[8]={0x10,0x08,0x04,0x02,0x01,0x00,0x00,0x00};
43 1 delay(10); //lcd和mcu上电复位
44 1 lcd_write(0,0,0x38); //功能设置,8位,2行
45 1 lcd_write(0,0,0x0c); //开显示
46 1
47 1 lcd_write(0,0,0x40);
48 1 for(i=0;i<8;i++)
49 1 lcd_write(1,0,str[i]);
50 1
51 1 lcd_write(0,0,0x80);
52 1 /* while(1)
53 1 {
54 1
55 1 lcd_write(1,0,0x00);
C51 COMPILER V6.12 LCD1602 04/08/2008 12:55:02 PAGE 2
56 1 lcd_write(1,0,0x00);
57 1 lcd_write(0,0,0x02);
58 1 }*/
59 1 // lcd_write(0,0,0x18); //移位
60 1 i=0;
61 1 while(i!=0x0a)
62 1 {
63 2 lcd_write(1,0,i+0x30); //显示数据
64 2 i++;
65 2 }
66 1 lcd_write(0,0,0x80|0x40);
67 1 i=0x61;
68 1 while(i!=0x71)
69 1 {
70 2 lcd_write(1,0,i);
71 2 i++;
72 2 }
73 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 192 ----
CONSTANT SIZE = 8 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 9
IDATA SIZE = ---- ----
BIT SIZE = ---- 4
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -