📄 b_commond.lst
字号:
C51 COMPILER V7.06 B_COMMOND 07/07/2008 21:47:21 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE B_COMMOND
OBJECT MODULE PLACED IN b_commond.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE b_commond.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<AT89X51.H>
2 #include<intrins.h>
3
4 #define EN P2_0
5 #define RW P2_1
6 #define RS P2_2
7 #define DATA P1
8
9 /*
10 void che_busy(void);
11 void send_d(unsigned char data_in);
12 void send_i(unsigned char comm);
13 unsigned char read_ram(void);
14 */
15
16 //;================================================
17 //测忙碌子程序
18 //;RS=0,RW=1,E=H,D0-D7=状态字
19 //;================================================
20 void che_busy(void)
21 {
22 1 unsigned char q;
23 1 RS = 0; //CLR RS
24 1 RW = 1; //SETB RW
25 1 do
26 1 { //JB P0.7,$
27 2 P1 = 0xFF; //MOV P0,#0FFH ;测忙碌子程序
28 2 EN = 1; //SETB E
29 2 q = P1;
30 2 EN = 0; //CLR E
31 2 }
32 1 while(q & 0x80);
33 1 }
34
35 //;===============================================
36 //;写数据子程序
37 //;RS=1,RW=0,E=高脉冲,D0-D7=数据
38 //;===============================================
39 void send_d(unsigned char data_in)
40 {
41 1
42 1 che_busy(); //LCALL CHK_BUSY ;写数据子程序
43 1 RS = 1; //SETB RS
44 1 RW = 0; //CLR RW
45 1 DATA = data_in; //MOV P0,A
46 1 EN = 1; //SETB E
47 1 _nop_(); //NOP
48 1 _nop_(); //NOP
49 1 EN = 0; //CLR E
50 1
51 1
52 1 }
53
54 //;===============================================
55 //;写指令子程序
C51 COMPILER V7.06 B_COMMOND 07/07/2008 21:47:21 PAGE 2
56 //;RS=0,RW=0,E=高脉冲,D0-D7=指令码
57 //;===============================================
58 void send_i(unsigned char comm)
59 {
60 1 che_busy(); //LCALL CHK_BUSY
61 1 RS = 0; //CLR RS
62 1 RW = 0; //CLR RW
63 1 DATA = comm; //MOV P0,A
64 1 EN = 1 ; //SETB E
65 1 _nop_(); //NOP
66 1 _nop_(); //NOP
67 1 EN = 0; //CLR E
68 1 }
69 /*
70 //;读RAM值
71 unsigned char read_ram(void)
72 {
73 unsigned char temp;
74 che_busy();
75
76 P0 = 0xFF; //MOV P0,#0FFH ;测忙碌子程序
77 RS = 1; //SETB RS
78 RW = 1; //SETB RW
79 EN = 1; //SETB E
80 _nop_();
81 _nop_();
82 temp = DATA;
83 EN = 0;
84 return(temp);
85 }
86 */
87 //;********************初始化**********************
88 void lcd_ini(void)
89 {
90 1 P1 = 0xff;
91 1 P2 = 0xff;
92 1 P3 = 0xff;
93 1 send_i(0x38); //LGS0: MOV A,#34H ;34H--扩充指令操作
94 1 //LCALL SEND_I
95 1 send_i(0x08); //MOV A,#30H ;30H--基本指令操作
96 1 //LCALL SEND_I
97 1 send_i(0x06); //MOV A,#01H ;清除显示
98 1 //LCALL SEND_I
99 1 send_i(0x01); //MOV A,#06H ;指定在资料写入或读取时,光标的移动方向
100 1 //LCALL SEND_I ;DDRAM 的地址计数器(AC)加1
101 1 send_i(0x0C); //MOV A,#0CH ;开显示,关光标,不闪烁
102 1 //LCALL SEND_I
103 1 }
104
105
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 88 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -