📄 tsp_lcd_movx.lst
字号:
C51 COMPILER V7.09 TSP_LCD_MOVX 04/30/2005 00:14:05 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE TSP_LCD_MOVX
OBJECT MODULE PLACED IN tsp_lcd_movx.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE tsp_lcd_movx.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2
3
4
5 //**************************************************************************************//
6 // 头文件区 //
7 //**************************************************************************************//
8 #include <SST89x5x4.h> /*关于寄存器、位的定义*/
9
10 #include <intrins.h> /*内部函数调用,如_nop_() 、_crol_()、cror();*/
11
12 #include <absacc.h> /*绝对地址访问,如XBYTE[0x0fff0]*/
13
14 #define write_data_operation XBYTE[0XCDFF] //写数据//E =1 RS=1 RW=0
15 #define write_commend_operation XBYTE[0XCCFF] //写命令//E=1 RS=0 RW=0
16 #define read_operation XBYTE[0xCEFF] //读数据//CS=1 RS=0 RW=1
17
18
19 //**************************************************************************************//
20 // 全局变量定义 //
21 //**************************************************************************************//
22 unsigned char test_value,temp;
23 unsigned char code display[]= " It will take years of hard work to speak English well!
- ";
24 unsigned char code display1[]= "Try our best to study! ";
25 unsigned char code display2[]= " to study! ";
26 unsigned char code display3[]= " tsp! English! ";
27 unsigned char code display4[]= " so lovely! ";
28
29
30 //**************************************************************************************//
31 // 延时程序 //
32 //**************************************************************************************//
33 void delay5ms(void)
34 {
35 1 unsigned int TempCyc = 5552;
36 1 while(TempCyc--);
37 1 }
38
39 void delay(unsigned int d) //延时du秒,延时较短,用于指令间的延时
40 {
41 1 while(d--);
42 1 }
43
44
45 //**************************************************************************************//
46 // 状态字检测程序 //
47 //**************************************************************************************//
48 void read_write_test(void) //状态字检测程序
49 { //对控制器每次进行读写操作前,都必须进行读写检测
50 1 temp=read_operation;
51 1 test_value=(temp&0x80);
52 1 }
53
54
C51 COMPILER V7.09 TSP_LCD_MOVX 04/30/2005 00:14:05 PAGE 2
55 //**************************************************************************************//
56 // 写指令子函数 //
57 //**************************************************************************************//
58 void write_command_not(unsigned char value)//(不检测忙信号)写指令子函数
59 {
60 1 write_commend_operation=value;
61 1 }
62
63
64 void write_command(unsigned char value)//(须检测忙信号)写指令子函数
65 {
66 1 do
67 1 {
68 2 read_write_test(); //对控制器每次进行读写操作前,都必须进行读写检测
69 2 }while(test_value==0x80); //STA7=P0^7最高们为读/写操作使能端,1:禁止 0:允许
70 1
71 1 write_commend_operation=value;
72 1 }
73
74
75 //**************************************************************************************//
76 // 写数据子函数 //
77 //**************************************************************************************//
78 void write_data(unsigned char value)
79 {
80 1 do
81 1 {
82 2 read_write_test(); //对控制器每次进行读写操作前,都必须进行读写检测
83 2 }while(test_value==0x80); //STA7=P0^7最高们为读/写操作使能端,1:禁止 0:允许
84 1
85 1 write_data_operation=value;
86 1 }
87
88
89 //**************************************************************************************//
90 // LCD系统初始化 //
91 //**************************************************************************************//
92 void System_Init ( void )
93 {
94 1 delay5ms();
95 1 delay5ms();
96 1 delay5ms();
97 1 write_command_not(0x38); //(不检测忙信号)写指令子函数
98 1 delay5ms();
99 1 write_command_not(0x38); //
100 1 delay5ms();
101 1 write_command_not(0x38); //
102 1
103 1 write_command(0x38); //设置显示模式 ,8位2行5x7点阵
104 1 write_command(0x08); // 关显示
105 1 write_command(0x01); //清屏
106 1 write_command(0x38); //设置显示模式 ,8位2行5x7点阵
107 1 write_command(0x06); //文字不动,光标自动右移
108 1 write_command(0x0F); //显示器开、光标开、闪烁开
109 1 }
110
111
112 //**************************************************************************************//
113 // 主MAIN函数区 //
114 //**************************************************************************************//
115 void main(void)
116 {
C51 COMPILER V7.09 TSP_LCD_MOVX 04/30/2005 00:14:05 PAGE 3
117 1 unsigned char i,j,k;
118 1 System_Init ();
119 1 while(1)
120 1 {
121 2 for(k=0;k<3;k++)//闪烁三次
122 2 {
123 3 write_command(0x01); //清屏
124 3 delay(100);
125 3 write_command(0x0f); //显示器开、光标开、闪烁开
126 3
127 3 for(i=0;i<32;i++)
128 3 {
129 4 if(i<16)
130 4 {
131 5 write_command(0x80|i);
132 5 write_data(display1[i]);
133 5 }
134 4
135 4 else
136 4 {
137 5 write_command(0xc0|(i-16));//#0C0H ;写入显示起始地址(第二行第一个位置)
138 5 write_data(display2[i-16]);
139 5 }
140 4 }
141 3 delay(50000);
142 3 delay(50000);
143 3 }
144 2 delay(300);
145 2
146 2 for(j=0;j<75;j++)
147 2 for(i=0;i<32;i++)
148 2 {
149 3 if(i<16)
150 3 {
151 4 write_command(0x80|i);
152 4 write_data(display3[i]);
153 4
154 4 write_command(0xc0|i);//#0C0H ;写入显示起始地址(第二行第一个位置)
155 4 write_data(display[i+j]);
156 4 }
157 3 delay(700);
158 3 }
159 2 delay(100);
160 2
161 2 for(i=0;i<32;i++)
162 2 {
163 3 if(i<16)
164 3 {
165 4 write_command(0x80|i);
166 4 write_data(display3[i]);
167 4 }
168 3 else
169 3 {
170 4 write_command(0xc0|(i-16));//#0C0H ;写入显示起始地址(第二行第一个位置)
171 4 write_data(display4[i-16]);
172 4 }
173 3 }
174 2 delay(300);
175 2
176 2 delay(10);
177 2 };
178 1 while(1);
C51 COMPILER V7.09 TSP_LCD_MOVX 04/30/2005 00:14:05 PAGE 4
179 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 329 ----
CONSTANT SIZE = 173 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
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 + -