📄 16032-1.lst
字号:
C51 COMPILER V7.01 16032_1 03/20/2006 13:18:20 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE 16032_1
OBJECT MODULE PLACED IN E:\ZHAOM\程序\ST7920\16032-1\CHUANKOU\16032-1.OBJ
COMPILER INVOKED BY: d:\wave\keil\C51\BIN\C51.EXE E:\ZHAOM\程序\ST7920\16032-1\CHUANKOU\16032-1.C DB SB OE OT(2)
stmt level source
1 #include<reg51.h>
2 #include<stdio.h>
3 #define uchar unsigned char
4 uchar *p,*p1,*p2;/*建立数组指针*/
5 uchar data i;
6 uchar data wbyte; /*与汉字数组相对应*/
7 uchar data Column;/*定义列*/
8 uchar data Page;/*定义页*/
9 sbit E=P3^2;/*时钟脉冲信号*/
10 sbit R_W=P3^1;/*输入串列资料信号*/
11 sbit RS=P3^0;
12 sbit D_I=P3^0;/*晶片选择信号;1为晶片致能,0为晶片除能*/
13 sbit W_bite=P1^7;/*对应P1口的最高位*/
14 char code Hanzi[16]= /*第一行汉字数组*/
15 {
16 0X03,0X0F,/*两个图形字符*/
17 0xc4,0xcf,/*南*/
18 0xbe,0xa9,/*京*/
19 0xb9,0xfa,/*国*/
20 0xcf,0xd4,/*显*/
21 0xb5,0xe7,/*电*/
22 0xd7,0xd3,/*子*/
23 0X0F,0X03 /*两个图形字符*/
24 };
25 char code Hanzi1[20]= /*第二行汉字数组*/
26 {
27 0x0e,0x02,/*两个图形字符*/
28 0xb1,0xb1,/*北*/
29 0xbe,0xa9,/*京*/
30 0xc4,0xfe,/*宁*/
31 0xba,0xcd,/*和*/
32 0xb5,0xe7,/*电*/
33 0xd7,0xd3,/*子*/
34 0xbf,0xc6,/*科*/
35 0xbc,0xbc,/*技*/
36 0x02,0x0e /*两个图形字符*/
37 };
38 char code Tu[16][21]= /*图形数组*/
39 {
40 0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,
41 0x00,0x70,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0xF8,0x00,0x08,0x00,0x00,0x5F,0x00,
42 0x00,0x70,0x00,0x03,0xC0,0x00,0x3F,0x00,0x00,0xEC,0x00,0x1C,0x00,0x00,0xFF,0x00,
43 0x00,0x7E,0x00,0x03,0xC0,0x00,0x7D,0x80,0x06,0xFE,0x00,0x1E,0x00,0x00,0xEE,0x00,
44 0x00,0xFC,0x00,0x07,0xF0,0x00,0x01,0xC0,0x07,0xFE,0x00,0x0E,0x00,0x01,0xFC,0x00,
45 0x03,0xF0,0x00,0x1F,0xF0,0x01,0xBC,0xC0,0x07,0xFC,0x00,0x0F,0xE0,0x01,0xF8,0x00,
46 0x01,0xFC,0x00,0x3F,0xE0,0x01,0xFC,0xC0,0x07,0xF8,0x00,0x3E,0x70,0x00,0x3C,0x00,
47 0x00,0xFF,0x80,0xFF,0xC0,0x01,0xFC,0xE0,0x03,0xF0,0x01,0xFE,0x70,0x00,0x3F,0x00,
48 0x01,0xFD,0xC0,0xF3,0xE0,0x03,0xDF,0xE0,0x03,0xF0,0x01,0xDF,0xF0,0x00,0x7F,0x80,
49 0x0F,0xFD,0xC0,0x67,0xE0,0x03,0xFF,0xE0,0x00,0xFC,0x01,0xFF,0xE0,0x01,0xEF,0x80,
50 0x0F,0xFD,0x80,0x0F,0xE0,0x03,0x7F,0xE0,0x01,0xFC,0x00,0xFF,0xC0,0x03,0xCE,0x00,
51 0x06,0xF9,0x80,0x1F,0x80,0x03,0x3E,0xE0,0x0F,0xBC,0x00,0xFF,0x80,0x03,0x8E,0x00,
52 0x06,0x7F,0x80,0x0B,0x80,0x03,0x7E,0xE0,0x0F,0xF0,0x00,0xFF,0x80,0x03,0x0E,0x00,
53 0x06,0xFB,0x80,0x01,0xF0,0x03,0xFC,0xE0,0x05,0xF0,0x00,0x7C,0x00,0x01,0x8E,0x00,
54 0x06,0x7F,0x80,0x3F,0x98,0x01,0xE1,0xE0,0x03,0xFF,0x00,0x0F,0xE0,0x00,0xCE,0x00,
55 0x00,0x3F,0x00,0x3D,0xBC,0x00,0xFF,0xC0,0x3F,0xFF,0x80,0x07,0xE0,0x00,0x7C,0x00,
C51 COMPILER V7.01 16032_1 03/20/2006 13:18:20 PAGE 2
56 0x00,0x37,0x00,0x37,0x98,0x00,0x0F,0x80,0x1C,0x01,0x00,0x00,0x00,0x00,0x3C,0x00,
57 0x00,0x00,0x00,0x31,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
58 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
59 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
60 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
61 };
62 uchar data j=16;/*所建立的第一行汉字数组中元素的个数*/
63 /*为在液晶中第一行得显示数据*/
64 uchar data j1=20;/*所建立的第二行汉字数组中元素的个数*/
65 /*为在液晶中第二行得显示数据*/
66 uchar data k=0x81;/*起始点:80h-8fh为在第一行显示*/
67 uchar data k1=0x90;/*起始点:90h-9fh为在第二行显示*/
68 /********************扩充指令集画图********************/
69 uchar data z=21;/*图形数组的页,为实际点阵行数*/
70 uchar data y=16;/*图形数组的列,为实际点阵列数除以8*/
71 uchar data Column=1;/*起始点设定:为在液晶中显示的实际起始列*/
72 uchar data Page=6;/*起始点设定:为在液晶中显示的实际起始行*/
73 /**************************************************/
74 void WCom(uchar);/*写指令*/
75 void Clearlcd();/*清屏*/
76 void Imim();/*初始化*/
77 void Dat(uchar);/*送数据*/
78 void Delay();/*延时*/
79 void Hanz();/*写第一行汉字*/
80 void Hanz1();/*写第二行汉字*/
81 void Tuxing();/*扩充指令集画图子程序*/
82 void Clearlcd1();/*扩充指令集清屏子程序*/
83 /********************主程序********************/
84 void main()
85 {
86 1 //Delay();
87 1 //Delay();
88 1 //Delay();/*延时*/
89 1 Imim();/*初始化*/
90 1 p=Hanzi;/*指针指向数组的首地址*/
91 1 p1=Hanzi1;/*指针指向数组的首地址*/
92 1 p2=Tu;/*指针指向数组的首地址*/
*** WARNING C182 IN LINE 92 OF E:\ZHAOM\程序\ST7920\16032-1\CHUANKOU\16032-1.C: pointer to different objects
93 1 Hanz();/*写第一行汉字程序*/
94 1 Hanz1();/*写第二行汉字程序*/
95 1 Delay();
96 1 Delay();
97 1 Delay();
98 1 Delay();
99 1 Clearlcd();/*清屏*/
100 1 Tuxing();/*扩充指令集画图子程序*/
101 1 loop:goto loop;
102 1 }
103
104 /********************写指令子程序********************/
105 void WCOM(uchar d) /*写指令程序*/
106 {
107 1 uchar data i;
108 1 uchar data j;
109 1 D_I=1;/*片选信号选通*/
110 1 P1=0xf8;/*读写信号与暂存器选择信号致1*/
111 1 for(i=0;i<8;i++)/*写入8次*/
112 1 {
113 2 R_W=W_bite;/*将p1口最高位数据送入*/
114 2 P1=P1<<1;/*令0xf8循环左移*/
115 2 E=1;/*脉冲信号高*/
116 2 E=0;/*脉冲信号低*/
C51 COMPILER V7.01 16032_1 03/20/2006 13:18:20 PAGE 3
117 2 }
118 1 P1=d;/*将要写入信号送到P1口*/
119 1 for(j=0;j<2;j++)/*数据送两次*/
120 1 {
121 2 for(i=0;i<4;i++)/*送高四位*/
122 2 {
123 3
124 3 R_W=W_bite;/*将p1口最高位数据送入*/
125 3 P1=P1<<1; /*P1口数据逻辑左移*/
126 3 E=1;/*脉冲信号高*/
127 3 E=0;/*脉冲信号低*/
128 3 }
129 2 for(i=0;i<4;i++)/*送四个0*/
130 2 {
131 3 R_W=0;/*将0送入*/
132 3 E=1;/*脉冲信号高*/
133 3 E=0;/*脉冲信号低*/
134 3 }
135 2 }
136 1 D_I=0;/*关闭片选信号*/
137 1 }
138 /********************送数据子程序********************/
139 void Dat(uchar d)
140 {
141 1 uchar data i;
142 1 uchar data j;
143 1 D_I=1;/*片选信号选通*/
144 1 P1=0xfa;/*读写信号致0,暂存器选择信号致1*/
145 1 for(i=0;i<8;i++)/*写入8次*/
146 1 {
147 2 R_W=W_bite;/*将p1口最高位数据送入*/
148 2 P1=P1<<1; /*P1口数据逻辑左移*/
149 2 E=1;/*脉冲信号高*/
150 2 E=0;/*脉冲信号低*/
151 2 }
152 1 P1=d;/*将要送数据送到P1口*/
153 1 for(j=0;j<2;j++)/*数据送两次*/
154 1 {
155 2 for(i=0;i<4;i++)/*送高四位*/
156 2 {
157 3 R_W=W_bite;/*将p1口最高位数据送入*/
158 3 P1=P1<<1; /*P1口数据逻辑左移*/
159 3 E=1;/*脉冲信号高*/
160 3 E=0;/*脉冲信号低*/
161 3 }
162 2 for(i=0;i<4;i++) /*送四个0*/
163 2 {
164 3
165 3 R_W=0;/*将0送入*/
166 3 E=1;/*脉冲信号高*/
167 3 E=0;/*脉冲信号低*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -