📄 lcd.lst
字号:
C51 COMPILER V7.50 LCD 01/03/2009 21:23:34 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN lcd.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SRC\lcd.c BROWSE DEBUG OBJECTEXTEND PRINT(.\lcd.lst) OBJECT(lcd.obj)
line level source
1 #include "p89v51rx2.h"
2 #include <intrins.h>
3 #include <string.h>
4
5 //-----------------------------------------------
6 //TS12864并口相关设定//
7 #define BUSY_FLAG P0_7 //液晶模块忙标志
8 //#define BG_LED_SET P1_7 //液晶背景光控制
9 #define MPU_RS_CH P2_6 //寄存器选择输入
10 #define MPU_RW_CH P2_7 //读写控制
11 #define MPU_ENABLE P2_3 //使能控制
12 #define MPU_PS_CH P2_3 //串/并传输控制
13 #define MPU_RESET P2_5 //液晶复位控制
14 #define LCD_DATA P0 //液晶数据口
15 #define LOW 0 //低电平
16 #define HIGH 1 //高电平
17 //-----------------------------------------------
18 //液晶模块定义集指令//
19 #define cClearDisplay 0x01 //清显示指令
20 #define cEntryModeSet 0x06 //设置输入模式
21 #define cDisplayOnCtrl 0x0c //设置开显控制
22 #define cFunctionSetB 0x30 //功能设定(基本指令)
23 #define cFunctionSetE 0x34 //功能设定(扩充指令)
24 #define cFuncDrawOn 0x36 //设置绘图功能
25 //unsigned char lcdPosX, lcdPosY; //X,Y坐标
26 //unsigned char halfScr, blStart, basicBlock; //半屏,下半屏,16*8块
27 //-----------------------------------------------
28 extern void delayMs (unsigned char ms) ;
29 void lcdWriteCommand (unsigned char Command);
30 void lcdClear (void);
31 void checkLcdBusy (void);
32 //===============================================
33 void lcdInit (void)
34 {
35 1 MPU_RESET = LOW;
36 1 delayMs(40);
37 1 MPU_RESET = HIGH;
38 1 delayMs(1);
39 1 MPU_PS_CH = HIGH;
40 1
41 1 lcdWriteCommand(cFunctionSetE);
42 1 lcdWriteCommand(cFunctionSetB);
43 1 lcdClear();
44 1 lcdWriteCommand(cEntryModeSet);
45 1 lcdWriteCommand(cDisplayOnCtrl);
46 1 }
47 //===============================================
48 void lcdClear (void)
49 {
50 1 /*#define cClearDisplay 0x01 //清显示指令
51 1 */
52 1 lcdWriteCommand(cClearDisplay);
53 1 }
54 //===============================================
55 void lcdWriteCommand (unsigned char Command)
C51 COMPILER V7.50 LCD 01/03/2009 21:23:34 PAGE 2
56 {
57 1 checkLcdBusy();
58 1 MPU_RS_CH = LOW;
59 1 MPU_RW_CH = LOW;
60 1 LCD_DATA = Command;
61 1 MPU_ENABLE = 1;
62 1 delayMs(1);
63 1 MPU_ENABLE = LOW;
64 1 }
65 //===============================================
66 void lcdWriteData (unsigned char Data)
67 {
68 1 checkLcdBusy();
69 1 MPU_RS_CH = HIGH;
70 1 MPU_RW_CH = LOW;
71 1 LCD_DATA = Data;
72 1 MPU_ENABLE = HIGH;
73 1 delayMs(1);
74 1 MPU_ENABLE = LOW;
75 1 }
76 //===============================================
77 void checkLcdBusy (void)
78 {
79 1 LCD_DATA = 0xff;
80 1 MPU_RS_CH = LOW;
81 1 MPU_RW_CH = HIGH;
82 1 MPU_ENABLE = HIGH;
83 1 while (BUSY_FLAG);
84 1 MPU_ENABLE = LOW;
85 1 }
86
87 //===============================================
88 void char_in_String_10(unsigned char _data, unsigned char y,signed char *msg,signed char sign) {
89 1
90 1 unsigned char *Ptr;
91 1 Ptr=msg+y;
92 1 if(_data>99)_data=99;
93 1 *(Ptr--) =_data%10+0x30;
94 1 *(Ptr--) =(_data/10)+0x30;
95 1 Ptr-- ;
96 1 if(sign)
97 1 *(Ptr) ='>';
98 1 else
99 1 *(Ptr) =' ';
100 1 }
101
102 //===============================================
103 void dispString (unsigned char X, Y, speed, unsigned char *msg)
104 {
105 1 if (X == 0)
106 1 {
107 2 X = 0x80;
108 2 }
109 1 else if (X == 1)
110 1 {
111 2 X = 0x90;
112 2 }
113 1 else if (X == 2)
114 1 {
115 2 X = 0x88;
116 2 }
117 1 else if (X == 3)
C51 COMPILER V7.50 LCD 01/03/2009 21:23:34 PAGE 3
118 1 {
119 2 X = 0x98;
120 2 }
121 1 Y = X + Y;
122 1 lcdWriteCommand(Y);
123 1
124 1 while (*msg)
125 1 {
126 2 lcdWriteData(*msg++);
127 2 delayMs(speed);
128 2 }
129 1 }
130 //===============================================
131 void delaySec (unsigned char sec)
132 {
133 1 unsigned char i;
134 1 while (--sec)
135 1 {
136 2 for (i = 0; i < 200; i++)
137 2 {
138 3 delayMs (6);
139 3 }
140 2 }
141 1 }
142 //===============================================
143 /**/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 313 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 21
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 + -