四极管:IIC驱动之 AVR ZLG7290

 

后面的已经上传的显示和位定义就不再上传了··

 

ZLG7290驱动。。

四极管:ZLG7290驱动(IIC_ZLG_7290.c)

#ifndef   ZLG7290_C
#define   ZLG7290_C

/***********************************
 函数功能:ZLG7290驱动
 函数说明:模拟i2c写法        
 使用环境:    硬件: MCU: ATmega32L 
                      F_CPU = 16000000
                      外部:16000000 
 接线方法:见定义			  
 编译环境:WinAVR-20080610	 
 日期:2009年8月4日
 修改者: 			   	(日期:  )
 ***************************************/
#define   SDA_1 {DDRB&=~(1<<0);PORTB|=(1<<0);}	 
#define   SDA_0 {DDRB|=(1<<0);PORTB&=~(1<<0);}
#define   SCL_1 {DDRB&=~(1<<1);PORTB|=(1<<1);}	
#define   SCL_0 {DDRB|=(1<<1);PORTB&=~(1<<1);}

#define   DA_IN PINB&(1<<0)  
#define   uchar	unsigned char
#define   uint	unsigned int

#define   Write_Addr  0x70 	  
#define   Read_Addr   0x71   
uchar data[]="0123456789";
volatile uchar Key_Value = 0 ;
/*********************************************************
函数名称:delay_I2c
输入参数:n
输出参数:NULL
函数功能:短延时  
************************************************************/
void delay_I2c(uint n)
{
    uint i;
    for(i=0;i<n;i++)
	{
	    asm("nop"); 
		asm("nop"); 
		asm("nop"); 
		asm("nop"); 
		asm("nop"); 
		asm("nop"); 
		asm("nop"); 
		asm("nop"); 
		asm("nop"); 
		asm("nop"); 
		asm("nop");
	}  
}
/**********************************************************
函数名称:Start_I2c
输入参数:NULL
输出参数:NULL
函数功能:启动I2C总线
************************************************************/
void Start_I2c(void)
{
	 SDA_1;
     SCL_1;     
     delay_I2c(10);    
     SDA_0;         
     delay_I2c(10);    
     SCL_0;
	 delay_I2c(10);		
}
/************************************************************
函数名称:Stop_I2c
输入参数:NULL
输出参数:NULL
函数功能:结束I2C总线
**************************************************************/
void Stop_I2c(void)
{         
	 SCL_1;
     SDA_0;  
     delay_I2c(10);      
     SDA_1;         
     delay_I2c(10);
	 SCL_0;
	 delay_I2c(10);
}
/****************************************************************
函数名称:SendByte
输入参数:Dat
输出参数:NULL
函数功能:8bit数据传送
******************************************************************/
void  SendByte(uchar Dat )
{
      uchar i;
	  SCL_0;
      for(i=0;i<8;i++)           
      {
         if(Dat&0x80){SDA_1;}   
         else        {SDA_0;}               
         delay_I2c(5);
         SCL_1;                      
         delay_I2c(10);        	
         SCL_0; 
		 Dat<<=1;
	     delay_I2c(5);
      } 
      SDA_1;                 
      delay_I2c(10);   
      SCL_1;					
      delay_I2c(5); 
	  while(DA_IN);     			//等待应答
	  SCL_0; 
	  delay_I2c(10);
}
/***************************************************************
函数名称:ReciveByte
输入参数:NULL
输出参数:Dat
函数功能:接受8bit数据
****************************************************************/
uchar  ReciveByte(void)
{
      uchar Dat;
      uchar i; 
      Dat = 0; 
	  SDA_1;                      //置数据线为输入方式
	  delay_I2c(5);
      for(i=0;i<8;i++)
      {  
         Dat<<=1;      
		 SCL_1; 
		 delay_I2c(20); 
         if(DA_IN) Dat|= 0X01;    
		 SCL_0;   
         delay_I2c(30); 
      }
      SCL_0;
	  delay_I2c(10);
      return(Dat);
}
/*****************************************************************
函数名称:Ack_I2c
输入参数:NULL
输出参数:NULL
函数功能:主控器进行应答信号,(可以是应答或非应答信号)
          a = 1,非应答;a = 0,应答
*******************************************************************/
void Ack_I2c(unsigned char a)	         //a = 1为非应答
{
        if(a==0){SDA_0; }    //在此发出应答或非应答信号 
        else    {SDA_1; }
        delay_I2c(10);      
        SCL_1;            
        delay_I2c(10); 	    //时钟低电平周期大于4μs
        SCL_0;            //清时钟线,钳住I2C总线以便继续接收
        delay_I2c(5);      
}
/******************************************************************
函数名称: ReadZLG7920
输入参数: NULL
输出参数: NULL
函数功能: 读取子地址的数据
读取方法: 启动总线->写从器件地址->写单元地址->	启动总线->读从器件地址
           ->读命令(ReciveByte())->	发非应答信号->结束总线
*********************************************************************/
uchar ReadZLG7920(void)
{
      uchar Key ;
	  Start_I2c();	
	  SendByte(Write_Addr);      //写从器件地址 
	  SendByte(0x01);			 //写从器件寄存器
   
	  Start_I2c(); 
	  SendByte(Read_Addr);	     //读从器件地址
	
	  Key = ReciveByte();  
	  Ack_I2c(1) ;		         //发非应答信号
      Stop_I2c();
	  return Key;
      	  	  
}
/******************************************************************
函数名称: Key_Treat
输入参数: NULL
输出参数: NULL
函数功能: 按键值处理 ,把读出来的按键值转换成成 1--16 十进制
*********************************************************************/
void  Key_change(void)
{
	 uchar Key_V;
	 Key_V = ReadZLG7920();
	 switch(Key_V)
	 {
	 	case 1 :  Key_Value = 1;break;
		case 2 :  Key_Value = 2;break;
		case 3 :  Key_Value = 3;break;
		case 4 :  Key_Value = 4;break;
		case 9 :  Key_Value = 5;break;
		case 10:  Key_Value = 6;break;
		case 11:  Key_Value = 7;break;
		case 12:  Key_Value = 8;break;
		case 17:  Key_Value = 9;break;
		case 18:  Key_Value = 10;break;
		case 19:  Key_Value = 11;break;
		case 20:  Key_Value = 12;break;
		case 25:  Key_Value = 13;break;
		case 26:  Key_Value = 14;break;
		case 27:  Key_Value = 15;break;
		case 28:  Key_Value = 16;break;

	   default :break;
	 }
}
/***************************************************************
函数名称:Dispaly_Key
输入参数:NULL
输出参数:NULL
函数功能:用1602显示按键值
****************************************************************/
void Display_Key(void)
{
      Key_change() ;
	  //Displaypstr(0,1,"Key = ");
	  distwochar_12864(7,1,data[Key_Value/10],data[Key_Value%10]);
}	


  #endif

中断

四极管 :中断配置及实现(int0.c)

#ifndef  INT0_C
#define  INT0_C
/***********************************
 函数功能:外中断0驱动
 函数说明:低电平触发中断
          
 使用环境:    硬件: MCU: ATmega32L 
                      F_CPU = 16000000
                      外部:16000000 hucdishcushucus
 接线方法:3跟数据线:外部中断源接PD2		  
 编译环境:WinAVR-20080610	
 	  
 日期:2009年8月4日
 作者:杨琦
 修改者: 			   	(日期:  )				   
***********************************/	
volatile uint8_t flag_1 = 0;   //定义中断标志位


/****************************************
** 函数名:int_init(void)
** 功能  :外中断初始化
** 变量  :无
** 返回值:无
****************************************/
void int_init(void)
{
    // MCUCR |= 0X00;//控制寄存器低两位(00):INT0的低电平产生一个中断请求
	   MCUCR |= 0X02;//控制寄存器低两位(00):INT0的下降沿产生一个中断请求
	
	//MCUCSR|= 0x00;//控制和状态寄存器第六位(ISC2)控制INT2~~~~~~~~~??
	GICR  |= 0X40;//通用中断控制寄存器的高三位为INT0、INT1和INT2的中断允许控制位
}

/****************************************
** 函数名:SIGNAL(SIG_INTERRUPT0)
** 功能  :外中断0服务程序
** 变量  :SIG_INTERRUPT0 
** 返回值:无
****************************************/
SIGNAL(SIG_INTERRUPT0)
{
    
    flag_1 = 1;         
    //外中断0
}
/****************************************
** 函数名:init_devices(void)
** 功能  :中断驱动
** 变量  :无
** 返回值:无
****************************************/
void init_devices(void)
{

   DDRD=0x00;  //设置为输出
   int_init();
   sei();  //开全局中断
}

#endif

主函数

四极管:主函数(Main.c)

#ifndef  MAIN_C
#define  MAIN_C

#include <avr/io.h>
#include <avr/interrupt.h>
#include <int0.c>
#include <RT12864M.c>
#include <IIC_ZLG_7290.c>


int main(void)
{
    
	init_devices();
	Init_12864();
	while(1)
	{
	
	  if(flag_1 == 1)    flag = 1表明已进入中断
	  {
	      
	      	
	      Dispaly_Key();  //中断后显示按键值
	      flag_1 = 0;   
	  }
	
	}
	

}

#endif

显示函数

四极管:显示液晶(RT12864M.c)

/***********************************
 函数功能:RT12864_LCD 液晶汉字和字符
 函数说明:四线方式,数据输出线:RS_12864  RW_12864  E_12864    PSB_12864 
          
 使用环境:    硬件: MCU: ATmega32L 
                      F_CPU = 16000000
                      外部:16000000 
 接线方法:4跟功能线(数据线公用):RS-OA7  RW-OA6  E-OA5 PSB-OA4
        			  
 编译环境:WinAVR-20080610	
 显示说明:  显示两个字符即一个汉字 :
                      distwochar_12864(uchar x,uchar y,uchar char1,uchar char2)
					   (x为横坐标   y为坐标  char1 char2为所要显示的东西) 
                       坐标定位说明:X:0-15
                                     Y:0-3
		     显示汉字字组:
			          dispstr_12864(uchar x,uchar  y,uchar *pstr)
					   (x为横坐标   y为坐标  *pstr为所要显示的东西)
					    坐标定位说明:X:0-7
                                      Y:0-3
			 画图形: drawpic_12864(uchar *pdraw)	
              			 ( *pdraw为所要显示的图形码)
                     所用取模软件:  字模精灵(Version1.0)
                     源图形宽度 * 高度:128 * 64
                     调整后宽度 * 高度:128 * 64
                     字模格式:横向取模,冗余模式,字节正序,正色取模,	  
	
 包含文件 :MyBit.h 
            BIN.h				  
 日期:2009年7月13日
 修改:杨琦
 修改者: 			   	(日期:  )	
*******头文件部分********/
#include <avr/io.h>
#include <util/delay.h>   

#include<MyBit.h>
#include <BIN.h>

#define uchar  unsigned char 
#define uint   unsigned int
 
#define RS_12864   OA7//RS
#define RW_12864   OA6//RW 
#define E_12864    OA5//E
#define PSB_12864  OA4

#define RS_12864_io   RA7
#define RW_12864_io   RA6
#define E_12864_io    RA5
#define PSB_12864_io  RA4

#define RW_12864_r    IA6

#define RS_12864_1()   {RS_12864_io=1;_delay_us(1);RS_12864=1;}
#define RS_12864_0()   {RS_12864_io=1;_delay_us(1);RS_12864=0;}
#define RW_12864_1()   {RW_12864_io=1;_delay_us(1);RW_12864=1;}
#define RW_12864_0()   {RW_12864_io=1;_delay_us(1);RW_12864=0;}
#define E_12864_1()    {E_12864_io=1;_delay_us(1);E_12864=1;}
#define E_12864_0()    {E_12864_io=1;_delay_us(1);E_12864=0;}
#define PSB_12864_1()  {PSB_12864_io=1;_delay_us(1);PSB_12864=1;}
#define PSB_12864_0()  {PSB_12864_io=1;_delay_us(1);PSB_12864=0;}



//串行写法第一字节
#define CM_rdata	0xfe    //11111110
#define CM_rcomm	0xfc    //11111100
#define CM_wdata	0xfa    //11111010
#define CM_wcomm	0xf8    //11111000

uint CGRAM[64][8];
//*************函数部分***************/
/* 名字:sentbyte_12864()            */         
/* 功能:把一字节送到RT12864M        */
/* 局部变量:sentbyte                */
/* 全局变量:无                      */
/* 返回值:  无                      */
//************************************/
void sentbyte_12864(uchar sentbyte)
{
    uint i;
    E_12864_0(); 
    for(i=0;i<8;i++)
        {
		  if(sentbyte&0x80){RW_12864_1();}
		  else {RW_12864_0();}
		  _delay_us(1);
		  E_12864_1();
		  sentbyte<<=1;
		  E_12864_0();
		  _delay_us(1);
        }
}
//*************函数部分***************/
/* 名字:readbyte_12864()            */
/* 功能:读RT12864M                  */
/* 局部变量:readtype                */
/* 全局变量:无                      */
/* 返回值:  temp                    */
//************************************/
uchar readbyte_12864(uchar readtype)
{
    uchar tmp1=0,tmp2=0,temp=0;
	uint i;
	sentbyte_12864(readtype);
	E_12864_0();
	for(i=0;i<8;i++)
	   {
	     _delay_us(1);
		 E_12864_1();
		 if(RW_12864_r)tmp1|=0x01;
		 tmp1<<=1;
		 E_12864_0();
	   }
	for(i=0;i<8;i++)
	   {
	     _delay_us(1);
		 E_12864_1();
		 if(RW_12864_r)tmp2|=0x01;
		 tmp2<<=1;
		 E_12864_0();
	   }
	temp=(tmp1&0xf0)|((tmp2&0xf0)>>4);
	return (temp);
}
//*************函数部分***************/
/* 名字:busywait_12864()            */
/* 功能:检测RT12864M是否忙          */
/* 局部变量:无                      */
/* 全局变量:无                      */
/* 返回值:  无                      */
//************************************/
void busywait_12864(void)
{
    uchar bf;
loop:
    bf=readbyte_12864(CM_rcomm);
    if(bf&0x80)goto loop;
}
//*************函数部分***************/
/* 名字:writecomm_12864()           */
/* 功能:写命令进RT12864M            */
/* 局部变量:command                 */
/* 全局变量:无                      */
/* 返回值:  无                      */
//************************************/ 
void writecomm_12864(uchar command)
{
    busywait_12864();
    RS_12864_1();
    sentbyte_12864(CM_wcomm);  
    sentbyte_12864(command&0xf0); 
    sentbyte_12864((command<<4)&0xf0); 
}
//*************函数部分***************/
/* 名字:writedata_12864()           */
/* 功能:写数据写进RT12864M          */
/* 局部变量:wrdata                  */
/* 全局变量:无                      */
/* 返回值:  无                      */
//************************************/ 
void writedata_12864(uchar wrdata)
{
    busywait_12864();
    RS_12864_1();
    sentbyte_12864(CM_wdata);  
    sentbyte_12864(wrdata&0xf0); 
    sentbyte_12864((wrdata<<4)&0xf0); 
}
//*************函数部分***************/
/* 名字:Init_12864()                */
/* 功能:初始化RT12864M              */
/* 局部变量:无                      */
/* 全局变量:无                      */
/* 返回值:  无                      */
//************************************/
void Init_12864(void)
{
    PSB_12864_0();  //选择串口通信
	E_12864_0(); 
    writecomm_12864(0x30);//功能设置 8位数据,基本指令
    _delay_ms(10);
	writecomm_12864(0x0c);//显示状态 ON,游标OFF,反白OFF
    _delay_ms(10);
    writecomm_12864(0x01);//清除显示
    _delay_ms(10);
    writecomm_12864(0x02);//地址归位
}
//*************函数部分***************/
/* 名字:locatexy_12864()            */
/* 功能:定位显示地址                */
/* 局部变量:x,y                     */
/* 全局变量:无                      */
/* 返回值:  无                      */
//************************************/
void locatexy_12864(uchar x,uchar y)
{
    uchar addr=0;
    switch(y)
        {
	       case 0:addr=0x80+x;break;
		   case 1:addr=0x90+x;break;
		   case 2:addr=0x88+x;break;
		   case 3:addr=0x98+x;break;
		   default:break;
	    }	
	writecomm_12864(addr);
}
//*************函数部分***************/
/* 名字:distwochar_12864()          */
/* 功能:显示两个字符即一个汉字      */
/* 局部变量:x,y,char1,char2        */
/* 全局变量:无                      */
/* 返回值:  无                      */
//************************************/
void distwochar_12864(uchar x,uchar y,uchar char1,uchar char2)
{
    locatexy_12864(x,y); 
    writedata_12864(char1);
	writedata_12864(char2);
}
//*************函数部分***************/
/* 名字:dispstr_12864()             */
/* 功能:显示汉字字组                */
/* 局部变量:x,y,*pstr              */
/* 全局变量:无                      */
/* 返回值:  无                      */
//************************************/
void dispstr_12864(uchar x,uchar  y,uchar *pstr)
{
    uint i,t=0;
    while(pstr[t]!='\0')t++;
    for(i=0;i<t;i++)
        {
		  distwochar_12864(x,y,pstr[i],pstr[i+1]);
		  i+=1;
		  x+=1;
		  if(x==8)
		    {
			  x=0;
			  y++;
			  if(y==4)y=0;
			}  
		} 
}

/*=========================================*/
/* 函数:drawpic(uchar *pdraw);            */
/* 功能描述:画图形                        */
/* 参数接口:pdraw,是存放图形数据的表     */
/*=========================================*/
void drawpic_12864(uchar *pdraw)
{   
    uint x,y;
	long uint k=0;
    uchar yaddr=0x80;
    writecomm_12864(0x30);//功能设置---8BIT控制界面,绘图显示OFF
    writecomm_12864(0x34);//功能设置---8BIT控制界面,扩充指令集
    for(y=0;y<32;y++)
	    {
	        writecomm_12864(yaddr++);//设置绘图区的Y地址坐标
	        writecomm_12864(0x80);  //设置绘图区的X地址坐标
	        for(x=0;x<8;x++)
		        {
		          writedata_12864(pdraw[k++]);
		          writedata_12864(pdraw[k++]);
		        }
	    }
    yaddr=0x80;
    for(y=0;y<32;y++)
	    {	
	        writecomm_12864(yaddr++);//设置绘图区的Y地址坐标
	        writecomm_12864(0x88);   //设置绘图区的X地址坐标
	        for(x=0;x<8;x++)
		        {
		            writedata_12864(pdraw[k++]);
		            writedata_12864(pdraw[k++]);
		        }
	    }
    writecomm_12864(0x32);//功能设置---8BIT控制界面,绘图显示ON
    writecomm_12864(0x36);//功能设置---8BIT控制界面,绘图显示OFF
	//返回基本设置
	_delay_ms(10);
	writecomm_12864(0x30);//功能设置 8位数据,基本指令
    _delay_ms(10);
	writecomm_12864(0x0c);//显示状态 ON,游标OFF,反白OFF
	writecomm_12864(0x02);//地址归位
}


位定义·

四极管:位定义文件(Bin.h)

#define B0000_0000 0x00
#define B0000_0001 0x01
#define B0000_0010 0x02
#define B0000_0011 0x03
#define B0000_0100 0x04
#define B0000_0101 0x05
#define B0000_0110 0x06
#define B0000_0111 0x07
#define B0000_1000 0x08
#define B0000_1001 0x09
#define B0000_1010 0x0A
#define B0000_1011 0x0B
#define B0000_1100 0x0C
#define B0000_1101 0x0D
#define B0000_1110 0x0E
#define B0000_1111 0x0F

#define B0001_0000 0x10
#define B0001_0001 0x11
#define B0001_0010 0x12
#define B0001_0011 0x13
#define B0001_0100 0x14
#define B0001_0101 0x15
#define B0001_0110 0x16
#define B0001_0111 0x17
#define B0001_1000 0x18
#define B0001_1001 0x19
#define B0001_1010 0x1A
#define B0001_1011 0x1B
#define B0001_1100 0x1C
#define B0001_1101 0x1D
#define B0001_1110 0x1E
#define B0001_1111 0x1F

#define B0010_0000 0x20
#define B0010_0001 0x21
#define B0010_0010 0x22
#define B0010_0011 0x23
#define B0010_0100 0x24
#define B0010_0101 0x25
#define B0010_0110 0x26
#define B0010_0111 0x27
#define B0010_1000 0x28
#define B0010_1001 0x29
#define B0010_1010 0x2A
#define B0010_1011 0x2B
#define B0010_1100 0x2C
#define B0010_1101 0x2D
#define B0010_1110 0x2E
#define B0010_1111 0x2F

#define B0011_0000 0x30
#define B0011_0001 0x31
#define B0011_0010 0x32
#define B0011_0011 0x33
#define B0011_0100 0x34
#define B0011_0101 0x35
#define B0011_0110 0x36
#define B0011_0111 0x37
#define B0011_1000 0x38
#define B0011_1001 0x39
#define B0011_1010 0x3A
#define B0011_1011 0x3B
#define B0011_1100 0x3C
#define B0011_1101 0x3D
#define B0011_1110 0x3E
#define B0011_1111 0x3F

#define B0100_0000 0x40
#define B0100_0001 0x41
#define B0100_0010 0x42
#define B0100_0011 0x43
#define B0100_0100 0x44
#define B0100_0101 0x45
#define B0100_0110 0x46
#define B0100_0111 0x47
#define B0100_1000 0x48
#define B0100_1001 0x49
#define B0100_1010 0x4A
#define B0100_1011 0x4B
#define B0100_1100 0x4C
#define B0100_1101 0x4D
#define B0100_1110 0x4E
#define B0100_1111 0x4F

#define B0101_0000 0x50
#define B0101_0001 0x51
#define B0101_0010 0x52
#define B0101_0011 0x53
#define B0101_0100 0x54
#define B0101_0101 0x55
#define B0101_0110 0x56
#define B0101_0111 0x57
#define B0101_1000 0x58
#define B0101_1001 0x59
#define B0101_1010 0x5A
#define B0101_1011 0x5B
#define B0101_1100 0x5C
#define B0101_1101 0x5D
#define B0101_1110 0x5E
#define B0101_1111 0x5F

#define B0110_0000 0x60
#define B0110_0001 0x61
#define B0110_0010 0x62
#define B0110_0011 0x63
#define B0110_0100 0x64
#define B0110_0101 0x65
#define B0110_0110 0x66
#define B0110_0111 0x67
#define B0110_1000 0x68
#define B0110_1001 0x69
#define B0110_1010 0x6A
#define B0110_1011 0x6B
#define B0110_1100 0x6C
#define B0110_1101 0x6D
#define B0110_1110 0x6E
#define B0110_1111 0x6F

#define B0111_0000 0x70
#define B0111_0001 0x71
#define B0111_0010 0x72
#define B0111_0011 0x73
#define B0111_0100 0x74
#define B0111_0101 0x75
#define B0111_0110 0x76
#define B0111_0111 0x77
#define B0111_1000 0x78
#define B0111_1001 0x79
#define B0111_1010 0x7A
#define B0111_1011 0x7B
#define B0111_1100 0x7C
#define B0111_1101 0x7D
#define B0111_1110 0x7E
#define B0111_1111 0x7F

#define B1000_0000 0x80
#define B1000_0001 0x81
#define B1000_0010 0x82
#define B1000_0011 0x83
#define B1000_0100 0x84
#define B1000_0101 0x85
#define B1000_0110 0x86
#define B1000_0111 0x87
#define B1000_1000 0x88
#define B1000_1001 0x89
#define B1000_1010 0x8A
#define B1000_1011 0x8B
#define B1000_1100 0x8C
#define B1000_1101 0x8D
#define B1000_1110 0x8E
#define B1000_1111 0x8F

#define B1001_0000 0x90
#define B1001_0001 0x91
#define B1001_0010 0x92
#define B1001_0011 0x93
#define B1001_0100 0x94
#define B1001_0101 0x95
#define B1001_0110 0x96
#define B1001_0111 0x97
#define B1001_1000 0x98
#define B1001_1001 0x99
#define B1001_1010 0x9A
#define B1001_1011 0x9B
#define B1001_1100 0x9C
#define B1001_1101 0x9D
#define B1001_1110 0x9E
#define B1001_1111 0x9F

#define B1010_0000 0xA0
#define B1010_0001 0xA1
#define B1010_0010 0xA2
#define B1010_0011 0xA3
#define B1010_0100 0xA4
#define B1010_0101 0xA5
#define B1010_0110 0xA6
#define B1010_0111 0xA7
#define B1010_1000 0xA8
#define B1010_1001 0xA9
#define B1010_1010 0xAA
#define B1010_1011 0xAB
#define B1010_1100 0xAC
#define B1010_1101 0xAD
#define B1010_1110 0xAE
#define B1010_1111 0xAF

#define B1011_0000 0xB0
#define B1011_0001 0xB1
#define B1011_0010 0xB2
#define B1011_0011 0xB3
#define B1011_0100 0xB4
#define B1011_0101 0xB5
#define B1011_0110 0xB6
#define B1011_0111 0xB7
#define B1011_1000 0xB8
#define B1011_1001 0xB9
#define B1011_1010 0xBA
#define B1011_1011 0xBB
#define B1011_1100 0xBC
#define B1011_1101 0xBD
#define B1011_1110 0xBE
#define B1011_1111 0xBF

#define B1100_0000 0xC0
#define B1100_0001 0xC1
#define B1100_0010 0xC2
#define B1100_0011 0xC3
#define B1100_0100 0xC4
#define B1100_0101 0xC5
#define B1100_0110 0xC6
#define B1100_0111 0xC7
#define B1100_1000 0xC8
#define B1100_1001 0xC9
#define B1100_1010 0xCA
#define B1100_1011 0xCB
#define B1100_1100 0xCC
#define B1100_1101 0xCD
#define B1100_1110 0xCE
#define B1100_1111 0xCF

#define B1101_0000 0xD0
#define B1101_0001 0xD1
#define B1101_0010 0xD2
#define B1101_0011 0xD3
#define B1101_0100 0xD4
#define B1101_0101 0xD5
#define B1101_0110 0xD6
#define B1101_0111 0xD7
#define B1101_1000 0xD8
#define B1101_1001 0xD9
#define B1101_1010 0xDA
#define B1101_1011 0xDB
#define B1101_1100 0xDC
#define B1101_1101 0xDD
#define B1101_1110 0xDE
#define B1101_1111 0xDF

#define B1110_0000 0xE0
#define B1110_0001 0xE1
#define B1110_0010 0xE2
#define B1110_0011 0xE3
#define B1110_0100 0xE4
#define B1110_0101 0xE5
#define B1110_0110 0xE6
#define B1110_0111 0xE7
#define B1110_1000 0xE8
#define B1110_1001 0xE9
#define B1110_1010 0xEA
#define B1110_1011 0xEB
#define B1110_1100 0xEC
#define B1110_1101 0xED
#define B1110_1110 0xEE
#define B1110_1111 0xEF

#define B1111_0000 0xF0
#define B1111_0001 0xF1
#define B1111_0010 0xF2
#define B1111_0011 0xF3
#define B1111_0100 0xF4
#define B1111_0101 0xF5
#define B1111_0110 0xF6
#define B1111_0111 0xF7
#define B1111_1000 0xF8
#define B1111_1001 0xF9
#define B1111_1010 0xFA
#define B1111_1011 0xFB
#define B1111_1100 0xFC
#define B1111_1101 0xFD
#define B1111_1110 0xFE
#define B1111_1111 0xFF


 

转载请注明出处。作者:四极管。广西师范大学 电子工程学院大学生科技创新基地 邮箱: yangxingbo-0311@163.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值