📄 _rb_r.lst
字号:
C51 COMPILER V7.07 _RB_R 03/18/2005 01:33:13 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE _RB_R
OBJECT MODULE PLACED IN _RB_r.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE _RB_r.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //-----------------------------------------------------------------------------------------
2 //-----------------------------------------------------------------------------------------
3 #include <REG51.h>
4
5 const unsigned long XTAL = 11059200;
6 const unsigned long baudrate = 9600;
7
8 void com_initialize(void);
9 void DataOut(unsigned char);
10 unsigned char DataIn(void);
11
12 //-----------------------------------------------------------------------------------------
13 //-----------------------------------------------------------------------------------------
14 #include <intrins.h>
15
16 typedef bit Bool;
17 typedef bit Bit;
18 typedef unsigned char Byte;
19
20 sbit SCL = P1^0;
21 sbit SDA = P1^1;
22
23 #define False (Bool) 0
24 #define True (Bool) !False
25
26 void I2cWait(void);
27 void I2cInit(void);
28 void I2cStart(void);
29 void I2cStop(void);
30 Bool I2cSentByte1(Byte);
31 void SendAcknowledge(Bool);
32
33 //-----------------------------------------------------------------------------------------
34 //-----------------------------------------------------------------------------------------
35 void main(void){
36 1 unsigned char buff;
37 1 Bool k;
38 1 P2 = 0;
39 1 com_initialize();
40 1
41 1
42 1 buff = DataIn();
43 1 P2 = buff;
44 1 DataOut(buff);
45 1
46 1 I2cWait();
47 1 I2cInit();
48 1 I2cStart();
49 1 I2cStop();
50 1 k = I2cSentByte1(0x10);
51 1 SendAcknowledge(1);
52 1 }
53 //-----------------------------------------------------------------------------------------
54 //-----------------------------------------------------------------------------------------
55 void com_initialize(void){
C51 COMPILER V7.07 _RB_R 03/18/2005 01:33:13 PAGE 2
56 1 SCON = 0x52; // choose mode 1 serial interrupt, and no read state.
57 1 PCON = 0x00; // power control, PCON.1 is SMOD which is choose baudrate double or not.
58 1
59 1 IE = 0x00; // Set on interrupt.
60 1 IP = 0x10; // Set on Serial interrupt priority.
61 1
62 1 TMOD = 0x20;// Set Time control in Timer1 work on model 2.
63 1 TH1 = (unsigned char)(256-(XTAL/((unsigned long)384*baudrate)));
64 1 TR1 = 1; // Timer1 start.
65 1 }
66 void DataOut(unsigned char c){
67 1 do{
68 2 }while(!TI);
69 1 TI = 0;
70 1 SBUF = c;
71 1 }
72 unsigned char DataIn(void){
73 1 do{
74 2 }while(!RI);
75 1 RI=0;
76 1 return(SBUF);
77 1 }
78 //-----------------------------------------------------------------------------------------
79 //-----------------------------------------------------------------------------------------
80 void I2cWait(void){
81 1 _nop_();
82 1 _nop_();
83 1 }
84 void I2cInit(void){
85 1 SDA = 1;
86 1 SCL = 1;
87 1 }
88 void I2cStart(void){
89 1 SDA = 1;
90 1 SCL = 1;
91 1 I2cWait();
92 1 SDA = 0;
93 1 I2cWait();
94 1 SCL = 0;
95 1 }
96 void I2cStop(void){
97 1 SDA = 0;
98 1 I2cWait();
99 1 SCL = 1;
100 1 I2cWait();
101 1 SDA = 1;
102 1 }
103 Bool I2cSentByte1(Byte bytedata){
104 1 Byte i;
105 1 Bool ack;
106 1 for(i=0;i<8;i++){
107 2 if(bytedata & 0x80){
108 3 SDA = 1;
109 3 }else{
110 3 SDA = 0;
111 3 }
112 2 bytedata <<=1;
113 2 I2cWait();
114 2
115 2 SCL = 1;
116 2 I2cWait();
117 2 SCL = 0;
C51 COMPILER V7.07 _RB_R 03/18/2005 01:33:13 PAGE 3
118 2 I2cWait();
119 2 }
120 1 SDA = 1;
121 1 I2cWait();
122 1 SCL = 0;
123 1 I2cWait();
124 1 ack = SDA;
125 1 SCL = 0;
126 1 I2cWait();
127 1 return ack;
128 1 }
129 void SendAcknowledge(Bool ack){
130 1 SDA = ack;
131 1 SCL = 1;
132 1 I2cWait();
133 1 SCL = 0;
134 1 }
135
136 //-----------------------------------------------------------------------------------------
137 //-----------------------------------------------------------------------------------------
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 215 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 3
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -