📄 hanzi.lst
字号:
C51 COMPILER V8.08 HANZI 04/04/2008 10:06:06 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE HANZI
OBJECT MODULE PLACED IN Hanzi.OBJ
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE Hanzi.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #include<stdio.h>
3
4 unsigned data i;
5 unsigned char q;
6 unsigned char *p; //建立数组指针
7 unsigned char wbyte;
8
9 sbit E=P3^2; //读写使能信号,1有效
10 sbit R_W=P3^1; //读写选择信号;1为读选通,0为写选通
11 sbit RS=P3^0;
12 sbit D_I=P3^0; //数据指令选择信号;1为数据操作,0为写指令或读状态
13 char code Hanzi[32]= //汉字数组
14 {
15 0x02,0x03, //笑脸,心
16 0xd6,0xd0, //中
17 0xbf,0xc6, //科
18 0xd4,0xba, //院
19 0xce,0xef, //物
20 0xc0,0xed, //理
21 0xcb,0xf9, //所
22 0x03,0x02, //心,笑脸
23 0x54,0x45, //T,R
24 0x4c,0x3a, //L,:
25 0x30,0x31, //0,1
26 0x30,0x2d, //0,-
27 0x38,0x32, //8,2
28 0x36,0x34, //6,4
29 0x39,0x35, //9,5
30 0x39,0x33 //9,3
31 };
32 char code Hanzi1[28]= //汉字数组
33 {
34 0xbb,0xb6, //欢
35 0xd3,0xad, //迎
36 0xc4,0xfa, //您
37 0xa3,0xa1, //!
38 0x20,0x20, //空格
39 0x20,0x20,
40 0x46,0x41, //F,A
41 0x58,0x3a, //X,:
42 0x30,0x31, //0,1
43 0x30,0x2d, //0,-
44 0x38,0x32, //8,2
45 0x36,0x34, //6,4
46 0x39,0x34, //9,4
47 0x37,0x38 //7,8
48 };
49
50 unsigned char data j;
51 unsigned char data k;
52
53 void WCOM(unsigned char d) //写指令程序
54 {
55 1 R_W=1;
C51 COMPILER V8.08 HANZI 04/04/2008 10:06:06 PAGE 2
56 1 D_I=0; //设置状态
57 1 Loop:
58 1 P1=0xFF;
59 1 E=1; //使能有效
60 1 q=P1; //将p1口状态读入
61 1 E=0; //关闭使能信号
62 1 if(q&0x80) //判断屏幕是否忙
63 1 {
64 2 goto Loop; //若忙,循环等待
65 2 }
66 1 R_W=0;
67 1 D_I=0; //写数据指令
68 1 P1=d; //将数据送入p1口
69 1 E=1; //使能信号开
70 1 E=0; //使能信号关
71 1 }
72
73 void Dat(unsigned char d)
74 {
75 1 R_W=1;
76 1 D_I=0; //读状态指令
77 1 Loop:
78 1 P1=0xFF;
79 1 E=1; //使能
80 1 q=P1;
81 1 E=0;
82 1 if(q&0x80)
83 1 {
84 2 goto Loop;
85 2 } //判忙
86 1 D_I=1; //送数据指令
87 1 R_W=0;
88 1 P1=d;
89 1 E=1; //使能信号开
90 1 E=0; //使能信号关
91 1 }
92
93 void Clearlcd()
94 {
95 1 D_I=0;
96 1 R_W=0;
97 1 P1=0x01;
98 1 WCOM(0x01); //清除显示
99 1 }
100
101 void Imim()
102 {
103 1 P0=0xff;
104 1 P1=0xff;
105 1 P2=0xff;
106 1 P3=0xff;
107 1 E=0;
108 1 WCOM(0x38); //功能设定
109 1 WCOM(0x08); //关显示指令
110 1 WCOM(0x06); //游标右移
111 1 Clearlcd(); //清屏
112 1 WCOM(0x0c); //开显示指令
113 1 }
114
115 void Hanz()
116 {
117 1 WCOM(k); //设置起始点
C51 COMPILER V8.08 HANZI 04/04/2008 10:06:06 PAGE 3
118 1 for(i=0;i<j;i++,p++)
119 1 {
120 2 wbyte=*p;
121 2 Dat(wbyte); //将汉字数组数据送入
122 2 }
123 1 }
124
125
126
127
128 /********************主程序********************/
129 void main()
130 {
131 1 Imim(); //初始化
132 1 Clearlcd();
133 1
134 1 p=Hanzi; //指针指向数组的首地址*/
135 1 j=32; //所建立的第一个汉字数组中元素的个数
136 1 k=0x80; //起始点:80h-8fh为在第一行显示
137 1 Hanz(); //在1、3行写汉字程序
138 1
139 1 p=Hanzi1;
140 1 j=28; //所建立的第二个汉字数组中元素的个数
141 1 k=0x92; //起始点:90h-9fh为在第二行显示
142 1 Hanz(); //在2、4行写汉字程序
143 1 while(1)
144 1 {
145 2 }
146 1 }
147
148
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 211 ----
CONSTANT SIZE = 60 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 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 + -