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

📄 24c01._c

📁 该程序是医院用的CPCR记录仪的终端控制程序
💻 _C
字号:
#include <d:\gkdoor\chensoft\main.h>
#include <d:\gkdoor\chensoft\24c01.h>
#include <iom128v.h>
#include <macros.h>	/* hardware write protect*/

void mDelay(unsigned char j)
{ 
	unsigned int i,ll;
	for(ll=0;ll<j;ll++)
		{ 
			for(i=0;i<125;i--)
			{;}
		}
}

void Start(void)  
{
	unsigned char i;
	SET_SDA();
//	SET_SCL();
	for(i=0;i<10;i++);
	CLEAR_SDA();
	for(i=0;i<10;i++);
}

void Stop(void)  
{
	unsigned char i;
	CLEAR_SDA();
//	SET_SCL();
	for(i=0;i<10;i++);
	SET_SDA();
	for(i=0;i<10;i++);
}

void Ack(void) 								/*answer bit*/
{
	unsigned char i;
	CLEAR_SDA();
	for(i=0;i<10;i++);
//	SET_SCL();
//	for(i=0;i<10;i++);
//	CLEAR_SCL();
}
void NoAck(void) 							/*backfard answer bit*/
{
	unsigned char i;
	SET_SDA();
	for(i=0;i<10;i++);
//	SET_SCL();
//	for(i=0;i<10;i++);
//	CLEAR_SCL();
}

void Send(unsigned char Data) 					/*send data sub ,data for send of data*/
{
	unsigned char j,i; 					/*bit counter control*/
//	unsigned char temp; 							/*middle var control*/
	for(j=0;j<8;j++)
	{
//	 		CLEAR_SCL();
			for(i=0;i<10;i++);
			if((Data&0x80)==0x80)
				SET_SDA();
			else
				CLEAR_SDA();
//			SET_SCL();
			Data=Data<<1;
	}
//	CLEAR_SCL();
}

unsigned char Read(void) 							/* read a byte of data ,and return this data*/
{
	unsigned char temp,i;
	unsigned char j;
	SET_SDA();
	for(j=0;j<8;j++)
	{
	 	temp<<=1;
//		CLEAR_SCL();
		for(i=0;i<10;i++);
//		SET_SCL();
		for(i=0;i<10;i++);
		if((PIND&0x02)==0x02)								/* if Sda=1;*/
			temp=temp|0x01; 
	}
	return temp;
}
void WrToROM(unsigned char *Data,unsigned int Address,unsigned char Num)
{
	 		unsigned char i;
			Start(); 							/* send start signed*/
			Send(0xa0); 						/* send SLA+W*/
			Ack();
			Send(*((unsigned char *)&Address+1)); 					/* send address*/
			Ack();
			Send(*((unsigned char *)&Address)); 
			Ack();
	 		for(i=0;i<Num;i++)
	 		{
			 	Send(*(Data+i));
				Ack();
			}
		 	Stop();
			mDelay(10);
		
}
void RdFromROM(unsigned char *Data,unsigned int Address,unsigned char Num)
{
	unsigned char i;
//	unsigned char *PData;
//	PData=Data;
	for(i=0;i<Num;i++)
		{
			Start();
			Send(0xa0);
			Ack();
			Send(*((unsigned char *)&Address+1));
			Ack();
			Send(*((unsigned char *)&Address)); 
			Ack();
			Start();
			Send(0xa1);
			Ack();
			*(Data+i)=Read();
//			CLEAR_SCL();
			NoAck();
			Stop();
			Address++;
		}
}

void write_byte01(unsigned int Address,unsigned char data)
{
			Start(); 							/* send start signed*/
			Send(0xa0); 						/* send SLA+W*/
			Ack();
			Send(*((unsigned char *)&Address+1)); 					/* send address*/
			Ack();
			Send(*((unsigned char *)&Address)); 
			Ack();
	 		Send(data);
			Ack();
			Stop();
			mDelay(30);
		
}
unsigned char read_byte01(unsigned int Address)
{
	unsigned char temp;
	Start();
	Send(0xa0);
	Ack();
	Send(*((unsigned char *)&Address+1));
	Ack();
	Send(*((unsigned char *)&Address)); 
	Ack();
	Start();
	Send(0xa1);
	Ack();
	temp=Read();
//	CLEAR_SCL();
	NoAck();
	Stop();
	return temp;
}

⌨️ 快捷键说明

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