📄 1602_c.lst
字号:
C51 COMPILER V7.50 1602_C 08/12/2007 23:14:37 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 1602_C
OBJECT MODULE PLACED IN 1602_C.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 1602_C.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2 ///////////////////////////////////////////////////
3 //P2接1602的数据位
4 //1602第1行显示 " guangxi beihai"
5 // 第2行显示" subingen "
6 ////////////////////////////////////////////////////
7
8
9 #include<reg51.h>
10 #include<intrins.h>//当需用_nop_()时,使用它
11 #define uchar unsigned char
12
13
14
15 uchar display1[16]={" guangxi beihai "};//要显示的数据
16 uchar display2[16]={" subingen "};
17
18
19
20
21 /******************************************************************
22 1602程序部分
23 数据总线接到p2口 用到1ms延时程序 <intrins.h>函数
24 *******************************************************************/
25
26 uchar command[]={0x38,0x38,0x38,0x38,0x08,0x01,0x06,0x0c}; /* P2=0x01;//清屏并光标复位
27 P2=00111000;//显示模式设置,8位总线,2行,5*7
28 P2=0x0c;//开显示。光标和闪烁
29 P2=0x06;//文字不动,光标自动右移
30 P2=0x80;//写入的起始位置,第1行第1列*/
31
32 sbit e=P3^7;
33 sbit rw=P3^6;
34 sbit rs=P3^0;
35 sbit busy=P2^7;
36
37 //init();//1602初始化
38 //dataw();//数据写入
39 //comw();//指令写入
40
41 //--------------------------延时程序-------------------------------
42 void delay(uchar i)
43 { uchar a;
44 1 while(i--)
45 1 {for(a=0;a<=125;a++)
46 2 {;}
47 2 }
48 1 }
49 //--------------------查LCD是否忙程序-----------------------
50 void wait(void)
51 { do
52 1 { P2=0xff;
53 2 rs=0;//
54 2 rw=1;//
55 2 e=0;
C51 COMPILER V7.50 1602_C 08/12/2007 23:14:37 PAGE 2
56 2 _nop_();
57 2 _nop_();
58 2 e=1; }
59 1 while(busy==1);
60 1 }
61
62
63 //-------------------数据写入函数-------------------------
64 void dataw(uchar da)
65 { wait();
66 1 rs=1;
67 1 rw=0;
68 1 e=1;
69 1 P2=da;
70 1 e=0;
71 1 }
72
73
74 //-------------------指令和显示地址写入子函数------------
75
76 void comw(uchar da)
77 { wait();
78 1 rs=0;
79 1 rw=0;
80 1 e=1;
81 1 P2=da;
82 1 e=0;
83 1 }
84
85
86 //--------------------------初始化--------------------------------
87 void init(void)
88 { uchar i;
89 1 delay(20);
90 1 e=1;
91 1 for(i=0;i<8;i++)
92 1 {comw(command[i]);
93 2 delay(5);
94 2 }
95 1
96 1 }
97
98
99 /****************************************************************************
100 主函数部分
101
102 *****************************************************************************/
103 main()
104 { uchar i=0;
105 1
106 1 init();//初始化
107 1
108 1 comw(0x80);//写入第一行
109 1 for(i=0;i<16;i++)
110 1 dataw(display1[i]);//数据写入
111 1
112 1 comw(0xc0);//写第二行
113 1 for(i=0;i<16;i++)
114 1 dataw(display2[i]);//数据写入
115 1
116 1 while(1);
117 1 }
C51 COMPILER V7.50 1602_C 08/12/2007 23:14:37 PAGE 3
118
119 /*******************************************************************************/
120
121
122
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 138 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 40 ----
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 + -