📄 8.lst
字号:
C51 COMPILER V8.02 8 01/12/2007 19:09:24 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 8
OBJECT MODULE PLACED IN 8.OBJ
COMPILER INVOKED BY: d:\Keil 8\C51\BIN\C51.EXE 8.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*******************************************************************/
2 //OCM12864-5测试完整程序
3 //时间:2006.11.26
4 //可选用c51单片机
5 //设计:天蝎、骆驼
6 //博客验证时候会有些语句通不过,所以硬件测试之前需要检查修改一下
7 /********************************************************************/
8 //定义头文件
9 #include"stdio.h" //stdio.h存放标准输入输出库函数用到的一些基本信息,在程序中可以使用输入输出函数
10 #include"absacc.h" //absacc.h可以利用三字节通过指针作为抽象指针,为个存储空间提供绝对地址存取技术
11 #include"reg52.h" //reg52.h
12 #include"intrins.h"
13
14 #define uchar unsigned char
15 #define uint unsigned int
16
17 //LCD128*64数据线
18 #define LCDBusPort P1 //D0-D7=P1.0-P1.7
19
20 //LCD128*64I/O信号管脚
21 sbit DI=P3^2; //数据/指令 选择
22 sbit RW=P3^3; //读/写选择
23 sbit Enable=P3^4; //读/写使能 高电平有效,下降沿锁定数据
24 sbit CS1=P3^0; //片选1,12864-5高电平有效(前64列)
25 sbit CS2=P3^1; //片选2,12864-5高电平有效(后64列)
26 sbit Reset=P3^7; //复位
27
28 uchar code DAA[]={0x00,0x7E,0x11,0x11,0x11,0x7E,0x00,0x00}; //"A"
29 uchar code DAB[]={0x00,0x41,0x7F,0x49,0x49,0x36,0x00,0x00}; //"B"
30 uchar code DAC[]={0x00,0x3E,0x41,0x41,0x41,0x22,0x00,0x00}; //"C"
31 uchar code DAD[]={0x00,0x41,0x7E,0x41,0x41,0x3E,0x00,0x00}; //"D"
32
33 char code nop[]={//"nop"
34 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
35 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
36 char code dan[]={
37 /*-- 文字: 丹 --*/
38 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
39 0x80,0x80,0x80,0xFE,0x82,0x82,0x8A,0xB2,0x82,0x82,0x82,0xFF,0x82,0xC0,0x80,0x00,
40 0x00,0x80,0x40,0x3F,0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00
41 };char code wang[]={
42 /*-- 文字: 王 --*/
43 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
44 0x00,0x82,0x82,0x82,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x82,0xC3,0x82,0x00,0x00,
45 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x40,0x40,0x60,0x40,0x00
46 };
47 char code chu[]={//出[16*16]横排
48 0x00,0x00,0xFC,0x40,0x40,0x40,0x40,0xFF,0x40,0x40,0x40,0x40,0xFC,0x00,0x00,0x00,
49 0x00,0xFE,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x40,0x40,0xFE,0x00,0x00};
50 char code lai[]={//来[16*16]横排
51 0x00,0x08,0x28,0x48,0xC8,0x08,0x08,0xFF,0x08,0x88,0x48,0x68,0x0C,0x88,0x00,0x00,
52 0x21,0x21,0x11,0x11,0x09,0x05,0x03,0xFF,0x03,0x05,0x09,0x19,0x11,0x31,0x11,0x00};
53 char code le[]={//了[16*16]横排
54 0x00,0x02,0x02,0x02,0x02,0x02,0x02,0xE2,0x22,0x12,0x0A,0x06,0x02,0x00,0x00,0x00,
55 0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
C51 COMPILER V8.02 8 01/12/2007 19:09:24 PAGE 2
56 char code tian[]={
57 /*-- 文字: 天 --*/
58 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
59 0x40,0x42,0x42,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0x43,0x62,0x40,0x00,
60 0x80,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x20,0x40,0xC0,0x40,0x00
61 };
62 char code xie[]={
63 /*-- 文字: 蝎 --*/
64 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
65 0x00,0xF0,0x10,0xFF,0x10,0xF8,0x10,0x3E,0xEA,0x2A,0x2A,0x2A,0x2A,0x3F,0x02,0x00,
66 0x20,0x67,0x22,0x3F,0x12,0x3B,0x02,0x3D,0x21,0x29,0x27,0x29,0x61,0x81,0x7F,0x00
67 };
68 char code luo[]={
69 /*-- 文字: 骆 --*/
70 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
71 0x02,0xFA,0x02,0x02,0xFF,0x02,0x10,0x08,0x17,0xA4,0x44,0xA4,0x14,0x0C,0x00,0x00,
72 0x10,0x31,0x11,0x49,0x89,0x7F,0x02,0xFF,0x43,0x42,0x42,0x42,0x43,0xFF,0x01,0x00
73 };
74 char code tuo[]={
75 /*-- 文字: 驼 --*/
76 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
77 0x00,0x02,0xFA,0x02,0x02,0xFF,0x22,0x18,0xC8,0x09,0x0A,0x08,0x88,0x28,0x18,0x00,
78 0x10,0x30,0x11,0x49,0x89,0x41,0x3F,0x00,0x3F,0x42,0x42,0x41,0x40,0x40,0x70,0x00
79 };
80 char code xi[]={
81 /*-- 文字: 喜 --*/
82 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
83 0x00,0x02,0x0A,0xEA,0xAA,0xAA,0xAA,0xAF,0xAA,0xAA,0xAA,0xEA,0x0B,0x02,0x00,0x00,
84 0x02,0x02,0x02,0xFA,0x4A,0x4B,0x4A,0x4A,0x4A,0x4B,0x4A,0xFE,0x0A,0x03,0x02,0x00
85 };
86 char code huan[]={
87 /*-- 文字: 欢 --*/
88 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
89 0x04,0x34,0xC4,0x04,0xC4,0x3C,0x20,0x10,0x0F,0xE8,0x08,0x08,0x28,0x18,0x00,0x00,
90 0x10,0x08,0x06,0x01,0x82,0x8C,0x40,0x30,0x0C,0x03,0x0C,0x10,0x60,0xC0,0x40,0x00
91 };
92 char code ni[]={
93 /*-- 文字: 你 --*/
94 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
95 0x40,0x20,0xF8,0x07,0x40,0x20,0x18,0x0F,0x08,0xC8,0x08,0x08,0x28,0x18,0x00,0x00,
96 0x00,0x00,0xFF,0x00,0x00,0x08,0x04,0x43,0x80,0x7F,0x00,0x01,0x06,0x0C,0x00,0x00
97 };
98 char code douhao[]={
99 /*-- 文字:"," --*/
100 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
101 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
102 0x00,0x00,0x20,0x1C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
103 };
104 char code tanhao[]={
105 /*-- 文字:"!" --*/
106 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
107 0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0xFE,0xFE,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,
108 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00
109 };
110 char code pic[]={
111 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xc0,0x40,0x60,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0
-x60,0x40,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
112 0x00,0x00,0x00,0x80,0xf0,0x18,0x06,0xfb,0x09,0x09,0x48,0x08,0x18,0x30,0xe0,0x00,0x00,0x00,0x0c,0xf4,0x84,0
-x04,0x2c,0x08,0xf9,0x63,0x06,0x0c,0x38,0xe0,0x00,0x00,
113 0x00,0x00,0x00,0x3f,0xc0,0x80,0x00,0x01,0x01,0x03,0x1a,0xf2,0xc2,0x83,0x01,0x00,0x00,0x00,0x80,0xc0,0x41,0
-x39,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0xc3,0x7e,0x00,
114 0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x02,0x04,0x0c,0x08,0x18,0x10,0x11,0x21,0x21,0x21,0x21,0x21,0x20,0x20,0
C51 COMPILER V8.02 8 01/12/2007 19:09:24 PAGE 3
-x20,0x20,0x30,0x10,0x10,0x10,0x18,0x08,0x0c,0x03,0x00
115 };
116
117 /*-----------------------------------------------------------*/
118
119
120 //基本函数源程序
121 /*------------------------------------------------------------*/
122 //延时子程序
123 void LcdDelay(uint k)
124 {
125 1 uint i,j;
126 1 for (i=0;i<10;i++)
127 1 for(j=0;j<10;j++);
128 1 }
*** WARNING C280 IN LINE 123 OF 8.C: 'k': unreferenced local variable
129 /*--------------------------------------------------------------*/
130 //状态检查子程序
131 void CheckState()
132 {
133 1 uchar dat;
134 1 DI=0;
135 1 RW=1;
136 1 do{
137 2 LCDBusPort=0xff;
138 2 Enable=1;
139 2 dat=LCDBusPort;
140 2 Enable=0;
141 2 dat=0x90 & dat; //仅当第4,7位为0时才可操作
142 2 }while(!(dat==0x00));
143 1 }
144
145 /*------------------------------------------------------------*/
146 //写命令到LCD子程序
147 void SendCommand(uchar command) // command :命令
148 {
149 1 CheckState();
150 1 RW=0;
151 1 LCDBusPort=command;
152 1 LcdDelay(0);
153 1 Enable=1;
154 1 LcdDelay(0);
155 1 Enable=0;
156 1 }
157 /*----------------------------------------------------------------*/
158 //写显示数据子程序
159 void WriteData(uchar Dispdata) //dat:显示数据
160 {
161 1 CheckState();
162 1 DI=1;
163 1 RW=0;
164 1 LCDBusPort=Dispdata;
165 1 LcdDelay(0);
166 1 Enable=1;
167 1 LcdDelay(0);
168 1 Enable=0;
169 1 }
170 /*-----------------------------------------------------------------*/
171 //读显示数据子程序
172 uchar ReadData()
173 {
174 1 uchar dat;
C51 COMPILER V8.02 8 01/12/2007 19:09:24 PAGE 4
175 1 CheckState();
176 1 DI=1;
177 1 RW=1;
178 1 LCDBusPort=0xff;
179 1 LcdDelay(0);
180 1 Enable=1;
181 1 LcdDelay(0);
182 1 dat=LCDBusPort;
183 1 LcdDelay(0);
184 1 Enable=0;
185 1 return(dat);
186 1 }
187 /*------------------------------------------------------------------*/
188 //设定行地址(页)--X 0-7
189 void SetPage(uchar Page)
190 {
191 1 Page=Page&0x07; //0<=Page<=7
192 1 Page=Page|0xb8; //1011 1xxx
193 1 SendCommand(Page);
194 1 }
195 /*-----------------------------------------------------------------------*/
196 //设定列地址--Y 0-63
197 void SetColumn(uchar Column)
198 {
199 1 Column=Column&0x3f;//0<=colulmn<=63
200 1 Column=Column|0x40;//01xx xxxx
201 1 SendCommand(Column);
202 1 }
203 /*----------------------*/
204 main()
205 {
206 1 while(1)
207 1 {
208 2 ReadData();
209 2 WriteData() ;
*** WARNING C209 IN LINE 209 OF 8.C: '_WriteData': too few actual parameters
210 2 }
211 1
212 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 169 ----
CONSTANT SIZE = 640 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 2 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -