📄 7920_580b.lst
字号:
C51 COMPILER V8.02 7920_580B 12/20/2012 21:15:03 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 7920_580B
OBJECT MODULE PLACED IN 7920_580b.OBJ
COMPILER INVOKED BY: F:\Program Files\keil\C51\BIN\C51.EXE 7920_580b.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2 /*-----------------------------------------------
3 名称:LCD12864 字库液晶 芯片组st7920
4 日期:2009.5
5 修改:无
6 内容:
7 ------------------------------------------------*/
8 #include <stdio.h>
9 #include <math.h>
10 #include <reg52.h>
11 #include <string.h>
12 /******************************************************************/
13 /* 定义数组 */
14 /******************************************************************/
15 unsigned char code IC_DAT[];
16 unsigned char code pic1[];
17 unsigned char code pic2[];
18 unsigned char code pic3[];
19
20 /******************************************************************/
21 /* 定义接口信息 */
22 /******************************************************************/
23 sbit RS =P2^4;
24 sbit WRD=P2^5;
25 sbit E= P2^6;
26 sbit PSB=P2^1;
27 sbit RES=P2^3;
28
29 /******************************************************************/
30 /* 函数声明 */
31 /******************************************************************/
32 void TransferData(char data1,bit DI);
33 void display(void);
34 void display_grapic(void);
35 void delayms(unsigned int n);
36 void DisplayLine(unsigned char line1,unsigned char line2);
37 void DisplayGraphic(unsigned char code *adder);
38 void delay(unsigned int m);
39 void lcd_mesg(unsigned char code *adder1);
40
41
42 unsigned char code IC_DAT[]={
43 "中原海翔电子科技"
44 "单片机开发板系列"
45 "中文字库测试程序"
46 "恭喜发财身体健康"
47 };
48 unsigned char code IC_DAT2[]={
49 "海纳百川宽容为先"
50 "欲成大业诚信为先"
51 "游弋商海济世为先"
52 "人立于世守法为先"
53 };
54 /******************************************************************/
55 /* 液晶初始化-字库 */
C51 COMPILER V8.02 7920_580B 12/20/2012 21:15:03 PAGE 2
56 /******************************************************************/
57 void initinal(void) //LCD字库初始化程序
58 {
59 1 delay(40); //大于40MS的延时程序
60 1 PSB=1; //设置为8BIT并口工作模式
61 1 delay(1); //延时
62 1 RES=0; //复位
63 1 delay(1); //延时
64 1 RES=1; //复位置高
65 1 delay(10);
66 1 TransferData(0x30,0); //Extended Function Set :8BIT设置,RE=0: basic instruction set, G=0 :grap
-hic display OFF
67 1 delay(100); //大于100uS的延时程序
68 1 TransferData(0x30,0); //Function Set
69 1 delay(37); ////大于37uS的延时程序
70 1 TransferData(0x08,0); //Display on Control
71 1 delay(100); //大于100uS的延时程序
72 1 TransferData(0x10,0); //Cursor Display Control光标设置
73 1 delay(100); //大于100uS的延时程序
74 1 TransferData(0x0C,0); //Display Control,D=1,显示开
75 1 delay(100); //大于100uS的延时程序
76 1 TransferData(0x01,0); //Display Clear
77 1 delay(10); //大于10mS的延时程序
78 1 TransferData(0x06,0); //Enry Mode Set,光标从右向左加1位移动
79 1 delay(100); //大于100uS的延时程序
80 1 }
81
82 /******************************************************************/
83 /* 液晶初始化-图形 */
84 /******************************************************************/
85 void initina2(void) //LCD显示图片(扩展)初始化程序
86 {
87 1 delay(40); //大于40MS的延时程序
88 1 PSB=1; //设置为8BIT并口工作模式
89 1 delay(1); //延时
90 1 RES=0; //复位
91 1 delay(1); //延时
92 1 RES=1; //复位置高
93 1 delay(10);
94 1
95 1 TransferData(0x36,0); //Extended Function Set RE=1: extended instruction
96 1 delay(100); //大于100uS的延时程序
97 1 TransferData(0x36,0); //Extended Function Set:RE=1: extended instruction set
98 1 delay(37); ////大于37uS的延时程序
99 1 TransferData(0x3E,0); //EXFUNCTION(DL=8BITS,RE=1,G=1)
100 1 delay(100); //大于100uS的延时程序
101 1 TransferData(0x01,0); //CLEAR SCREEN
102 1 delay(100); //大于100uS的延时程序
103 1 }
104
105 /******************************************************************/
106 /* 主程序 */
107 /******************************************************************/
108 void main(void)
109 {
110 1 while(1)
111 1 {
112 2 initina2(); //调用LCD显示图片(扩展)初始化程序
113 2
114 2 DisplayGraphic(pic2); //显示图片2
115 2 delayms(200);
116 2
C51 COMPILER V8.02 7920_580B 12/20/2012 21:15:03 PAGE 3
117 2 DisplayGraphic(pic3); //显示图片3
118 2 delayms(200);
119 2
120 2 initinal(); //调用LCD字库初始化程序
121 2 delay(100); //大于100uS的延时程序
122 2 lcd_mesg(IC_DAT); //显示中文汉字1
123 2 delayms(240);
124 2 delayms(240);
125 2
126 2 initinal(); //调用LCD字库初始化程序
127 2 delay(100); //大于100uS的延时程序
128 2 lcd_mesg(IC_DAT2); //显示中文汉字2
129 2 delayms(240);
130 2 delayms(240);
131 2 }
132 1 }
133
134 /******************************************************************/
135 /* 函数声明 */
136 /******************************************************************/
137
138 void lcd_mesg(unsigned char code *adder1)
139 {
140 1 unsigned char i;
141 1 TransferData(0x80,0); //Set Graphic Display RAM Address
142 1 delay(100);
143 1 for(i=0;i<32;i++)
144 1 {
145 2 TransferData(*adder1,1);
146 2 adder1++;
147 2 }
148 1
149 1 TransferData(0x90,0); //Set Graphic Display RAM Address
150 1 delay(100);
151 1 for(i=32;i<64;i++)
152 1 {
153 2 TransferData(*adder1,1);
154 2 adder1++;
155 2 }
156 1 }
157
158
159
160 /******************************************************************/
161 /* 函数声明 */
162 /******************************************************************/
163 void TransferData(char data1,bit DI) //传送数据或者命令,当DI=0是,传送命令,当DI=1,传送数据.
164 {
165 1 WRD=0;
166 1 RS=DI;
167 1 delay(1);
168 1 P0=data1;
169 1 E=1;
170 1 delay(1);
171 1 E=0;
172 1 }
173
174 void delayms(unsigned int n) //延时10×n毫秒程序
175 {
176 1 unsigned int i,j;
177 1 for(i=0;i<n;i++)
178 1 for(j=0;j<2000;j++);
C51 COMPILER V8.02 7920_580B 12/20/2012 21:15:03 PAGE 4
179 1 }
180
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -