📄 1602 zhongwen.lst
字号:
C51 COMPILER V8.08 1602_ZHONGWEN 09/05/2008 11:02:51 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE 1602_ZHONGWEN
OBJECT MODULE PLACED IN 1602 zhongwen.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE 1602 zhongwen.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4 uchar code table[]=" BM-TR/IS ";
5 uchar code table1[]=" BM-R/IS ";
6 sbit lcden=P3^4;
7 sbit lcdrs=P3^5;
8 sbit dula=P2^6;
9 sbit wela=P2^7;
10 uchar num;
11 //----------------------------------------------------------------
12
13 //----------------------------------------------------------------
14
15 uchar tab[] ={
16 0x04,0x04,0x1f,0x15,0x15,0x1f,0x04,0x04, //中
17 0x04,0x04,0x04,0x04,0x0A,0x0A,0x11,0x11, //人
18 0x0A,0x1B,0x0E,0x0B,0x04,0x1F,0x04,0x04, //华
19 0x1F,0x11,0x1F,0x14,0x1F,0x14,0x12,0x19, //民
20 0x0A,0x0A,0x1F,0x0A,0x1F,0x00,0x0A,0x11, //共
21 0x0C,0x18,0x0B,0x1F,0x1B,0x1B,0x08,0x08, //和
22 0x1F,0x1F,0x15,0x1F,0x15,0x17,0x1F,0x1F, //国
23 0x00,0x0A,0x1F,0x1F,0x1F,0x0E,0x04,0x00, //心型图案
24 };
25 uchar code tab1[]={
26 0x18,0x18,0x07,0x08,0x08,0x08,0x07,0x00, //℃,代码 0x00
27 0x00,0x20,0x20,0xF8,0x20,0x20,0x00,0x00, //一,代码 0x01
28 0x00,0x00,0x00,0x0e,0x00,0xff,0x00,0x00, //二,代码 0x02
29 0x00,0x00,0xff,0x00,0x0e,0x00,0xff,0x00, //三,代码 0x03
30 0x00,0x00,0xff,0xf5,0xfb,0xf1,0xff,0x00, //四,代码 0x04
31 0x00,0xfe,0x08,0xfe,0x0a,0x0a,0xff,0x00, //五,代码 0x05
32 0x00,0x04,0x00,0xff,0x00,0x0a,0x11,0x00, //六,代码 0x06
33 0x00,0x1f,0x11,0x1f,0x11,0x11,0x1f,0x00, //日,代码 0x07
34 };
35 //----------------------------------------------------------------
36
37 void delay(uint z)//延时子程序
38 {
39 1 uint x,y;
40 1 for(x=z;x>0;x--)
41 1 for(y=100;y>0;y--);
42 1 }
43
44
45
46 void write_com(uchar com) //写命令
47 {
48 1 lcdrs=0;
49 1 P0=com;
50 1 delay(1);
51 1 lcden=1;
52 1 delay(1);
53 1 lcden=0;
54 1 }
55
C51 COMPILER V8.08 1602_ZHONGWEN 09/05/2008 11:02:51 PAGE 2
56
57 void write_data(uchar date) //写数据
58 {
59 1 lcdrs=1;
60 1 P0=date;
61 1 delay(1);
62 1 lcden=1;
63 1 delay(1);
64 1 lcden=0;
65 1 }
66
67
68 void init() //初始化
69 {
70 1 dula=0;
71 1 wela=0;
72 1 lcden=0;
73 1 write_com(0x38);//显示模式设置
74 1 write_com(0x0c);//不显示光标
75 1 write_com(0x06);
76 1 write_com(0x01);//显示清零
77 1 write_com(0x80+0x10);
78 1 }
79
80
81 //写地址函数
82 void LCD_set_rc( uchar r, uchar c )
83 {
84 1 uchar address;
85 1 if (r == 1)
86 1 address = 0x80 + c;
87 1 else if(r == 2)
88 1 address = 0xc0 + c;
89 1 write_com( address );
90 1 }
91
92
93 //写一个字符
94 void LCD_write_char(uchar r, uchar c, uchar date)
95 {
96 1 LCD_set_rc( r, c ); //写地址
97 1 write_data( date );
98 1 }
99
100 //向CGRAM写入字模数据
101 void write_CGRAM( uchar TAB[], uchar n ) //定义输入CGRAM的字模代码,字模的个数
102 {
103 1 uchar tmp;
104 1 uchar i;
105 1 uchar j;
106 1 uchar k;
107 1 tmp = 0x40; //设置CGRAM地址的格式字
108 1 k = 0;
109 1 for( j = 0; j < n; j++)
110 1 {
111 2 for(i = 0; i < 8; i++)
112 2 {
113 3 write_com(tmp + i); // 设置自定义字符的 CGRAM 地址
114 3 write_data(TAB[k]); // 向CGRAM写入自定义字符表的数据
115 3 k++;
116 3 }
117 2 tmp = tmp + 0x08;
C51 COMPILER V8.08 1602_ZHONGWEN 09/05/2008 11:02:51 PAGE 3
118 2 }
119 1 }
120
121 //主函数
122 void main(void)
123 {
124 1 uchar c; //定义显示的列位置
125 1 uchar i;
126 1 init();
127 1 write_CGRAM(tab, 8);
128 1 delay(2);
129 1 while(1)
130 1 {
131 2 for( i = 0, c = 21; i < 7; i++) //在液晶板上的第1行第19个位置显示中华人民共和国
132 2 {
133 3 LCD_write_char(1, c, i);
134 3 c++;
135 3 }
136 2 LCD_write_char(2, 17, 7); //显示心型图案
137 2 LCD_write_char(2, 31, 7); //显示心型图案
138 2
139 2 for(num=0;num<16;num++)
140 2 {
141 3 write_com(0x18); //整屏左移
142 3 delay(400);
143 3 }
144 2 delay(1000);
145 2 write_com(1);
146 2 delay(1);
147 2 write_com(0x80+0x10);
148 2 for(num=0;num<9;num++)
149 2 {
150 3 write_data(table[num]); //显示BM-TR/IS
151 3 delay(100);
152 3 }
153 2 write_com(0x80+0x52);
154 2 for(num=0;num<9;num++)
155 2 {
156 3 write_data(table1[num]); //显示BM-R/IS
157 3 delay(100);
158 3 }
159 2 for(num=0;num<16;num++)
160 2 {
161 3 write_com(0x18); //整屏左移
162 3 delay(400);
163 3 }
164 2 delay(1000);
165 2 write_com(1);
166 2 delay(1);
167 2 }
168 1
169 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 397 ----
CONSTANT SIZE = 87 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 65 9
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
C51 COMPILER V8.08 1602_ZHONGWEN 09/05/2008 11:02:51 PAGE 4
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -