📄 1602动态.lst
字号:
C51 COMPILER V7.06 1602__蘝 12/02/2008 10:43:19 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 1602__蘝
OBJECT MODULE PLACED IN 1602动态.OBJ
COMPILER INVOKED BY: d:\Keil2\C51\BIN\C51.EXE 1602动态.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*
2 这是avr上移植程序 动态显示字符,用户可以根据自己需要更改内容
3 */
4 #include <reg52.h>
5
6 sbit RS = P2^4;//定义端口
7 sbit RW = P2^5;
8 sbit EN = P2^6;
9 #define RS_CLR RS=0
10 #define RS_SET RS=1
11 #define RW_CLR RW=0
12 #define RW_SET RW=1
13 #define EN_CLR EN=0
14 #define EN_SET EN=1
15 /*延时函数*/
16 void delay_us(unsigned int n) //延时 如果需要高精度延时 请嵌入汇编
17 {
18 1 if (n == 0)
19 1 {
20 2 return ;
21 2 }
22 1 while (--n);
23 1 }
24 /*延时函数*/
25 void delay_ms(unsigned char i)
26 {
27 1 unsigned char a, b;
28 1 for (a = 1; a < i; a++)
29 1 {
30 2 for (b = 1; b; b++)
31 2 { ; }
32 2 }
33 1 }/*显示屏命令写入函数*/
34 void LCD_write_com(unsigned char com)
35 {
36 1 RS_CLR;
37 1 RW_CLR;
38 1 EN_SET;
39 1 P0 = com;
40 1 delay_us(5);
41 1 EN_CLR;
42 1 }
43 /*显示屏命令写入函数*/
44 void LCD_write_Data(unsigned char Data)
45 {
46 1 RS_SET;
47 1 RW_CLR;
48 1 EN_SET;
49 1 P0 = Data;
50 1 delay_us(5);
51 1 EN_CLR;
52 1 }
53 /*显示屏清空显示*/
54 void LCD_clear(void)
55 {
C51 COMPILER V7.06 1602__蘝 12/02/2008 10:43:19 PAGE 2
56 1 LCD_write_com(0x01);
57 1 delay_ms(5);}
58 /*显示屏字符串写入函数*/
59 void LCD_write_str(unsigned char x,unsigned char y,unsigned char *s)
60 {
61 1 if (y == 0)
62 1 {
63 2 LCD_write_com(0x80 + x);
64 2 }
65 1 else
66 1 {
67 2 LCD_write_com(0xC0 + x);
68 2 }
69 1 while (*s)
70 1 {
71 2 LCD_write_Data( *s);
72 2 s ++;
73 2 }
74 1 }
75 /*显示屏单字符写入函数*/
76 void LCD_write_char(unsigned char x,unsigned char y,unsigned char Data)
77 {
78 1 if (y == 0)
79 1 {
80 2 LCD_write_com(0x80 + x);
81 2 }
82 1 else
83 1 {
84 2 LCD_write_com(0xC0 + x);
85 2 }
86 1 LCD_write_Data( Data);
87 1 }
88 /*显示屏初始化函数*/
89 void LCD_init(void)
90 {
91 1 LCD_write_com(0x38); /*显示模式设置*/
92 1 delay_ms(5);
93 1 LCD_write_com(0x38);
94 1 delay_ms(5);
95 1 LCD_write_com(0x38);
96 1 delay_ms(5);
97 1 LCD_write_com(0x38);
98 1 LCD_write_com(0x08); /*显示关闭*/
99 1 LCD_write_com(0x01); /*显示清屏*/
100 1 LCD_write_com(0x06); /*显示光标移动设置*/
101 1 delay_ms(5);
102 1 LCD_write_com(0x0C); /*显示开及光标设置*/
103 1 }
104
105
106 void main(void)
107 {
108 1 unsigned char i;
109 1 unsigned char *p;
110 1 delay_ms(100);
111 1 LCD_init();
112 1 while (1)
113 1 {
114 2 i = 1;
115 2 p = "www.doflye.cn";
116 2 LCD_clear();
117 2 LCD_write_str(2,0,"Welcome to");
C51 COMPILER V7.06 1602__蘝 12/02/2008 10:43:19 PAGE 3
118 2 delay_ms(250);
119 2 while (*p)
120 2 {
121 3 LCD_write_char(i,1,*p);
122 3 i ++;
123 3 p ++;
124 3 delay_ms(250);
125 3 }
126 2 delay_ms(250);
127 2 }
128 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 252 ----
CONSTANT SIZE = 25 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
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 + -