wl009.lst
来自「周立功的51单片机试验例程,我当年就是靠这个学会单片机的」· LST 代码 · 共 167 行
LST
167 行
C51 COMPILER V7.08 WL009 02/12/2004 11:57:21 PAGE 1
C51 COMPILER V7.08, COMPILATION OF MODULE WL009
OBJECT MODULE PLACED IN wl009.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE wl009.C BROWSE DEBUG OBJECTEXTEND
line level source
1 /*******************************************************************************
2 * *
3 * File : wl009.c *
4 * Date : 2004-1-5 *
5 * Version : 1.0 *
6 * *
7 * Author : Freeman freeman@willar.com *
8 * Company : Willar www.willar.com *
9 * *
10 ********************************************************************************
11 * Description: *
12 * 字符LCD显示演示程序 *
13 * 在第一行显示 welcome *
14 * 在第一行显示 www.willar.com *
15 * *
16 *******************************************************************************/
17 #include <reg51.h>
18 #include <intrins.h>
19
20 typedef unsigned char BYTE;
21 typedef unsigned int WORD;
22 typedef bit BOOL ;
23
24 sbit rs = P2^0; //
25 sbit rw = P2^1;
26 sbit ep = P2^2;
27
28 BYTE code dis1[] = {"welcome!"};
29 BYTE code dis2[] = {"www.willar.com"};
30
31 delay(BYTE ms)
32 { // 延时子程序
33 1 BYTE i;
34 1 while(ms--)
35 1 {
36 2 for(i = 0; i< 250; i++)
37 2 {
38 3 _nop_();
39 3 _nop_();
40 3 _nop_();
41 3 _nop_();
42 3 }
43 2 }
44 1 }
45
46 BOOL lcd_bz()
47 { // 测试LCD忙碌状态
48 1 BOOL result;
49 1 rs = 0;
50 1 rw = 1;
51 1 ep = 1;
52 1 _nop_();
53 1 _nop_();
54 1 _nop_();
55 1 _nop_();
C51 COMPILER V7.08 WL009 02/12/2004 11:57:21 PAGE 2
56 1 result = (BOOL)(P0 & 0x80);
57 1 ep = 0;
58 1 return result;
59 1 }
60
61 lcd_wcmd(BYTE cmd)
62 { // 写入指令数据到LCD
63 1 while(lcd_bz());
64 1 rs = 0;
65 1 rw = 0;
66 1 ep = 0;
67 1 _nop_();
68 1 _nop_();
69 1 P0 = cmd;
70 1 _nop_();
71 1 _nop_();
72 1 _nop_();
73 1 _nop_();
74 1 ep = 1;
75 1 _nop_();
76 1 _nop_();
77 1 _nop_();
78 1 _nop_();
79 1 ep = 0;
80 1 }
81
82 lcd_pos(BYTE pos)
83 { //设定显示位置
84 1 lcd_wcmd(pos | 0x80);
85 1 }
86
87 lcd_wdat(BYTE dat)
88 { //写入字符显示数据到LCD
89 1 while(lcd_bz());
90 1 rs = 1;
91 1 rw = 0;
92 1 ep = 0;
93 1 P0 = dat;
94 1 _nop_();
95 1 _nop_();
96 1 _nop_();
97 1 _nop_();
98 1 ep = 1;
99 1 _nop_();
100 1 _nop_();
101 1 _nop_();
102 1 _nop_();
103 1 ep = 0;
104 1 }
105
106 lcd_init()
107 { //LCD初始化设定
108 1 lcd_wcmd(0x38); //
109 1 delay(1);
110 1 lcd_wcmd(0x0c); //
111 1 delay(1);
112 1 lcd_wcmd(0x06); //
113 1 delay(1);
114 1 lcd_wcmd(0x01); //清除LCD的显示内容
115 1 delay(1);
116 1 }
117
C51 COMPILER V7.08 WL009 02/12/2004 11:57:21 PAGE 3
118 main()
119 {
120 1 BYTE i;
121 1 lcd_init(); // 初始化LCD
122 1 delay(10);
123 1 lcd_pos(4); // 设置显示位置为第一行的第5个字符
124 1 i = 0;
125 1 while(dis1[i] != '\0')
126 1 { // 显示字符"welcome!"
127 2 lcd_wdat(dis1[i]);
128 2 i++;
129 2 }
130 1 lcd_pos(0x41); // 设置显示位置为第二行第二个字符
131 1 i = 0;
132 1 while(dis2[i] != '\0')
133 1 {
134 2 lcd_wdat(dis2[i]); // 显示字符" www.willar.com "
135 2 i++;
136 2 }
137 1 while(1); //
138 1 }
139
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 193 ----
CONSTANT SIZE = 24 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?