📄 lcm.lst
字号:
C51 COMPILER V7.50 LCM 06/05/2008 21:18:56 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE LCM
OBJECT MODULE PLACED IN LCM.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CH\LCM.c BROWSE DEBUG OBJECTEXTEND PRINT(.\LCM.lst) OBJECT(LCM.obj)
line level source
1 #include "Includes.h"
2
3 /**************函数声明***********************/
4 static void ReadStatusLCM(void);
5 static void Delay_Xms(void);
6
7 /*****************写数据***********************/
8 extern void WriteDataLCM(unsigned char date)
9 {
10 1 ReadStatusLCM(); //检测忙
11 1 LCM_Data = date;
12 1 Delay_Xms();
13 1 LCM_RS = 1;
14 1 LCM_RW = 0;
15 1 LCM_E = 0; //小的延时
16 1 LCM_E = 1;
17 1
18 1 }
19
20 /*********写指令 BuysC为0时忽略忙检测**************/
21 extern void WriteCommandLCM(unsigned char address,BuysC)
22 {
23 1 //if (BuysC)
24 1 ReadStatusLCM(); //根据需要检测忙
25 1 LCM_Data = address;
26 1 Delay_Xms();
27 1 LCM_RS = 0;
28 1 LCM_RW = 0;
29 1 LCM_E = 0;
30 1 LCM_E = 1;
31 1
32 1 }
33
34 /******************读忙状态(1忙,0不忙)*************/
35 void ReadStatusLCM(void)
36 {
37 1 LCM_Data = 0x00;
38 1 Delay_Xms();
39 1 LCM_RS = 0;
40 1 LCM_RW = 1;
41 1 LCM_E = 0;
42 1 LCM_E = 1;
43 1 while(Busy); //检测忙信号,忙则延时
44 1 }
45 /******************延时5ms *************/
46 void Delay_Xms(void) //约5ms延时
47 {
48 1 unsigned char i;
49 1 for(i=0;i<27;i++){
50 2 TMOD=0X02;
51 2 TH0=0X38;
52 2 TL0=0X38;
53 2 EA=0X00;
54 2 ET0=0X00;
55 2 TF0=0X00;
C51 COMPILER V7.50 LCM 06/05/2008 21:18:56 PAGE 2
56 2 TR0=0X01;
57 2 while(TF0!=1);
58 2 }
59 1 }
60
61 /*********************LCM初始化**************************/
62 extern void LCMInit(void)
63 {
64 1 WriteCommandLCM(0x01,0); //清除屏幕
65 1 WriteCommandLCM(0x38,0); //两次功能设置8位 单行 5*7不检测忙信号
66 1 Delay_Xms();
67 1 WriteCommandLCM(0x38,0);
68 1 Delay_Xms();
69 1 WriteCommandLCM(0x01,1); //显示清屏
70 1 WriteCommandLCM(0x0C,1); // 控制光标,显示 开,闪烁
71 1 WriteCommandLCM(0x06,1); // 控制光标和文字的移动
72 1 }
73
74 /********************显示程序(对应地址写入数据)********/
75 extern void display_lcm(unsigned char date,unsigned char address)
76 {
77 1 WriteCommandLCM(address,1);
78 1 WriteDataLCM(date);
79 1 }
80 /****************显示字符串******************************/
81 extern void diaplay_string( unsigned char a,unsigned char *adr)
82 {
83 1 unsigned char i=0;
84 1 while(adr[i]!='\0')
85 1 {
86 2 WriteCommandLCM(a,1);
87 2 WriteDataLCM(adr[i]);
88 2 i++;
89 2 a++;
90 2 }
91 1 }
92 /***********************END*******************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 222 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 10
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 + -