📄 fm24c16a.lst
字号:
C51 COMPILER V7.06 FM24C16A 06/06/2005 16:32:37 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE FM24C16A
OBJECT MODULE PLACED IN .\output\FM24C16A.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE FM24C16A.C OPTIMIZE(6,SPEED) BROWSE ORDER DEBUG OBJECTEXTEND PRINT(.\output
-\FM24C16A.lst) OBJECT(.\output\FM24C16A.obj)
stmt level source
1 #include "config.h"
2 bdata unsigned char aba;
3 sbit abita0=aba^0;sbit abita1=aba^1;sbit abita2=aba^2;sbit abita3=aba^3;
4 sbit abita4=aba^4;sbit abita5=aba^5;sbit abita6=aba^6;sbit abita7=aba^7;
5 sbit FMSCLA = P0^5;
6 sbit FMSDAA = P0^4;
7 /***************************************************/
8 //void load_work_step_infomation_from_fm(unsigned char work_step)
9 //{
10 // current_ws_type = read_f24c16_byte(FM_WORK_STEP_INFO_BASE+4+work_step*7+0);
11 // current_ws_current = read_f24c16_int (FM_WORK_STEP_INFO_BASE+4+work_step*7+1);
12 // current_ws_voltage = read_f24c16_int (FM_WORK_STEP_INFO_BASE+4+work_step*7+3);
13 // current_ws_minute = read_f24c16_int (FM_WORK_STEP_INFO_BASE+4+work_step*7+5);
14 //}
15
16 void I_delayA(void)
17 {
18 1 _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
19 1 _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
20 1 // _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
21 1 // _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
22 1 }
23 void I_delaylA(void)
24 {
25 1 _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
26 1 _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
27 1 _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
28 1 _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
29 1
30 1 // _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
31 1 // _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
32 1 // _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
33 1 // _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
34 1
35 1 }
36 /************************************************************
37 *函数原型:void I_start(void); *
38 * 功能: 提供I2C总线工作时序中的起始位。 *
39 ************************************************************/
40 void I_startA(void)
41 {
42 1 FMSCLA = HIGH;I_delaylA();
43 1 FMSDAA = LOW;I_delayA();
44 1 FMSCLA = LOW;I_delayA();
45 1 }
46 /************************************************************
47 *函数原型:void function I_stop(void); *
48 * 功能: 提供I2C总线工作时序中的停止位。 *
49 ************************************************************/
50 void I_stopA(void)
51 {
52 1 FMSDAA = LOW;I_delayA();
53 1 FMSCLA = HIGH;I_delaylA();
54 1 FMSDAA = HIGH;I_delayA();
C51 COMPILER V7.06 FM24C16A 06/06/2005 16:32:37 PAGE 2
55 1 FMSCLA = LOW;I_delayA();
56 1 }
57 /**************************************************************/
58 /*函数原型:void function I_init(void); *
59 * 功能: I2C总线初始化。在MAIN()函数中应首先调用本函数, *
60 * 然后再调用其它函数。 */
61 /********************************** ****************************/
62 void I_initA(void)
63 {
64 1 FMSCLA = LOW;I_delayA();
65 1 I_stopA();I_delayA();
66 1 }
67 /*********************************************************************************************************
-*************/
68 /*函数原型:bit void function I_clock(void);
69 * 功能: 提供I2C总线的时钟信号,并返回在时钟电平为高期间FMSDAA信号线上状态。本函数可用于数据发送,也可
-用于数据接收。*/
70 /*********************************************************************************************************
-************/
71 bit I_clockA(void)
72 {
73 1 bit sample;
74 1 FMSCLA = HIGH;I_delaylA();
75 1 sample = FMSDAA;I_delayA();
76 1 FMSCLA = LOW;I_delayA();
77 1 return (sample);
78 1 }
79 /*********************************************************************************************************
-****/
80 /*函数原型:bit void function I_send(unsigned char I_data);
81 * 功能: 向I2C总线发送8位数据,并请求一个应答信号ACK。如果收到ACK应答则返回1(TRUE),否则返回0(FALSE
-)。*
82 /*********************************************************************************************************
-****/
83 bit I_sendA(unsigned char I_data)
84 {
85 1 aba = I_data;
86 1 FMSDAA = abita7;;FMSCLA = HIGH;I_delaylA();FMSCLA = LOW;I_delayA();
87 1 FMSDAA = abita6;;FMSCLA = HIGH;I_delaylA();FMSCLA = LOW;I_delayA();
88 1 FMSDAA = abita5;;FMSCLA = HIGH;I_delaylA();FMSCLA = LOW;I_delayA();
89 1 FMSDAA = abita4;;FMSCLA = HIGH;I_delaylA();FMSCLA = LOW;I_delayA();
90 1 FMSDAA = abita3;;FMSCLA = HIGH;I_delaylA();FMSCLA = LOW;I_delayA();
91 1 FMSDAA = abita2;;FMSCLA = HIGH;I_delaylA();FMSCLA = LOW;I_delayA();
92 1 FMSDAA = abita1;;FMSCLA = HIGH;I_delaylA();FMSCLA = LOW;I_delayA();
93 1 FMSDAA = abita0;;FMSCLA = HIGH;I_delaylA();FMSCLA = LOW;I_delayA();
94 1 FMSDAA = HIGH;I_delayA();
95 1 return(~I_clockA());
96 1 }
97 /********************************************************************/
98 /*函数原型:unsigned char function I_receive(void); *
99 *功能: 从I2C总线接收8位数据,并将接收到8位数据作为一个字节返回,*
100 *不回送应答信号ACK。主函数在调用本函数之前应保证FMSDAA信号线个于浮置状 *
101 *态,即使8051的P1.7脚置1. */
102 /********************************************************************/
103 unsigned char I_receiveA(void)
104 {
105 1 FMSCLA = HIGH;I_delaylA();abita7 = FMSDAA;FMSCLA = LOW;I_delayA();
106 1 FMSCLA = HIGH;I_delaylA();abita6 = FMSDAA;FMSCLA = LOW;I_delayA();
107 1 FMSCLA = HIGH;I_delaylA();abita5 = FMSDAA;FMSCLA = LOW;I_delayA();
108 1 FMSCLA = HIGH;I_delaylA();abita4 = FMSDAA;FMSCLA = LOW;I_delayA();
109 1 FMSCLA = HIGH;I_delaylA();abita3 = FMSDAA;FMSCLA = LOW;I_delayA();
110 1 FMSCLA = HIGH;I_delaylA();abita2 = FMSDAA;FMSCLA = LOW;I_delayA();
C51 COMPILER V7.06 FM24C16A 06/06/2005 16:32:37 PAGE 3
111 1 FMSCLA = HIGH;I_delaylA();abita1 = FMSDAA;FMSCLA = LOW;I_delayA();
112 1 FMSCLA = HIGH;I_delaylA();abita0 = FMSDAA;FMSCLA = LOW;I_delayA();
113 1 return (aba);
114 1 }
115 /******************************************************************/
116 /******************************************************************/
117 /*函数原型:void function I_ack(void); *
118 功能: 向I2C总线发送一个应答案信号ACK,一般用于连续数据读取时.*/
119 /******************************************************************/
120 /*void function I_Ack(void)
121 {
122 FMSDAA = LOW;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -