📄 s_m_main.c
字号:
///////////从机接收调试程序////////////////
////////Smbus_S_R.c/////////////////////////////////
#include<c8051f020.h>
void senddata(unsigned char ads,unsigned char dat);
void setoff(unsigned char);
void config(void);
void yan50m(unsigned char);
void delay(long int);
#define S_AD_R 0x6f
#define S_AD_W 0x6e
unsigned char dat=0;//用于存放接收数据
unsigned char k;
void main(){
unsigned char t=0;
// char i;
config();
//smbus_cfg(0x44,0xf1,0x6f);
SMB0CN=0x44;
SMB0CR=0xF1;
SMB0ADR=0x6f;
EIE1=0x02;
EA=1;//打开全局中断
setoff(2);
k=0;
while(1);
}
void int0() interrupt 0{
}
void int1() interrupt 1{
}
void int2() interrupt 2{
}
void int3() interrupt 3{
}
void int4() interrupt 4{
}
void int5() interrupt 5{
}
void int6() interrupt 6{
}
void smbusInt() interrupt 7{//从机smbus接收中断,此中断只考虑关键状态处理,以便调试
//此句可省略,在此设断点观察寄存器变化
if(SMB0STA==0xA8){//自身从机地址+读控制接收,将欲发送的第一个数据装入发送缓冲区
SMB0DAT=111;
}
if(SMB0STA==0x80)
{
dat=SMB0DAT;
senddata(3,dat/100);
senddata(2,dat%100/10);
senddata(1,dat%10);
f=1;
}
SI=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -