⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c.bak

📁 IIC READ AND WRITE iic器件的读取 连续读取和页读取
💻 BAK
字号:
/*-------------------------
32(MICKEY) -->S1,S3 -->P0.5
33(KEY++)  -->S2    -->P0.4
18(MICLED) -->D4    -->P2.0
31         -->SDA   -->P0.6
30         -->SCL   -->P0.7
5          -->RXD   -->P3.0
7          -->TXD   -->P3.1
-------------------------*/

#include	<reg52.h>
#include	"key.h"	
#include	"iic.h"
#include	"delay.h"
#define		ADDR	0x20			//定义读写地址

unsigned	char	OPEN[4]	={0X01,0X02,0X03,0XFC};	
unsigned	char	CLOSE[4]={0X02,0X02,0X03,0XFC};	
unsigned	char	BLINK[4]={0X03,0X02,0X05,0XFC};
unsigned 	char  getflag[4];
	
unsigned	char	writedata[16];
unsigned	char	readdata[16];

unsigned	char	i=0;
unsigned	char	j=0;

unsigned 	char 	k=0;//循环计数变量


void	InitBaudRate(void);//初始化波特率38400bps

void main()
{
	MICLED=OFF;						//LED默认熄灭
	InitTimer2();
	InitBaudRate();

	while(1)						//循环检测按键
	{
		KeyStatus();
		KeyDeal();
	}
}
void	InitBaudRate(void)	 //38400bps
{
	SCON	=0X50;
	TMOD	=0X20;
	TH1		=253;
	TL1		=253;
	PCON	=0X80;
	TR1		=1;
	TI		=0;
	RI		=0;
	EA		=1; 
	ES		=1; 
}


void  ES_INTERRUPT(void)  interrupt 4
{
	if(RI==1)
	{
		//关闭中断
	  EA	=0;
	  //数据暂存
		getflag[i++]	=SBUF;
		if(i>3||SBUF==0XFC)  i=0;		
		writedata[j]=SBUF;
		if(j>15)	j=0;
		j++;
		//判断读写
		if(SBUF==0X2A)//读写开始字符*
		{
			j=0;
			i=0;
		}
		if(SBUF==0X23)//读写结束字符#
		{		
				WritePages(ADDR,writedata,j);
				//WriteNByte(ADDR,writedata,j);
				ReadNByte(ADDR,readdata,j);
				for(k=0;k<j;k++)
				{
					SBUF=readdata[k];
					while(!TI);
					TI=0;
				}
				j=0;
				i=0;
		}
		//判断命令
		if(getflag[0]==OPEN[0]&&getflag[1]==OPEN[1]&&getflag[2]==OPEN[2]&&getflag[3]==OPEN[3])//LED亮
		{
				Setkeyvalue(2);
				KeyDeal();
		}
		else if(getflag[0]==CLOSE[0]&&getflag[1]==CLOSE[1]&&getflag[2]==CLOSE[2]&&getflag[3]==CLOSE[3])//LED灭
		{
				Setkeyvalue(3);
				KeyDeal();
		}
		else if(getflag[0]==BLINK[0]&&getflag[1]==BLINK[1]&&getflag[2]==BLINK[2]&&getflag[3]==BLINK[3])//LED闪
		{
				Setkeyvalue(1);	
				KeyDeal();					
		}
		//开启中断
		RI	=0;
		EA	=1;	
	}  
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -