📄 test.lst
字号:
C51 COMPILER V7.00 TEST 01/16/2007 23:05:40 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE TEST
OBJECT MODULE PLACED IN TEST.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TEST.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*****************************************************
2 1602C语言测试程序
3 Copy:yangdetian
4 EMail:yangdetianex@126.com
5 ******************************************************/
6 #include <AT89X52.H>
7 #include <string.h>
8 sbit R_S=0xB4;//1602RS端口
9 sbit R_W=0xB5;//1602RW端口
10 sbit ENABLE=0xB3;//1602E端口
11 sbit ACC_7=0xE7;//1602第DB7变量
12 sfr DB0_DB7=0x90;//1602数据线变量
13 unsigned int a;
14 void ChechBusy(void)//LCM忙碌信号检查子函数
15 {
16 1 g1:R_S=0;
17 1 R_W=1;
18 1 ENABLE=0;
19 1 ENABLE=1;
20 1 ACC=DB0_DB7;
21 1 ENABLE=0;
22 1 if(1==ACC_7)
23 1 {
24 2 goto g1;
25 2 }
26 1 else
27 1 {
28 2 for(a=0;a<1000;a++);
29 2 }
30 1 }
31 void Write_LCDData(char DDARMcode)//LCMDDRAM写文字子函数
32 {
33 1 ChechBusy();
34 1 ENABLE=0;
35 1 R_S=1;
36 1 R_W=0;
37 1 ENABLE=1;
38 1 ACC=DDARMcode;
39 1 DB0_DB7=ACC;
40 1 ENABLE=0;
41 1 }
42 void Write_instruction(char commandcode)//LCM控制IR控制命令子函数
43 {
44 1 ChechBusy();
45 1 ENABLE=0;
46 1 R_S=0;
47 1 R_W=0;
48 1 ENABLE=1;
49 1 ACC=commandcode;
50 1 DB0_DB7=ACC;
51 1 ENABLE=0;
52 1 }
53 void LCDInitial(void)
54 {
55 1 Write_instruction(0x38);//LCM设定为使用8Bits汇流排,显示两行并使用5*7的字符
C51 COMPILER V7.00 TEST 01/16/2007 23:05:40 PAGE 2
56 1 Write_instruction(0x0E);//LCM设定为显示模式,光标显示并闪烁
57 1 Write_instruction(0x06);//LCM设定为每一次资料输入DDRAM后光标向后移动一格
58 1 }
59 void Write_LCDDataChar(char commandcode,char DDARMcode)//LCM写入一个字符子的函数
60 {
61 1 Write_instruction(commandcode);//LCM的DDRAM读写位置变量commandcode
62 1 Write_LCDData(DDARMcode);//写入DDARMcode变量中的文字
63 1 }
64 void Write_LCDDataStr(int commandcode,char *DDARMcode)//LCM写入一串字符子函数,commandcode行号,*DDARMcode字
-符串地址
65 {
66 1 int a,b;
67 1 char tmpechar;
68 1 if(1==commandcode)
69 1 {
70 2 tmpechar=0x80;
71 2 }
72 1 else if(2==commandcode)
73 1 {
74 2 tmpechar=0xC0;
75 2 }
76 1 a=strlen(DDARMcode);
77 1 for (b=0;b<a;b++)
78 1 {
79 2 Write_instruction(tmpechar);
80 2 Write_LCDData(DDARMcode[b]);
81 2 tmpechar++;
82 2 }
83 1 }
84 void main()
85 {
86 1 LCDInitial();
87 1 Write_instruction(0x01);//清空LCD的内容
88 1 Write_LCDDataChar(0x80,0x41);//LCM写入A字符,第一行第一个位置
89 1 Write_LCDDataChar(0xC7,0x42);//LCM写入A字符,第二行第八个位置
90 1 Write_LCDDataStr(1,"Yangdetian");//LCM写入一串字符串,第一行
91 1 Write_LCDDataStr(2,"I Love You");//LCM写入一串字符串,第二行
92 1 g1:goto g1;
93 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 234 ----
CONSTANT SIZE = 22 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 6
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 + -