📄 main.lst
字号:
C51 COMPILER V7.08 MAIN 12/26/2010 11:33:30 PAGE 1
C51 COMPILER V7.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*
2 * 1602
3 */
4
5 #include <reg52.h>
6 #include <intrins.h>
7
8 typedef unsigned char uint8;
9
10 sbit RS = P1^0 ;
11 sbit RW = P1^1 ;
12 sbit EN = P1^5 ;
13 sbit BUSY = P0^7;
14
15
16 unsigned char code word1[]={"Welcome to"};
17 unsigned char code word2[]={"www.kingst.org"};
18
19
20 /**
21 * 等待繁忙标志
22 */
23 void wait(void)
24 {
25 1 P0 = 0xFF;
26 1
27 1 do
28 1 {
29 2 RS = 0;
30 2 RW = 1;
31 2 EN = 0;
32 2 EN = 1;
33 2 }while (BUSY == 1);
34 1 EN = 0;
35 1 }
36
37 /**
38 * 写数据
39 */
40 void w_dat(uint8 dat)
41 {
42 1 wait();
43 1 EN = 0;
44 1 P0 = dat;
45 1 RS = 1;
46 1 RW = 0;
47 1 EN = 1;
48 1 EN = 0;
49 1 }
50
51 /**
52 * 写命令
53 */
54 void w_cmd(uint8 cmd)
55 {
C51 COMPILER V7.08 MAIN 12/26/2010 11:33:30 PAGE 2
56 1 wait();
57 1 EN = 0;
58 1 P0 = cmd;
59 1 RS = 0;
60 1 RW = 0;
61 1 EN = 1;
62 1 EN = 0;
63 1 }
64
65 /**
66 * 发送字符串到LCD
67 */
68 void w_string(uint8 addr_start, uint8 *p)
69 {
70 1 w_cmd(addr_start);
71 1 while (*p != '\0')
72 1 {
73 2 w_dat(*p++);
74 2 }
75 1 }
76
77
78 /**
79 * 初始化1602
80 */
81 void Init_LCD1602(void)
82 {
83 1 w_cmd(0x38); // 16*2显示,5*7点阵,8位数据接口
84 1 w_cmd(0x0C); // 显示器开、光标开、光标允许闪烁
85 1 w_cmd(0x06); // 文字不动,光标自动右移
86 1 w_cmd(0x01); // 清屏
87 1 }
88
89
90 main()
91 {
92 1
93 1 Init_LCD1602();
94 1
95 1 w_string(0x80,word1);
96 1 w_string(0xC0,word2);
97 1
98 1 while (1);
99 1 }
100
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 136 ----
CONSTANT SIZE = 26 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 3
IDATA SIZE = ---- ----
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 + -