📄 text1.lst
字号:
C51 COMPILER V8.08 TEXT1 04/26/2008 13:53:13 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <at89x51.H>
2 #include<intrins.h>
3 sbit E=P1^2;
4 sbit RS=P1^0;
5 sbit RW=P1^4;
6 unsigned char j=0;
7 unsigned char yb=0x80;
8 unsigned char code name00[]={"飞射白鹿雪连天,"};
9 unsigned char code name01[]={"笑书神侠倚碧鸳。"};
10 unsigned char code name02[]={"自古英雄多奇逸,"};
11 unsigned char code name03[]={"金老挥毫尽使然。"};
12 unsigned char code name10[]={"李白乘舟将欲行,"};
13 unsigned char code name11[]={"忽闻岸上踏歌声。"};
14 unsigned char code name12[]={"桃花潭水深千尺,"};
15 unsigned char code name13[]={"不及汪伦送我情。"};
16 unsigned char code name20[]={"this is a 12864 "};
17 unsigned char code name21[]={"display program,"};
18 unsigned char code name22[]={"welcome to commu"};
19 unsigned char code name23[]={"nicate with me! "};
20
21 void delay(unsigned char tt)//延时1ms
22 {
23 1 unsigned char j;
24 1 while(tt--)
25 1 {
26 2 for(j=0;j<125;j++)
27 2 {;}
28 2 }
29 1 }
30 void wr_com(unsigned char value)//写指令,写指令时必须为RS=0;RW=0;
31 {
32 1 E=0;
33 1 RS=0;
34 1 RW=0;
35 1 delay(1);
36 1 P0=value;
37 1 E=1;
38 1 delay(2); //如果没有延时就必须要加查忙指令
39 1 E=0;
40 1 }
41 void wr_data(unsigned char sj)//写数据,写数据时必须为 RS=1;RW=0;
42 {
43 1 E=0;
44 1 RS=1;
45 1 RW=0;
46 1 P0=sj;
47 1 E=1;
48 1 delay(1);//如果没有延时就必须要加查忙指令
49 1 E=0;
50 1 }
51 void reset (void)
52 {
53 1 wr_com(0x01);//清屏
54 1 wr_com(0x08);//关显示
55 1 wr_com(0x03);//归位
C51 COMPILER V8.08 TEXT1 04/26/2008 13:53:13 PAGE 2
56 1 wr_com(0x30);//功能设置
57 1 wr_com(0x0f);//开显示
58 1 wr_com(0x01);//清屏
59 1 }
60 //****************
61 //outChinese 为函数名
62 //place 为显示地址的首地址
63 //unit 字符长度
64 //charcode[] 要显示数据的内容
65 void outChinese(unsigned char place,unsigned char unit,unsigned char charcode[] )
66 {
67 1 unsigned char i;
68 1 wr_com(place);
69 1 for(i=0;i<unit*2;i++)//一个汉字为两个字符
70 1 {wr_data(charcode[i]);}
71 1 }
72 void outchar(unsigned char place,unsigned char unit,unsigned char charcode[] )
73 {
74 1 unsigned char i;
75 1 wr_com(place);
76 1 for(i=0;i<unit;i++)
77 1 {wr_data(charcode[i]);}
78 1 }
79 void ydgb(void)
80 {
81 1 wr_com(yb);//显示光标位置
82 1 if(P1_0==0)
83 1 {
84 2 delay(10);
85 2 if(P1_0==0)
86 2 {
87 3 yb=yb+0x01;
88 3 if(yb==0x88){yb=0x90;}
89 3 if(yb==0x97){yb=0x88;}
90 3 if(yb==0x8f){yb=0x98;}
91 3 if(yb==0xa0){yb=0x80;}
92 3 }
93 2 while(P1_0==0);
94 2 }
95 1 }
96 void display1(void)
97 {
98 1 ydgb();
99 1 outChinese(0x80,8,name00);//第一行:80-87H
100 1 outChinese(0x90,8,name01);//第二行:90-97H
101 1 outChinese(0x88,8,name02);//第三行:88-8FH
102 1 outChinese(0x98,8,name03);//第四行:98-9FH
103 1 //outchar(0x9f,2,name4);
104 1 }
105 void display2(void)
106 {
107 1 ydgb();
108 1 outChinese(0x80,8,name10);
109 1 outChinese(0x90,8,name11);
110 1 outChinese(0x88,8,name12);
111 1 outChinese(0x98,8,name13);
112 1 }
113 void display3(void)
114 {
115 1 ydgb();
116 1 outchar(0x80,16,name20);
117 1 outchar(0x90,16,name21);
C51 COMPILER V8.08 TEXT1 04/26/2008 13:53:13 PAGE 3
118 1 outchar(0x88,16,name22);
119 1 outchar(0x98,16,name23);
120 1 }
121 void main(void)
122 {
123 1 P1=0X00;
124 1 P2=0X00;
125 1 reset();
126 1 while(1)
127 1 {
128 2 ydgb();
129 2 if(P1_1==0)
130 2 {
131 3 delay(10);
132 3 if(P1_1==0)
133 3 {
134 4 j++;
135 4 ydgb();
136 4 wr_com(0x01);//清屏
137 4 if(j==3){j=0;}
138 4 }
139 3 while(P1_1==0);
140 3 }
141 2 switch(j)
142 2 {
143 3 case 0:display1();break;
144 3 case 1:display2();break;
145 3 case 2:display3();break;
146 3 }
147 2 }
148 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 463 ----
CONSTANT SIZE = 204 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 9
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 + -