📄 kszong.lst
字号:
C51 COMPILER V7.50 KSZONG 08/29/2007 14:14:03 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE KSZONG
OBJECT MODULE PLACED IN KSzong.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE KSzong.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /**函数名称有修改**/
2
3 #include<stdio.h>
4
5 #include"KSzong.h"
6 #include"absacc.h"
7
8 #define RSL XBYTE[0XF6FF]
9 #define RSR XBYTE[0XFaFF]
10
11
12 #define WI1 XBYTE[0XF4FF]
13 #define WD1 XBYTE[0XF5FF]
14 #define RW1 XBYTE[0XF7FF]
15
16 #define WI2 XBYTE[0XF8FF]
17 #define WD2 XBYTE[0XF9FF]
18 #define RW2 XBYTE[0XFBFF]
19
20 void Delay_us(unsigned int DelayTime)
21 { // DelayTime=DelayTime*10;
22 1 while(DelayTime) (DelayTime)--;
23 1 }
24
25 void Delay_x10ms(unsigned char DelayTime) //***************10ms延时**********//
26 {
27 1 unsigned char i,j,k;
28 1 for(i=0;i<DelayTime;i++)
29 1 for(j=0;j<10;j++)
30 1 for(k=0;k<120;k++) {;}
31 1 }
32
33 /*----------------------------------------------------------------------------
34 下面这个函数用于液晶模块的忙信号检测。
35 ----------------------------------------------------------------------------*/
36 /*void LCD_Check_Busy(void)
37 {
38 uchar a=0;
39 uchar b=0;
40 while(1)
41 { a=RS;
42 b=a&0x80;
43 if(b==0x80) break;
44 }
45 //
46 }
47
48 /*----------------------------------------------------------------------------
49 下面这个函数用于向液晶模块写入控制指令代码。
50 函数入口参数:Command ------ 向液晶模块写入的控制指令代码 。
51 CS_Num ------ 左右半屏的选数值
52 ----------------------------------------------------------------------------*/
53 void LCD_WriteCommand(uchar Command, uchar CS_Num)
54 {
55 1 if(CS_Num==1) /*选择左半屏*/
C51 COMPILER V7.50 KSZONG 08/29/2007 14:14:03 PAGE 2
56 1 {while(0x80&RSL); WI1=Command;
57 2 }
58 1 else if(CS_Num==2) /*选择右半屏*/
59 1 { while(0x80&RSR); WI2=Command;
60 2 }
61 1 }
62
63
64 /*----------------------------------------------------------------------------
65 下面这个函数用于向液晶模块写入显示数据。
66 函数入口参数:Data------ 向液晶模块写入的显示数据 。
67 CS_Num-------左右半屏的选数值
68 ----------------------------------------------------------------------------*/
69 void LCD_WriteData(uchar Data,uchar CS_Num)
70 {
71 1 // LCD_Check_Busy();
72 1
73 1 if(CS_Num==1) /*选择左半屏*/
74 1 {while(0x80&RSL); WD1=Data;
75 2 }
76 1 else if(CS_Num==2) /*选择右半屏*/
77 1 { while(0x80&RSR); WD2=Data;
78 2 }
79 1 }
80
81
82 /*---------------------------------------------------------------------------
83 下面这个函数用于向液晶模块初始化。
84 如果没有写完一个半屏的数据就要充分结合此函数来达到要显示的效果
85 ---------------------------------------------------------------------------*/
86 void LCD_Initial(void)
87 {
88 1 //LCD_RST = 0; /* 置复位信号为低电平 */
89 1 //Delay_us(2);
90 1 //LCD_RST = 1; /* 置复位信号为高电平 */
91 1 LCD_WriteCommand(0x3F,Left); /*显示开*/
92 1 LCD_WriteCommand(0x3F,Right);
93 1 LCD_WriteCommand(0xC0,Left); /*起始行*/
94 1 LCD_WriteCommand(0xC0,Right);
95 1 LCD_WriteCommand(0xB8,Left); /*起始页*/
96 1 LCD_WriteCommand(0xB8,Right);
97 1 LCD_WriteCommand(0x40,Left); /*起始列*/
98 1 LCD_WriteCommand(0x40,Right);
99 1 }
100
101
102
103 /**************************输出宋体的数字8*16***********************/
104
105
106 void LCD_Num(uchar Page_Num,uchar Clm_Num,uchar count,uchar *DisBuf,uchar Side_Num)
107 {
108 1 uchar k,COM;
109 1
110 1 COM=0xB8+Page_Num;
111 1 LCD_WriteCommand(COM,Side_Num);
112 1 COM=0x40+Clm_Num;
113 1 LCD_WriteCommand(COM,Side_Num);
114 1 for(k=0;k<8;k++)
115 1 {
116 2 LCD_WriteData(DisBuf[k+16*count],Side_Num);
117 2 }
C51 COMPILER V7.50 KSZONG 08/29/2007 14:14:03 PAGE 3
118 1
119 1
120 1 Page_Num++;
121 1 COM=0xB8+Page_Num;
122 1 LCD_WriteCommand(COM,Side_Num);
123 1 COM=0x40+Clm_Num;
124 1 LCD_WriteCommand(COM,Side_Num);
125 1 for(k=8;k<16;k++)
126 1 {
127 2 LCD_WriteData(DisBuf[k+16*count],Side_Num);
128 2 }
129 1
130 1 Delay_us(2);
131 1 }
132
133
134
135
136
137 /*---------------------------------------------------------------------------
138 下面这个函数用于液晶模块的清屏。
139 ---------------------------------------------------------------------------*/
140 void LCD_CLR(uchar Side_Num)
141 {
142 1 uchar i,k,COM;
143 1
144 1 for(i=0;i<8;i++)
145 1 {
146 2 COM=0xB8+i;
147 2 LCD_WriteCommand(COM,Side_Num);
148 2 COM=0x40;
149 2 LCD_WriteCommand(COM,Side_Num);
150 2
151 2 for(k=0;k<64;k++)
152 2 {
153 3 LCD_WriteData(0x00,Side_Num);
154 3 }
155 2 }
156 1 Delay_us(20);
157 1 }
158
159
160 /*---------------------------------------------------------------------------
161 下面这个函数为主函数,根据程序要实现的功能写相应的应用程序
162 ---------------------------------------------------------------------------*/
163
164
165
166
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 267 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 8
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 + -