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

📄 pc668okls.bak

📁 c51用于lcd 显示,键盘检测
💻 BAK
📖 第 1 页 / 共 5 页
字号:
								0x12,0x13,0x24,0x49,0x9F,0x19,0x2F,0x69,    // 衡    110
								0xAF,0x21,0x21,0x3F,0x22,0x24,0x28,0x20,
								0x00,0xC4,0x9E,0x00,0xE0,0x20,0xFE,0x24,
								0xE4,0x04,0x24,0xF4,0x84,0x44,0x54,0x08,								
									0x10,0x13,0x10,0x7C,0x10,0x10,0xFD,0x12,    // 超   111
									0x51,0x5D,0x51,0x51,0x71,0x48,0x87,0x00,
									0x08,0xFC,0x88,0x88,0x88,0xA8,0x10,0x00,
									0xF8,0x08,0x08,0x08,0xF8,0x06,0xFC,0x00,
									0x01,0x01,0x02,0x04,0x0A,0x11,0x20,0xDF,    // 含   112
									0x00,0x00,0x1F,0x10,0x10,0x10,0x1F,0x10,
									0x00,0x00,0x80,0x40,0x20,0x90,0x8E,0xE4,
									0x40,0x90,0xF8,0x10,0x10,0x10,0xF0,0x10,	
									0x02,0x01,0x7F,0x01,0x42,0x27,0x11,0x22,    // 率   113
									0x4F,0x01,0x01,0xFF,0x01,0x01,0x01,0x01,
									0x00,0x08,0xFC,0x00,0x44,0x88,0x10,0x48,
									0xE4,0x20,0x04,0xFE,0x00,0x00,0x00,0x00,
									0x10,0x10,0x10,0x10,0xFD,0x12,0x35,0x30,    // 检  114
									0x58,0x56,0x91,0x11,0x11,0x10,0x1F,0x10,
									0x40,0x40,0xA0,0xA0,0x10,0x0E,0xF4,0x00,
									0x40,0x48,0x4C,0x48,0x50,0x04,0xFE,0x00,									
									0x02,0x01,0x7F,0x40,0x84,0x09,0x12,0x04,    // 容   115
									0x08,0x10,0x2F,0xC8,0x08,0x08,0x0F,0x08,
									0x00,0x00,0xFE,0x02,0x44,0x30,0x90,0x40,
									0x20,0x10,0xEE,0x24,0x20,0x20,0xE0,0x20,
									0x10,0x10,0x12,0x12,0x5B,0x54,0x54,0x98,    // 性   116
									0x10,0x13,0x10,0x10,0x10,0x10,0x1F,0x10,
									0x40,0x40,0x40,0x48,0xFC,0x40,0x40,0x40,
									0x50,0xF8,0x40,0x40,0x40,0x44,0xFE,0x00,
									0x10,0x08,0x7F,0x41,0x92,0x1E,0x22,0x54,    // 额	 117
									0x08,0x14,0x22,0x7F,0xA2,0x22,0x3E,0x20,
									0x04,0xFE,0x10,0x24,0x7E,0x44,0x54,0x54,
									0x54,0x54,0x54,0x54,0x10,0x28,0x46,0x82,
									0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,    // 上	 118
									0x01,0x01,0x01,0x01,0x01,0x01,0xFF,0x00,
									0x00,0x00,0x00,0x00,0x10,0xF8,0x00,0x00,
									0x00,0x00,0x00,0x00,0x00,0x04,0xFE,0x00,
									0x00,0xFF,0x02,0x02,0x02,0x02,0x02,0x02,    // 下	 119
									0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
									0x04,0xFE,0x00,0x00,0x00,0x80,0x40,0x30,
									0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
									0x00,0x7D,0x45,0x49,0x49,0x51,0x49,0x49,    // 限   120
									0x45,0x45,0x45,0x69,0x51,0x41,0x41,0x41,
									0x08,0xFC,0x08,0x08,0xF8,0x08,0x08,0xF8,
									0x04,0x88,0x50,0x20,0x10,0x4E,0x84,0x00,
									0x02,0x01,0x7F,0x04,0x14,0x14,0x24,0x44,    // 变    121
									0x1F,0x08,0x04,0x02,0x01,0x02,0x0C,0x30,
									0x00,0x08,0xFC,0x40,0x50,0x48,0x4C,0x44,
									0xF0,0x20,0x40,0x80,0x00,0xC0,0x3C,0x08,
									0x00,0x20,0x20,0x20,0x20,0x24,0x3E,0x20,    // 比   122
									0x20,0x20,0x20,0x20,0x26,0x38,0x60,0x00,
									0x80,0x80,0x80,0x80,0x88,0x98,0xA0,0xC0,
									0x80,0x80,0x80,0x82,0x82,0x82,0x7E,0x00,
									0x00,0x20,0x22,0x22,0x22,0x22,0xFB,0x26,    // 地   123
									0x22,0x22,0x22,0x22,0x3A,0xE2,0x41,0x00,
									0x40,0x40,0x40,0x40,0x48,0x7C,0xC8,0x48,
									0x48,0x48,0x68,0x50,0x42,0x02,0xFE,0x00,
									0x10,0x10,0x10,0x15,0xFF,0x11,0x11,0x11,    // 址  124
									0x11,0x11,0x11,0x13,0x1D,0xF1,0x47,0x00,
									0x20,0x20,0x20,0x20,0x24,0x3E,0x20,0x20,
									0x20,0x20,0x20,0x20,0x20,0x24,0xFE,0x00,
									0x03,0x40,0x30,0x10,0x03,0x02,0xF2,0x13,    // 通  125
									0x12,0x12,0x13,0x12,0x12,0x2A,0x44,0x03,
									0xF8,0x10,0xA0,0x48,0xFC,0x48,0x48,0xF8,
									0x48,0x48,0xF8,0x48,0x68,0x50,0x06,0xFC,
									0x00,0x47,0x30,0x11,0x01,0x01,0xF1,0x11,    // 讯  126
									0x17,0x11,0x11,0x11,0x15,0x19,0x11,0x01,
									0x10,0xF8,0x10,0x10,0x10,0x10,0x10,0x50,
									0xF0,0x10,0x10,0x10,0x0A,0x0A,0x06,0x00,
									0x10,0x10,0x50,0x53,0x7C,0x90,0x17,0x18,    // 特 127
									0x30,0xD7,0x11,0x10,0x10,0x10,0x10,0x10,
									0x40,0x40,0x48,0xFC,0x40,0x44,0xFE,0x10,
									0x14,0xFE,0x10,0x90,0x90,0x10,0x50,0x20,
									0x10,0x10,0x10,0x13,0xFC,0x10,0x31,0x3A,    // 校 128
									0x54,0x50,0x90,0x10,0x10,0x10,0x13,0x1C,
									0x40,0x20,0x04,0xFE,0x00,0x88,0x06,0x8A,
									0x88,0x50,0x50,0x20,0x50,0x88,0x0E,0x04,
									0x08,0xFC,0x08,0x48,0x49,0x4A,0x4D,0x48,    // 验  129
									0x7C,0x06,0x05,0x1D,0xE5,0x44,0x17,0x08,
									0x40,0x40,0xA0,0xA0,0x10,0x0E,0xF4,0x00,
									0x48,0x48,0x48,0x50,0x10,0x24,0xFE,0x00,
									0x08,0x08,0x08,0x10,0x17,0x30,0x52,0x92,    // 位   130
									0x11,0x11,0x10,0x10,0x10,0x1F,0x10,0x10,
									0x80,0x40,0x40,0x08,0xFC,0x00,0x08,0x08,
									0x10,0x10,0x90,0xA0,0x24,0xFE,0x00,0x00,

};

/*设置总线函数
描述用于设置I2C 控制寄存器包括总线时钟速率及从地址.不接受广播地址*/
void SetBus()
{
S1ADR=0x88; /*设置从地址,屏蔽高7 位即广播地址响应位复位*/
S1CON=0XC5; /*启动硬件I2C*/
}

/*************************
接收到对本器件的寻址信号时
产生,中断入口地址为2BH
*************************/
void sla_int()  interrupt 5 using 1
{
/*static uchar POINT=0; //定义存储器及地址指针
unsigned char i;
i=S1STA;
if(i==0x60) //接收数据通过判断状态字识别操作
{
	if(RcvByte668(&POINT)==0)return; //取一字节存储器地址值
	if(POINT>48)POINT=0;
	while(1)
    {
		if(RcvByte668(&R2buf[POINT])==0)return;
		POINT++; //地址指针自增
		if(POINT>48)POINT=0;
	}
}
else if(i==0xa8) //发送数据
{
 while(1)
	{
     if(SendByte668(T2buf[POINT])==0)return;
	 POINT++;
	if(POINT>48)POINT=0;
	}
}  */
static unsigned char  Rzen;  //ren,
static I2cad=0;
//unsigned char i;
 switch (S1STA)
  {
   //static unsigned char i;
   case 0x60:S1CON=0x44;I2cad=0;break;
   case 0x80:if (I2cad==0)
   				{
			  	  Rzen=S1DAT;S1CON=0x44;I2cad=1;
				}
			  else
			    {
				  R2buf[Rzen]=S1DAT;S1CON=0x44;Rzen++;
				  if (Rzen>48) Rzen=0;
				 }
			  break;
 
   case 0xA8: S1DAT=T2buf[Rzen];S1CON=0x44;Rzen++;
				  if (Rzen>48) Rzen=0;
			  break;
   case 0xB8:S1DAT=T2buf[Rzen];S1CON=0x44;Rzen++;
				  if (Rzen>48) Rzen=0;break;
   default:	S1CON=0x44;break;
  }  
}
/*********************************************************************
起动总线函数
函数原型: void Start_I2c();
功能:启动I2C 总线,即发送I2C 起始条件
********************************************************************/
void Start_I2c()
{
   SDA2=1; /*发送起始条件的数据信号*/
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   SCL2=1;
   _Nop();
   _Nop();
   _Nop();
   _Nop(); /*起始条件建立时间大于4.7us,延时*/
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   SDA2=0; /*发送起始信号*/
   _Nop(); /* 起始条件锁定时间大于4 s*/
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   SCL2=0; /*钳住I2C 总线准备发送或接收数据*/
   _Nop();
   _Nop();
   _Nop();
}
/***********************************************
结束总线函数
函数原型: void Stop_I2c();
功能:结束I2C 总线,即发送I2C 结束条件
***********************************************/
void Stop_I2c()
{
   SDA2=0; /*发送结束条件的数据信号*/
   _Nop(); /*发送结束条件的时钟信号*/
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   SCL2=1; /*结束条件建立时间大于4 s*/
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   SDA2=1; /*发送I2C 总线结束信号*/
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   _Nop();
   _Nop();
}
/*******************************************************************
字节数据传送函数
函数原型: void SendByte(uchar c);
功能:将数据c 发送出去,可以是地址,也可以是数据,发完后等待应答,并对此状
态位进行操作(不应答或非应答都使ack=0 假) 发送数据正常ack=1;
ack=0 表示被控器无应答或损坏
********************************************************************/
void SendByte(uchar c)
{
   uchar BitCnt;
   for(BitCnt=0;BitCnt<8;BitCnt++) /*要传送的数据长度为8 位*/
   {
      if((c<<BitCnt)&0x80)SDA2=1; /*判断发送位*/
      else SDA2=0;
	  _Nop();
	  _Nop();
	  _Nop();
	  _Nop();
	  _Nop();
      _Nop();
      SCL2=1; /*置时钟线为高通知被控器开始接收数据位*/
      _Nop();
      _Nop();
	  _Nop();
  	  _Nop();
	  _Nop();/*保证时钟高电平周期大于4 s*/

⌨️ 快捷键说明

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