📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 05/09/2012 00:02:19 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: E:\IDEsoftware\Keil uVision3\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /***************http://hi.baidu.com/echoas************
2 程序:LCD12864显示原理之显示动画
3 内容:动画---飞翔的鸽子
4 软件:keil uVision4
5 液晶:QY128*64HZ1
6 作者:大海橡树
7 整理日期:2010-12-05
8 修改:无
9
10 备注:有什么错误的地方,欢迎网友们到空间留言
11
12 O(∩_∩)O~
13
14 ***************http://hi.baidu.com/echoas************/
15 #include<AT89X52.h>
16 #include<intrins.h>
17 #include"BMP.h"
18 #include"BMP1.h"
19 #include"BMP2.h"
20 #include"BMP3.h"
21 #include"BMP4.h"
22 #define uchar unsigned char
23 #define uint unsigned int
24
25 sbit RS=P2^5;
26 sbit RW=P2^6;
27 sbit EN=P2^7; //LCD三个控制端
28 uchar HZ_table1[]="LCD12864显示动画";
29 uchar HZ_table2[]=" 大海橡树 ";
30
31 void delay(uint i) //延时函数
32 {
33 1 while(--i);
34 1 }
35
36 void read_busy()//读忙函数。每次读写都要进行读忙操作
37 {
38 1 RS=0;
39 1 RW=1;
40 1 EN=1;
41 1 while(P0 & 0x80);//最高位为BF位 DB7---BF
42 1 EN=0;
43 1 }
44
45 void write_LCD_command(uchar value)//写指令函数
46 {
47 1 read_busy();
48 1 RS=0;
49 1 RW=0;
50 1 EN=1; //EN从1---0锁存数据
51 1 P0=value;
52 1 delay(20);
53 1 EN=0;
54 1 }
55
C51 COMPILER V8.02 MAIN 05/09/2012 00:02:19 PAGE 2
56 void write_LCD_data(uchar value)//写数据函数
57 {
58 1 read_busy();
59 1 RS=1;
60 1 RW=0;
61 1 EN=1; //EN从1---0锁存数据
62 1 P0=value;
63 1 delay(20);
64 1 EN=0;
65 1 }
66 void init_BMP()
67 {
68 1 write_LCD_command(0x36);//CL=1--8位。扩充指令(RE=1),绘图打开(G=1)
69 1 delay(100); //适当延时
70 1 write_LCD_command(0x36);
71 1 delay(37);
72 1 write_LCD_command(0x3E); //8位(CL=1),扩充指令(RE=1),绘图打开(G=1)
73 1 delay(100);
74 1 write_LCD_command(0x01);//清屏指令
75 1 delay(100);
76 1 }
77
78 void display_BMP(uchar *address)
79 {
80 1 uchar i,j;
81 1 for(i=0;i<32;i++)
82 1 {
83 2 write_LCD_command(0x80+i);//先送垂直地址
84 2 write_LCD_command(0x80); //再送水平地址 ----显示图片的上半部分
85 2 for(j=0;j<16;j++)
86 2 {
87 3 write_LCD_data(*address);
88 3 address++;
89 3 }
90 2 }
91 1
92 1 for(i=0;i<32;i++)
93 1 {
94 2 write_LCD_command(0x80+i); //先送垂直地址
95 2 write_LCD_command(0x88); //显示图片的下半部分
96 2 for(j=0;j<16;j++)
97 2 {
98 3 write_LCD_data(*address);
99 3 address++; //指针地址指向下个位置
100 3 }
101 2 }
102 1 }
103 void main()
104 {
105 1 init_BMP(); //显示图像函数初始化
106 1 while(1)
107 1 {
108 2 display_BMP(table); //第一个
109 2 display_BMP(table1); //第二个
110 2 display_BMP(table2); //第三个
111 2 display_BMP(table3); //第四个
112 2 display_BMP(table4); //第五个
113 2 }
114 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
C51 COMPILER V8.02 MAIN 05/09/2012 00:02:19 PAGE 3
CODE SIZE = 223 ----
CONSTANT SIZE = 5120 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 34 ----
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 + -