📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 05/09/2012 00:04:21 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 程序:12864液晶显示原理
3 内容:LCD12864显示汉字(字库文字)
4 软件:keil uVision4
5 液晶:QY12864HZ1(字库型)
6 作者:大海橡树
7 整理日期:2010-11-25
8 修改:无
9 备注:已经过测试!
10
11 备注:有什么错误的地方,欢迎网友们到空间留言
12
13 O(∩_∩)O~
14
15 *******************http://hi.baidu.com/echoas**************/
16 #include<AT89X52.h>
17 #define uchar unsigned char
18 #define uint unsigned int
19
20
21 //端口定义
22 sbit RS=P2^5;
23 sbit RW=P2^6;
24 sbit EN=P2^7;
25
26 //sbit PSB=P2^4;//1---8位或4位并口方式;0---串口方式,单片机默认上电是1,故不用设定
27
28 uchar table[]=" 欢迎访问 ";
29 uchar table1[]="大海橡树百度空间";
30
31
32 void read_busy() //读忙标志
33 {
34 1 RS=0;
35 1 RW=1;
36 1 EN=1;
37 1 while(P0 & 0x80);
38 1 EN=0;
39 1 }
40
41 void delay(uint i) //延时函数
42 {
43 1 while(--i);
44 1 }
45 void write_LCD_command(uchar value) //写命令函数
46 {
47 1 read_busy(); //每次读写前都要惊醒“忙”判断
48 1 RS=0;
49 1 RW=0;
50 1 delay(200);
51 1 EN=1; //EN从1---0锁存有效数据
52 1 P0=value;
53 1 delay(200);
54 1 EN=0;
55 1 }
C51 COMPILER V8.02 MAIN 05/09/2012 00:04:21 PAGE 2
56 void write_LCD_data(uchar value)//写数据函数
57 {
58 1 read_busy(); //每次读写前都要惊醒“忙”判断
59 1 RS=1;
60 1 RW=0;
61 1 delay(200);
62 1 EN=1; //EN从1---0锁存有效数据
63 1 P0=value;
64 1 delay(200);
65 1 EN=0;
66 1 }
67
68 void init_LCD() //LCD12864初始化
69 {
70 1 delay(4000);
71 1 write_LCD_command(0x30);//8位数据格式,基本指令显示
72 1 delay(100); //延时时间
73 1 write_LCD_command(0x30);//8位数据格式,基本指令显示
74 1 delay(37);
75 1 write_LCD_command(0x0C);//开显示、关闭光标
76 1 delay(100);
77 1 write_LCD_command(0x01);//清屏指令
78 1 delay(10000); //延时
79 1 write_LCD_command(0x06);//设置显示点:指针自加1
80 1 }
81
82 void main()
83 {
84 1 uchar num;
85 1 init_LCD();
86 1 write_LCD_command(0x80);//设定显示的地址
87 1 write_LCD_command(0x01);
88 1 for(num=0;num<16;num++)
89 1 {
90 2 write_LCD_data(table[num]);
91 2 delay(10000);
92 2 }
93 1 write_LCD_command(0x90);
94 1 for(num=0;num<16;num++)
95 1 {
96 2 write_LCD_data(table1[num]);
97 2 delay(10000);
98 2 }
99 1 while(1);
100 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 191 ----
CONSTANT SIZE = ---- ----
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 + -