📄 recvdata.lst
字号:
C51 COMPILER V7.50 RECVDATA 04/07/2006 12:47:44 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE RECVDATA
OBJECT MODULE PLACED IN recvdata.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE recvdata.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "recvdata.h"
2
3
4 unsigned char recvdata(void)
5 {
6 1 unsigned char datavalue=0,count=0,temp=1;
7 1 bit flag_checked=1,error=0;
8 1
9 1 if(keyclk==1)
10 1 {
11 2 return NORECVDATA;
12 2 }
13 1
14 1 /* wait keyclk to high */
15 1 while(!keyclk)
16 1 {
17 2 }
18 1
19 1 /* check keydata */
20 1 if(keydata)
21 1 {
22 2 return RECVERROR;
23 2 }
24 1
25 1 /* recv data */
26 1 datavalue=0;
27 1 temp=1;
28 1 flag_checked=1;
29 1
30 1 for(count=0;count<8;count++)
31 1 {
32 2 delay(4);
33 2 keyclk=0;
34 2 delay(8);
35 2 keyclk=1;
36 2 delay(4);
37 2 if(keydata)
38 2 {
39 3 datavalue=datavalue|(temp<<count);
40 3 flag_checked=!flag_checked;
41 3 }
42 2 }
43 1
44 1 /* recv checkparam */
45 1 delay(4);
46 1 keyclk=0;
47 1 delay(8);
48 1 keyclk=1;
49 1 delay(4);
50 1
51 1 if(keydata!=flag_checked)
52 1 {
53 2 error=1;
54 2 }
55 1
C51 COMPILER V7.50 RECVDATA 04/07/2006 12:47:44 PAGE 2
56 1 /* recv stop bit */
57 1 delay(4);
58 1 keyclk=0;
59 1 delay(8);
60 1 keyclk=1;
61 1 delay(4);
62 1
63 1 while(!keydata)
64 1 {
65 2 }
66 1
67 1 /* send ack */
68 1 delay(3);
69 1 keydata=0;
70 1 delay(1);
71 1 keyclk=0;
72 1 delay(8);
73 1 keyclk=1;
74 1 delay(1);
75 1 keydata=1;
76 1 delay(9);
77 1
78 1 if(error==1)
79 1 {
80 2 return RECVERROR;
81 2 }
82 1
83 1 return datavalue;
84 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 178 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 3
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -