📄 ts12864a.lst
字号:
C51 COMPILER V8.02 TS12864A 05/21/2008 10:52:26 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE TS12864A
OBJECT MODULE PLACED IN TS12864A.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TS12864A.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 /*****************************************************************/
2 /*****************************************************************/
3 /*函数名称: TS12864A.c */
4 /*函数功能: 液晶显示启动 */
5 /*入口参数: P6---------------------------------------液晶数据传输
6 P3----------------------------------------液晶控制脚*/
7 /*有无返回: 无 */
8 /*修改记录: 无修改记录 */
9 /*编写作者: t483-4-19chenyong */
10 /*编写日期: 2007-4-06 */
11 /*****************************************************************/
12
13 #include "common.h"
14 #include "TS12864A.h"
15 #include "ziku.h"
16 #include "delay.h"
17 unsigned char temp;
18
19 /*****************************************************************/
20 /*判断状态 */
21 /*****************************************************************/
22 void LCD_Busy(void)
23 {
24 1 SFRPAGE=0x0f;
25 1 LCD_RS=0; // 状态标志位和地址计数读入DB7和DB6-DB0
26 1 delay_17us();
27 1 LCD_RW=1;
28 1 delay_17us();
29 1 LCD_DATA=0xff; //初始化
30 1 while (1)
31 1 {
32 2 LCD_EN=1;
33 2 delay_17us();
34 2 if (LCD_DATA<0x80)break;//判断是否忙
35 2 LCD_EN=0;
36 2 delay_17us();
37 2 }
38 1 LCD_EN=0;
39 1 delay_17us();
40 1 }
41
42 /*****************************************************************/
43 /*写数据 */
44 /*****************************************************************/
45 void LCD_Write_Data(uchar ddata)
46 {
47 1 LCD_Busy(); //检测是否处于忙的状态
48 1 LCD_RS = 1;
49 1 delay_17us();
50 1 LCD_RW = 0;
51 1 delay_17us();
52 1 temp=ddata;
53 1 SFRPAGE=0x0f;
54 1 LCD_DATA=temp;
55 1 LCD_EN = 1;
C51 COMPILER V8.02 TS12864A 05/21/2008 10:52:26 PAGE 2
56 1 delay_17us();
57 1 LCD_EN = 0;
58 1 delay_17us();
59 1 }
60 /*****************************************************************/
61 /*写命令 */
62 /*****************************************************************/
63
64 void LCD_Write_Command(uchar command)
65 {
66 1 LCD_Busy(); //检测是否处于忙的状态
67 1 LCD_RS = 0;
68 1 delay_17us();
69 1 LCD_RW = 0;
70 1 delay_17us();
71 1 temp=command;
72 1 SFRPAGE=0x0f;
73 1 LCD_DATA=temp;
74 1 LCD_EN = 1;
75 1 delay_17us();
76 1 LCD_EN = 0;
77 1 delay_17us();
78 1 }
79
80 void CleanScreen(void)
81 {
82 1 uchar i, j, k;
83 1
84 1 for (i=0;i<8;i++)
85 1 {
86 2 LCD_CSA = 1;
87 2 delay_17us();
88 2 LCD_CSB = 1;
89 2 delay_17us();
90 2 LCD_Write_Command(0x40); //设置列地址
91 2 delay_17us();
92 2 LCD_Write_Command(0xb8+i); //设置页地址
93 2 delay_17us();
94 2 LCD_CSA = 1;
95 2 delay_17us();
96 2 LCD_CSB = 0;
97 2 delay_17us();
98 2 for(j=0;j<128;j++)
99 2 LCD_Write_Data(0x00);
100 2 delay_17us();
101 2 LCD_CSA = 0;
102 2 delay_17us();
103 2 LCD_CSB = 1;
104 2 delay_17us();
105 2 for(k=64;k<128;k++)
106 2 LCD_Write_Data(0x00);
107 2 delay_17us();
108 2 }
109 1 }
110
111 /*****************************************************************/
112 /*设置x,y位置 */
113 /*****************************************************************/
114 void LCD_Set_xy(unsigned char x,unsigned char y)
115 {
116 1
117 1 LCD_CSA = 1;
C51 COMPILER V8.02 TS12864A 05/21/2008 10:52:26 PAGE 3
118 1 delay_17us();
119 1 LCD_CSB = 1;
120 1 delay_17us();
121 1
122 1 LCD_Write_Command(0x40|x);
123 1 delay_17us();
124 1 LCD_Write_Command(0xb8|y);
125 1 delay_17us();
126 1
127 1 if (x>=64) //判断是否显示半面,如果大于64则全屏显示
128 1 {
129 2 LCD_CSA=0;
130 2 delay_17us();
131 2 LCD_CSB=1;
132 2 delay_17us();
133 2 }
134 1 else //小于64则半屏显示
135 1 {
136 2 LCD_CSA=1;
137 2 delay_17us();
138 2 LCD_CSB=0;
139 2 delay_17us();
140 2 }
141 1 LCD_DATA=0xff; //IO口将电平拉高
142 1 delay_17us();
143 1 }
144 /*****************************************************************/
145 /*函数名称: Dis_Play.c */
146 /*函数功能: 显示汉字,fb==1:反白显示 */
147 /*函数说明: 具体说明如下:
148 x---------------------------------------------横轴位置
149 y---------------------------------------------纵轴位置
150 n-------------------------------------数据在表中的位置
151 dis_value-----------------------------待显示汉字的代码
152 */
153 /*修改记录: 无修改记录 */
154 /*编写日期: 2007-3-17 */
155 /*****************************************************************/
156 void Dis_Play(unsigned char x,unsigned char y,unsigned char dis_value)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -