📄 存储器通信lcd显示.lst
字号:
C51 COMPILER V8.02 存储芲通信LCD显蔩 05/05/2008 17:49:25 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 存储芲通信LCD显蔩
OBJECT MODULE PLACED IN 存储器通信LCD显示.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 存储器通信LCD显示.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include <intrins.h>
3 #define uint unsigned int
4 #define uchar unsigned char
5
6 sbit e = P3^7;
7 sbit rs = P3^6;
8 uchar receive_index;
9
10
11 uchar code xs_data1[16]="send:";//-----------显示的字符串
12 uchar code xs_data2[16]="receiv:";
13 uchar code hex_ascii[16]="0123456789ABCDEF";
14
15 void isend(uchar adr);
16 void dsend(uchar asc);
17
18 void display_Dec(uchar dec_data);
19
20 //-------显示所在的行,列,内容,长度
21 void xianshi(uchar hang,uchar lie,uchar *p,uchar first,uchar num);
22
23 //----显示数据(数据)------//
24 void display_Data(uchar hang,uchar lie);
25
26 void delay5ms();
27 void delay_n_ms(int n_ms);
28
29
30 void init(); //串口初始化子程序 工作方式2
31
32 uchar receive_byte(); //串口接收一个字节子函数 返回接收数据
33 void send_byte(uchar send_data ); //串口发送数据程序
34 void receive_messages();
35
36
37
38 uchar idata receive_data[6];
39 //----- --------------------------------------
40
41 void main()
42 {
43 1 uchar i;
44 1 isend(1);//清屏指令
45 1 xianshi(1,0,xs_data1,0,5);
46 1 xianshi(2,0,xs_data2,0,7);
47 1 init(); //串口初始化子程序 工作方式2
48 1
49 1 do
50 1 {
51 2 receive_messages();
52 2 display_Data(2,8);
53 2 } while (1);
54 1
55 1
C51 COMPILER V8.02 存储芲通信LCD显蔩 05/05/2008 17:49:25 PAGE 2
56 1 }
*** WARNING C280 IN LINE 43 OF 存储器通信LCD显示.C: 'i': unreferenced local variable
57 //----------------------------------------------
58 void init() //串口初始化子程序 工作方式2
59 {
60 1 TMOD=0X20;
61 1 TH1=0XFD; //设置波特率9600 bit/s (0XFD) 波特率4800 bit/s(0XFA) 波特率2400 bit/s (0XF4) 波特率120
-0 bit/s(0XE8)
62 1 TL1=0XFD;
63 1 PCON=0X00;
64 1 TR1=1;
65 1 SCON=0X50;
66 1 }
67 //-------------------------------------------
68 void send_byte (uchar send_data ) //串口发送数据程序
69 {
70 1 SBUF=send_data;
71 1 while(TI==0);
72 1 TI=0;
73 1 }
74 //-------------------------------------------
75 uchar receive_byte() //串口接收一个字节子函数 返回接收数据
76 {
77 1 while(RI==0);
78 1 RI=0;
79 1 return SBUF;
80 1 }
81 //-------------------------------------------
82 void receive_messages()
83 {
84 1 do
85 1 {
86 2 receive_data[receive_index]=receive_byte();
87 2 receive_index++;
88 2 } while(receive_index>5);
89 1 receive_index=0;
90 1 }
91 //-------------------------------------------
92 void isend(uchar adr) //显示屏写指令子程序
93 {
94 1 P1=255;
95 1 rs=0;
96 1 e=1;
97 1 P1=adr;
98 1 e=0;
99 1 delay5ms();
100 1 }
101 //-------------------------------------------
102 void dsend(uchar asc) //显示屏写字符子程序
103 {
104 1 P1=255;
105 1 rs=1;
106 1 e=1;
107 1 P1=asc;
108 1 e=0;
109 1 delay5ms();
110 1 }
111 //--------------------------------------------
112 void delay5ms() //显示延时5ms子程序
113 {
114 1 uint j;
115 1 for (j=0;j<1100;j++)
C51 COMPILER V8.02 存储芲通信LCD显蔩 05/05/2008 17:49:25 PAGE 3
116 1 {;}
117 1 }
118 //--------------------------------------------
119 void delay_n_ms(int n_ms)
120 {
121 1 uchar n_us;
122 1 while(n_ms--)
123 1 {
124 2 n_us=200;
125 2 while(n_us--);
126 2 }
127 1 }
128 //------------------------------------------
129 void xianshi(uchar hang,uchar lie,uchar *p,uchar first,uchar num)
130 {
131 1 int i,*xs;
132 1 xs=p;
*** WARNING C182 IN LINE 132 OF 存储器通信LCD显示.C: pointer to different objects
133 1 isend(56); //设置显示器
134 1 isend(12); //开显示,无光标
135 1
136 1 if(hang==1)isend(128+lie); //设置数据指针第1行
137 1 else isend(192+lie); //第2行
138 1
139 1 for(i=first;i<num;i++)
140 1 {
141 2 dsend(p[i]);
142 2 }
143 1 }
144 //------------------------------------------
145 void display_Dec(uchar dec_data)
146 {
147 1 uchar a,b,c;
148 1
149 1 a=dec_data/100;
150 1 b=(dec_data-a*100)/10;
151 1 c=(dec_data-a*100-b*10);
152 1
153 1 dsend(hex_ascii[a]);
154 1 dsend(hex_ascii[b]);
155 1 dsend(hex_ascii[c]);
156 1 }
157 //------------------------------------------
158 void display_Data(uchar hang,uchar lie)
159 {
160 1 isend(56); //设置显示器
161 1 isend(12); //开显示,无光标
162 1
163 1 if(hang==1)isend(128+lie); //设置数据指针第1行
164 1 else isend(192+lie); //第2行
165 1
166 1 dsend(receive_data[0]);
167 1 dsend(receive_data[1]);
168 1 dsend(receive_data[2]);
169 1 dsend(receive_data[3]);
170 1 dsend(receive_data[4]);
171 1 dsend(receive_data[5]);
172 1
173 1
174 1
175 1
176 1 }
C51 COMPILER V8.02 存储芲通信LCD显蔩 05/05/2008 17:49:25 PAGE 4
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 408 ----
CONSTANT SIZE = 48 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 17
IDATA SIZE = 6 ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 2 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -