7920_580b.lst
来自「单片机的实用程序代码」· LST 代码 · 共 337 行 · 第 1/2 页
LST
337 行
C51 COMPILER V7.50 7920_580B 11/10/2010 11:24:28 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 7920_580B
OBJECT MODULE PLACED IN 7920_580b.OBJ
COMPILER INVOKED BY: E:\Program Files\KEIL\C51\BIN\C51.EXE 7920_580b.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /********************************************************************
2 * 文件名 : 12864液晶显示
3 * 描述 :
4 * 创建人 : 东流,2009年4月8日
5 * 版本号 : 2.0
6 ***********************************************************************/
7 #include <reg52.h>
8 #include <string.h>
9
10 #define uchar unsigned char
11 #define uint unsigned int
12
13 uchar code IC_DAT[];
14 uchar code pic1[];
15 uchar code pic2[];
16 uchar code pic3[];
17
18 sbit RS = P2^5;
19 sbit WRD = P2^6;
20 sbit E = P2^7;
21 sbit PSB = P2^2;
22 sbit RES = P2^4;
23
24 void TransferData(char data1,bit DI);
25 void display(void);
26 void display_grapic(void);
27 void delayms(uint n);
28 void DisplayLine(uchar line1,uchar line2);
29 void DisplayGraphic(uchar code *adder);
30 void delay(uint m);
31 void lcd_mesg(uchar code *adder1);
32
33 uchar code IC_DAT[]={
34 " HOT-51 "
35 " "
36 " 单片机开发板 "
37 " 东流电子 "
38 };
39
40 uchar code IC_DAT2[]={
41 " 白日依山尽, " //0x80
42 " 欲穷千里目, " //0x90
43 " 黄河入海流。 " //0x88
44 " 更上一层楼。 " //0x98
45 };
46
47
48
49 void initinal(void) //LCD字库初始化程序
50 {
51 1 delay(40); //大于40MS的延时程序
52 1 PSB=1; //设置为8BIT并口工作模式
53 1 delay(1); //延时
54 1 RES=0; //复位
55 1 delay(1); //延时
C51 COMPILER V7.50 7920_580B 11/10/2010 11:24:28 PAGE 2
56 1 RES=1; //复位置高
57 1 delay(10);
58 1 TransferData(0x30,0); //Extended Function Set :8BIT设置,RE=0: basic instruction set, G=0 :grap
-hic display OFF
59 1 delay(100); //大于100uS的延时程序
60 1 TransferData(0x30,0); //Function Set
61 1 delay(37); ////大于37uS的延时程序
62 1 TransferData(0x08,0); //Display on Control
63 1 delay(100); //大于100uS的延时程序
64 1 TransferData(0x10,0); //Cursor Display Control光标设置
65 1 delay(100); //大于100uS的延时程序
66 1 TransferData(0x0C,0); //Display Control,D=1,显示开
67 1 delay(100); //大于100uS的延时程序
68 1 TransferData(0x01,0); //Display Clear
69 1 delay(10); //大于10mS的延时程序
70 1 TransferData(0x06,0); //Enry Mode Set,光标从右向左加1位移动
71 1 delay(100); //大于100uS的延时程序
72 1 }
73
74 /********************************************************************
75 * 名称 : Main()
76 * 功能 : 主函数
77 * 输入 : 无
78 * 输出 : 无
79 ***********************************************************************/
80 void initina2(void) //LCD显示图片(扩展)初始化程序
81 {
82 1 delay(40); //大于40MS的延时程序
83 1 PSB=1; //设置为8BIT并口工作模式
84 1 delay(1); //延时
85 1 RES=0; //复位
86 1 delay(1); //延时
87 1 RES=1; //复位置高
88 1 delay(10);
89 1
90 1 TransferData(0x36,0); //Extended Function Set RE=1: extended instruction
91 1 delay(100); //大于100uS的延时程序
92 1 TransferData(0x36,0); //Extended Function Set:RE=1: extended instruction set
93 1 delay(37); ////大于37uS的延时程序
94 1 TransferData(0x3E,0); //EXFUNCTION(DL=8BITS,RE=1,G=1)
95 1 delay(100); //大于100uS的延时程序
96 1 TransferData(0x01,0); //CLEAR SCREEN
97 1 delay(100); //大于100uS的延时程序
98 1 }
99
100 /********************************************************************
101 * 名称 : Main()
102 * 功能 : 主函数
103 * 输入 : 无
104 * 输出 : 无
105 ***********************************************************************/
106 void main(void)
107 {
108 1 while(1)
109 1 {
110 2 initina2(); //调用LCD显示图片(扩展)初始化程序
111 2
112 2 DisplayGraphic(pic2); //显示图片2
113 2 delayms(200);
114 2
115 2 initinal(); //调用LCD字库初始化程序
116 2 delay(100); //大于100uS的延时程序
C51 COMPILER V7.50 7920_580B 11/10/2010 11:24:28 PAGE 3
117 2 lcd_mesg(IC_DAT); //显示中文汉字1
118 2 delayms(240);
119 2 delayms(240);
120 2
121 2 initinal(); //调用LCD字库初始化程序
122 2 delay(100); //大于100uS的延时程序
123 2 lcd_mesg(IC_DAT2); //显示中文汉字2
124 2 delayms(240);
125 2 delayms(240);
126 2 initinal();
127 2 }
128 1 }
129
130 /********************************************************************
131 * 名称 : Main()
132 * 功能 : 主函数
133 * 输入 : 无
134 * 输出 : 无
135 ***********************************************************************/
136 void lcd_mesg(unsigned char code *adder1)
137 {
138 1 unsigned char i;
139 1 TransferData(0x80,0); //Set Graphic Display RAM Address
140 1 delay(100);
141 1 for(i=0;i<32;i++)
142 1 {
143 2 TransferData(*adder1,1);
144 2 adder1++;
145 2 }
146 1
147 1 TransferData(0x90,0); //Set Graphic Display RAM Address
148 1 delay(100);
149 1 for(i=32;i<64;i++)
150 1 {
151 2 TransferData(*adder1,1);
152 2 adder1++;
153 2 }
154 1 }
155
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?