当前位置: 首页 > news >正文

读字库写FM24C04

/*PCB机板增加读写24C64函数PAST   2017 12 26 08:10 CODE 7382*/
/*按11键进入手动选择,按12键进入参数设定界面
按1存1 2存2 3存3 15存0 16存1236  17读EEPROM显示正确
                L1008  13775061792 ******/
              #include       <reg52.h>
              #include       <intrins.h>
              #include       <stdlib.h>
              #include       <stdio.h>
              #define        uchar unsigned char
              #define        uint unsigned int
              typedef        unsigned char BYTE;
              typedef        unsigned int WORD;
              sbit           cd=P7^7;           //    PIN    56
              sbit           ce=P4^5;           //    PIN    57
              sbit           rst=P4^6;           //    PIN    58
              sbit           wr=P7^6;           //    PIN    55
              sbit           rd=P7^5;           //    PIN    54
              sbit           fs=P6^0;           //    PIN    5
              sbit           OUT1=P2^7;           //    PIN    52    按键总线例
              sbit           OUT2=P7^4;           //    PIN    53
              sbit           OUT3=P5^2;           //    PIN    64
              sbit           OUT4=P5^3;           //    PIN    1
              sbit           IN1=P2^4;           //    PIN49    按键总线横
              sbit           IN2=P2^5;           //    PIN50
              sbit           IN3=P2^6;           //    PIN51
              sbit           IN4=P6^1;           //    PIN6
              sbit           IN5=P6^2;           //    PIN7
              sbit           IN6=P6^3;           //    PIN8
              sbit           IN7=P5^5;           //    PIN20
              sbit           STOP=P3^3;           //    停止
              sbit           INSERT=P3^2;       //    插入
              sbit           CP1=P2^2;           //    PIN47
              sbit           DIR1=P2^3;           //    PIN48
              sbit           EN1=P7^2;           //    PIN39
              sbit           CP2=P2^1;           //    PIN46
              sbit           DIR2=P7^1;           //    PIN38
              sbit           EN2=P7^0;           //    PIN37
              sbit           CP3=P3^5;           //    PIN34
              sbit           DIR3=P5^1;           //    PIN33
              sbit           EN3=P4^0;           //    PIN22
              sbit           INTPUT0=P2^0;       //    PIN45
              sbit           INTPUT1=P4^4;       //    PIN44
              sbit           INTPUT2=P4^3;       //    PIN43
              sbit           INTPUT3=P4^2;       //    PIN42
              sbit           INTPUT4=P4^1;       //    PIN41
              sbit           INTPUT5=P7^3;       //    PIN40
              sbit           INTPUT6=P3^7;       //    PIN36
              sbit           INTPUT7=P3^6;       //    PIN35
              sbit           SCL=P1^7;           //    PIN17 外部EEPROM       24C64PIN6
              sbit           SDA=P5^4;           //    PIN18 外部EEPROM       24C64PIN5
              #define        dataport P0  //P0为数据口
              uint           counter,val,vals;
              sbit           Rom_CS=P1^4;      /*1字库IC接口定义Rom_CS就是字库IC的CS#*/
              sbit           Rom_SCK=P1^6;     /*2字库IC接口定义:Rom_SCK就是字库IC的SCK*/
              sbit           Rom_OUT=P1^3;     /*字库IC接口定义:Rom_OUT就是字库IC的OUT*/
              sbit           Rom_IN=P1^5;      /*字库IC接口定义:Rom_IN就是字库IC的IN*/
              #define        ulong unsigned long
              uchar          fontbuff[32];       //字库中读出的数据存放缓冲数组单元
              uchar          newbuff[32];        //将字库中读出的数据进行转换
              bdata          char com_data;                           /********/
              sbit           mos_bit=com_data^7;                      /****高位****/
              sbit           low_bit=com_data^0;                      /****低位****/
              uchar          code Testbuff[32]={
              0X07,0X04,0X04,0X04,0X07,0X04,0X04,0X04,
              0XF0,0X10,0X10,0X10,0XF0,0X10,0X10,0X10,
              0X07,0X04,0X08,0X08,0X10,0X20,0X40,0X00,
              0XF0,0X10,0X10,0X10,0X10,0X10,0X50,0X20
              };
              uint     counter;
int      code fontadd[32]={0,8,1,9,2,10,3,11,           //竖置横排转横置横排点阵排列表
                           4,12,5,13,6,14,7,15,
                           16,24,17,25,18,26,19,27,
                           20,28,21,29,22,30,23,31};
int      code xsadd[15]={0,16,32,48,64,80,96,112,128,144,160,176,192,208,224};  //0-9首地址 每字64字节
uchar code tab0[240]={
0X00,0X3C,0X42,0X42,0X42,0X42,0X42,0X42,
0X42,0X42,0X42,0X42,0X42,0X42,0X3C,0X00,//0
0X00,0X30,0X50,0X10,0X10,0X10,0X10,0X10,
0X10,0X10,0X10,0X10,0X10,0X10,0X38,0X00,//1
0X00,0X3C,0X42,0X02,0X02,0X02,0X04,0X08,
0X10,0X20,0X20,0X40,0X40,0X42,0X7E,0X00,//2
0X00,0X3C,0X42,0X02,0X02,0X02,0X02,0X3C,
0X02,0X02,0X02,0X02,0X02,0X42,0X3C,0X00,//3
0X00,0X0C,0X14,0X24,0X24,0X44,0X44,0X84,
0X84,0XFE,0X04,0X04,0X04,0X04,0X04,0X00,//4
0X00,0X7E,0X40,0X40,0X40,0X40,0X7C,0X02,
0X02,0X02,0X02,0X02,0X42,0X42,0X3C,0X00,//5
0X00,0X3C,0X42,0X40,0X40,0X40,0X7C,0X42,
0X42,0X42,0X42,0X42,0X42,0X42,0X3C,0X00,//6
0X00,0X3E,0X42,0X04,0X04,0X08,0X08,0X10,
0X10,0X10,0X10,0X10,0X10,0X10,0X10,0X00,//7
0X00,0X3C,0X42,0X42,0X42,0X42,0X42,0X3C,
0X42,0X42,0X42,0X42,0X42,0X42,0X3C,0X00,//8
0X00,0X3C,0X42,0X42,0X42,0X42,0X42,0X3C,
0X02,0X02,0X02,0X02,0X02,0X42,0X3C,0X00,//9
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"清除",*/
0X00,0X00,0X42,0X42,0X24,0X24,0X18,0X18,
0X18,0X18,0X24,0X24,0X42,0X42,0X00,0X00,//X
0X00,0X00,0X41,0X41,0X22,0X14,0X08,0X08,
0X08,0X08,0X08,0X08,0X08,0X08,0X00,0X00,//Y
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X60,0X60,0X00,//.
0X00,0X3C,0X42,0X42,0X40,0X40,0X40,0X3C,
0X02,0X02,0X02,0X02,0X42,0X42,0X3C,0X00    //S 14
};
/*------------延时子程序---------------------*/
              void delay(unsigned int t)
              {  
              unsigned int i,j;
              for(i=0;i<t;i++)
              for(j=0;j<100;j++);
              }
/**************************************/
               void start()
               {
               SDA=1;_nop_();_nop_();_nop_();_nop_();
               SCL=1;_nop_();_nop_();_nop_();_nop_();
               SDA=0;_nop_();_nop_();_nop_();_nop_();
               SCL=0;_nop_();_nop_();_nop_();_nop_();
               }
/***************************************/
               void stop()
               {
               SDA=0;_nop_();_nop_();_nop_();_nop_();
               SCL=1;_nop_();_nop_();_nop_();_nop_();
               SDA=1;_nop_();_nop_();_nop_();_nop_();
               }
/***************************************/
               void ack()
               {
               SCL=1;_nop_();_nop_();_nop_();_nop_();
               SCL=0;_nop_();_nop_();_nop_();_nop_();
               }
/***************************************/
               void shift8(char a)
               {
               data uchar i;
               com_data=a;
                for(i=0;i<8;i++)
                {
                SDA=mos_bit;
                SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
                SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
                com_data=com_data*2;
                }
               }
/***************************************/
               void delay_iic(int v)
               {
               int i,j;
               for(i=1;i<v;i++)
               {
                for(j=0;j<50;j++)
                {
                 _nop_();
                }
                }
               }
/***************************************/
               uchar rd_24C64(char a)
               {
               data uint i,command;
               SDA=1;_nop_();_nop_();_nop_();_nop_();
               SCL=0;_nop_();_nop_();_nop_();_nop_();
               start();
               command=160;
               shift8(command);                            /*****写入160*****/
               ack();                                        
               shift8(0X0F);                               /*****写高八位地址 高三位无效*****/
               ack();
               shift8(a);                                   //
               ack();
               start();
               command=161;
               shift8(command);                            /*****写入161*****/
               ack();
               SDA=1;_nop_();_nop_();_nop_();_nop_();
               for(i=0;i<8;i++)
                {
                 com_data=com_data*2;
                 SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
                 low_bit=SDA;
                 SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
                }
               stop();
               return(com_data);
              }
/***************************************/
               void wr_24C64(char a,char b)      //a地址 b数据
               {
               data uint command;
               _nop_();_nop_();_nop_();_nop_();_nop_();
               SDA=1;_nop_();_nop_();_nop_();_nop_();
               SCL=0;_nop_();_nop_();_nop_();_nop_();
               start();
               command=160;
               shift8(command);                             /*****写入160*****/
               ack();                                        
               shift8(0X0F);                                /*****写高八位地址 高三位无效*****/
               ack();
               shift8(a);                                   /*****写入低八位地址 a *****/
               ack();
               shift8(b);                                   /*****写入 b *****/
               ack();
               stop();
               _nop_();_nop_();_nop_();_nop_();_nop_();
               }
/************延时函数****************/
              void delay_nms(unsigned int n)
              {
              unsigned int i,j;
              for(i=n;i>0;i--)
              {
               for(j=2000;j>0;j--)
               {
               }
              }
              }
/***状态检查函数*指令,数据读写状态检查**/
              void Lcd_Busy()
              {
              uchar dat;
               do
               {
               dataport=0xff;
               ce=0;
               cd=1;
               wr=1;
               rd=0;
               dat=dataport;
               rd=1;
               dat=0x03&dat;//STA0,STA1是否准备好
              }
              while(dat!=0x03);
              }
/*******数据自动写状态检查*****************/
              void autowcheck()
              {
              uchar dat;
               do
               {
               dataport=0xff;
               ce=0;
               cd=1;
               wr=1;
               rd=0;
               dat=dataport;
               rd=1;
               dat=0x08&dat;//STA3是否准备好
              }
              while(dat==0x00);
              }
/*------输入/出函数,与T6963通讯------------------------------------------------*/
// 向数据口发Data
              void wr_data(uchar dat)
              {  
              ce=0;
              cd=0;  
              dataport=dat;
              wr=0;
              wr=1;
              }
/*****写有1个参数命令***********/
              void wr_com1(uchar command)
              {
              Lcd_Busy();
              cd=1;
              ce=0;
              rd=1;
              dataport=command;
              wr=0;
              wr=1;
              }
/******写有 3 个参数命令*******************/
              void wr_com3(uchar data1, uchar data2, uchar command)
              {
              Lcd_Busy();
              wr_data(data1);
              Lcd_Busy();
              wr_data(data2);    
              wr_com1(command);
              }
/*--------------------------------*/
              void lcd_address(uchar urow,uchar ucol)    //urow 为1---30(240/8=30),,ucol为1---64
              {
              uint ipos;
              uchar urow1;
              uchar ucol1;
              urow1=urow-1;     //    1---30
              ucol1=ucol-1;     //    1---64
              ipos=ucol1*30+urow1;
              wr_com3(ipos&0xff,0x08+ipos/256,0x24);
              }
/************清屏*******************/
              void ClearScreen()
              {
              unsigned int i;
              wr_com3(0x00,0x00,0x24); //设置指针地址0000H
              wr_com1(0xb0); //设置自动写状态
               for(i=0;i<9600;i++)      //320X240/8=9600
               {
               autowcheck();
               wr_data(0x00);
               }
              wr_com1(0xb2); // 自动写结束
              }
/**********初始化LCD****************/
              void InitLCD()
              {
              cd=1;
              wr=1;
              rd=1;
              wr_com3(0x00,0x00,0x40); //设置文本显示区域首地址GraphAddr
              wr_com3(0x1e,0x00,0x41); //设置文本显示区域宽度:1eH  1 1110 16+8+4+2=30
              wr_com3(0x00,0x08,0x42); //设置图形显示区域首地址GraphAddr
              wr_com3(0x1e,0x00,0x43); //设置图形显示区域宽度:1eH
              wr_com1(0XA0);           //设置显示方式: CGROM方式 文本\图形 "或"
              wr_com1(0X80);           //设置显示方式: CGROM方式 文本\图形 "或"
              wr_com1(0X9C);           //显示开关设置,开文本和图形显示*/
              ClearScreen();
              }
/*显示字库处理汉字字符表汉字点阵代码*/
              void display_chines_16x16(uchar urow,uchar ucol,uchar *dp)
              {
              uchar i,j,K;
              K=0;
               for(j=0;j<16;j++)
               {
               lcd_address(urow,ucol+j);
               wr_com1(0xb0); //设置自动写状态
                for(i=0;i<2;i++)
                {    
                autowcheck();  /*写数据到LCD,每写完一个8位的数据后列地址自动加1*/
                wr_data(*(dp+fontadd[K]));
                K++;
                }
               wr_com1(0xb2); // 自动写结束
               }
              }
/********************************/
              void display_graphic_16x8(uchar urow,uchar ucol,int mm,uchar *dp)
              {
              uchar j;
               for(j=0;j<16;j++)
               {
               lcd_address(urow,ucol+j);
               wr_com1(0xb0); //设置自动写状态
               autowcheck();  /*写数据到LCD,每写完一个8位的数据后列地址自动加1*/
               wr_data(*(dp+mm));
               dp++;
               wr_com1(0xb2); // 自动写结束
               }
              }
/*反码显示字库处理汉字字符表汉字点阵代码*/
              void display_negate_16x16(uchar urow,uchar ucol,uchar *dp)
              {
              uchar i,j,K;
              K=0;
               for(j=0;j<16;j++)
               {
               lcd_address(urow,ucol+j);
               wr_com1(0xb0); //设置自动写状态
                for(i=0;i<2;i++)
                {    
                autowcheck();  /*写数据到LCD,每写完一个8位的数据后列地址自动加1*/
                wr_data(~*(dp+fontadd[K]));
                K++;
                }
               wr_com1(0xb2); // 自动写结束
               }
              }
/***********字库芯片程序*************************/
/***********送指令到字库IC***********************/
              void send_command_to_ROM( uchar datu )
              {
             uchar i;
              for(i=0;i<8;i++)
              {
              if(datu&0x80)
              Rom_IN=1;
              else
              Rom_IN=0;
              datu=datu<<1;
              Rom_SCK=0;
              Rom_SCK=1;
              }
              }
/*****(从字库IC中取汉字或字符数据(1个字节****/
              static uchar ROMDATA( )
              {
               uchar i;
               uchar ret_data=0;
               Rom_SCK=1;
               for(i=0;i<8;i++)
               {
               Rom_OUT=1;
               delay(1);
               Rom_SCK=0;
               ret_data=ret_data<<1;
               if( Rom_OUT )
               ret_data=ret_data+1;
               else
               ret_data=ret_data+0;
               Rom_SCK=1;
               }
              return(ret_data);
              }
/*从相关地址High地址高字节Mid地址中字节Low地址低字节中连续读出DataLen个字节的数据到 pBuff的地址*/
              void BytesDataFromROM(uchar ADHigh,ADMid, ADLow,DataLen,uchar *pBuff)
              {
              uchar i;
              Rom_CS = 0;
              Rom_SCK=0;
              send_command_to_ROM(0x03);
              send_command_to_ROM(ADHigh);
              send_command_to_ROM(ADMid);
              send_command_to_ROM(ADLow);
              for(i=0;i<DataLen;i++ )
              *(pBuff+i)=ROMDATA();
              Rom_CS=1;
              }
/******************************************************************/
              ulong  fontaddr=0;
              void displayGB2312(uchar MSB,uchar LSB)
              {
              uchar i= 0;
              uchar addrHigh,addrMid,addrLow ;
              if(((MSB>=0xb0) &&(MSB<=0xf7))&&(LSB>=0xa1))
              {                        
/*国标简体(GB2312)汉字在字库IC中的地址由以下公式来计算:*/
/*Address = ((MSB - 0xB0) * 94 + (LSB - 0xA1)+ 846)*32+ BaseAdd;BaseAdd=0*/
/*由于担心8位单片机有乘法溢出问题,所以分三部取地址*/
              fontaddr = (MSB-0xb0)*94;
              fontaddr += (LSB-0xa1)+846;
              fontaddr = (ulong)(fontaddr*32);
              addrHigh = (fontaddr&0xff0000)>>16;  /*地址的高8位,共24位*/
              addrMid = (fontaddr&0xff00)>>8;      /*地址的中8位,共24位*/
              addrLow = fontaddr&0xff;        /*地址的低8位,共24位*/
              BytesDataFromROM(addrHigh,addrMid,addrLow,32,fontbuff);/*取32个字节的数据,存到"fontbuf[32]"*/
              i+=2;
              }
              else if(((MSB>=0xa1) &&(MSB<=0xa3))&&(LSB>=0xa1))
              {                        
/*国标简体(GB2312)15x16点的字符在字库IC中的地址由以下公式来计算:*/
/*Address = ((MSB - 0xa1) * 94 + (LSB - 0xA1))*32+ BaseAdd;BaseAdd=0*/
/*由于担心8位单片机有乘法溢出问题,所以分三部取地址*/
              fontaddr = (MSB- 0xa1)*94;
              fontaddr += (LSB-0xa1);
              fontaddr = (ulong)(fontaddr*32);
              addrHigh = (fontaddr&0xff0000)>>16;  /*地址的高8位,共24位*/
              addrMid = (fontaddr&0xff00)>>8;      /*地址的中8位,共24位*/
              addrLow = fontaddr&0xff;        /*地址的低8位,共24位*/
              BytesDataFromROM(addrHigh,addrMid,addrLow,32,fontbuff);/*取32个字节的数据,存到"fontbuf[32]"*/
              i+=2;
              }
              else if((MSB>=0x20) &&(MSB<=0x7e))    
              {                        
              unsigned char fontbuff[16];            
              fontaddr = (MSB- 0x20);
              fontaddr = (unsigned long)(fontaddr*16);
              fontaddr = (unsigned long)(fontaddr+0x3cf80);            
              addrHigh = (fontaddr&0xff0000)>>16;
              addrMid = (fontaddr&0xff00)>>8;
              addrLow = fontaddr&0xff;
              BytesDataFromROM(addrHigh,addrMid,addrLow,16,fontbuff);/*取16个字节的数据,存到"fontbuf[32]"*/
              i+=1;
              }
              else
              i++;    
             }    
/*汉字旋转子程序 将字库读出竖置横排结构的32字节数据
旋转90度成横置横排结构,转换后点阵结构为
左上部 右上部
左下部 右下部
显示时先取左上部最顶端数据,再取右上部顶端数据,
再取左上部第二行数据,右上部第二行数据 ......*****/
              void  fontchange(void)
              {
               uchar          fontbuf;
               uint buff,i,step;
                for(step=0;step<8;step++)        //16X16 左上角部分 总循环8步
               {
               fontbuf=0;                   //初始化 字节运算缓存器等于0
               buff=0;                        //字节缓冲器初始化.
                for(i=0;i<8;i++)            //第一层循环,取竖置横排8字节第1个点。
                {
                 fontbuf<<=1;                //数据自右向左移动,共移动7位,合并一字节
                 buff=fontbuff[i]>>step;    //将当前转换的列地址fontbuff[i]右移step步.
                 buff&=0X01;                //保留最低位置,
                 fontbuf|=buff;                //字节缓存器等于新的运算字节和最低位相与
                }
                newbuff[step]=fontbuf;      //将当前运算的一字节新数据存当前运算地址.
               }
              for(step=0;step<8;step++)        //16X16 右上角部分总循环8步
               {
               fontbuf=0;                   //初始化 字节运算缓存器等于0
               buff=0;                        //字节缓冲器初始化.
                for(i=0;i<8;i++)            //第一层循环,取竖置横排8字节第1个点。
                {
                 fontbuf<<=1;                //数据自右向左移动,共移动7位,合并一字节
                 buff=fontbuff[i+8]>>step;    //将当前转换的列地址fontbuff[i]右移step步.
                 buff&=0X01;                //保留最低位置,
                 fontbuf|=buff;                //字节缓存器等于新的运算字节和最低位相与
                }
                newbuff[step+8]=fontbuf;   //将当前运算的一字节新数据存当前运算地址.
               }
               for(step=0;step<8;step++)    //16X16 左下角部分总循环8步
               {
               fontbuf=0;                   //初始化 字节运算缓存器等于0
               buff=0;                        //字节缓冲器初始化.
                for(i=0;i<8;i++)            //第一层循环,取竖置横排8字节第1个点。
                {
                 fontbuf<<=1;                //数据自右向左移动,共移动7位,合并一字节
                 buff=fontbuff[i+16]>>step;    //将当前转换的列地址fontbuff[i]右移step步.
                 buff&=0X01;                //保留最低位置,
                 fontbuf|=buff;                //字节缓存器等于新的运算字节和最低位相与
                }
                newbuff[step+16]=fontbuf;    //将当前运算的一字节新数据存当前运算地址.
               }
              for(step=0;step<8;step++)        //16X16 右下角部分总循环8步
               {
               fontbuf=0;                   //初始化 字节运算缓存器等于0
               buff=0;                        //字节缓冲器初始化.
                for(i=0;i<8;i++)            //第一层循环,取竖置横排8字节第1个点。
                {
                 fontbuf<<=1;                //数据自右向左移动,共移动7位,合并一字节
                 buff=fontbuff[i+24]>>step;    //将当前转换的列地址fontbuff[i]右移step步.
                 buff&=0X01;                //保留最低位置,
                 fontbuf|=buff;                //字节缓存器等于新的运算字节和最低位相与
                }
                newbuff[step+24]=fontbuf;   //将当前运算的一字节新数据存当前运算地址.
               }
              }
/************************************/
               void counteradd()
              {
               uchar  h1,l1,m1,n1;                /****个十百千代码缓冲**/
               h1=counter/1000;
               l1=(counter-h1*1000)/100;
               m1=(counter-h1*1000-l1*100)/10;
               n1=counter-h1*1000-l1*100-m1*10;
               display_graphic_16x8(11,49,xsadd[h1],tab0);//
               display_graphic_16x8(12,49,xsadd[l1],tab0);//
               display_graphic_16x8(13,49,xsadd[m1],tab0);//
               display_graphic_16x8(14,49,xsadd[n1],tab0);//    
              }
/************************************/
              void dis_val()
              {
               uchar  h,l,m,n;                /****个十百千代码缓冲**/
               //vals=1225;
               h=vals/1000;
               l=(vals-h*1000)/100;
               m=(vals-h*1000-l*100)/10;
               n=vals-h*1000-l*100-m*10;
               display_graphic_16x8(11,33,xsadd[h],tab0);//
               display_graphic_16x8(12,33,xsadd[l],tab0);//
               display_graphic_16x8(13,33,xsadd[m],tab0);//
               display_graphic_16x8(14,33,xsadd[n],tab0);//    
              }
/************************************/
              void write_val()
              {
               uchar  h,l,m,n;                /****个十百千代码缓冲**/
               h=val/1000;                      //千位
               l=(val-h*1000)/100;              //百位
               m=(val-h*1000-l*100)/10;          //十位
               n=val-h*1000-l*100-m*10;          //个位
               wr_24C64(1,n);         /*写入个位*/
               wr_24C64(2,m);         /*写入十位*/
               wr_24C64(3,l);         /*写入百位*/
               wr_24C64(4,h);         /*写入千位*/
              }
/************************************/
              void read_val()
              {
              uchar k_data,h_data,t_data,b_data; //
              b_data=rd_24C64(1);delay_iic(200); // 个位
              t_data=rd_24C64(2);delay_iic(200); // 十位
              h_data=rd_24C64(3);delay_iic(200); // 百位
              k_data=rd_24C64(4);delay_iic(200); // 千位
              vals=k_data*1000+h_data*100+t_data*10+b_data;    
              //vals=2206;
              }
/************************************/
              void main(void)
              {
              P0M0=0;
              P0M1=0;
              P1M0=0X80;    //1000 0000      P1.7开漏
              P1M1=0X80;    //1000 0000
              P2M0=0;
              P2M1=0;
              P3M0=0;
              P3M1=0;
              P4M0=0;
              P4M1=0;
              P5M0=0X10;    //0001 0000      P5.4开漏
              P5M1=0X10;    //0001 0000
              P6M0=0;
              P6M1=0;
              P7M0=0;
              P7M1=0;
              OUT1=1;
              OUT2=1;
              OUT3=1;
              OUT4=1;
              IN1=1;
              IN2=1;
              IN3=1;
              IN4=1;
              IN5=1;
              IN6=1;
              IN7=1;
              counter=0;
              rst=0;
              delay_nms(100);
              rst=1;
              delay_nms(100);
              fs=0;
              InitLCD();
              ClearScreen();
              wr_24C64(10,2);         /*写入个位*/
              wr_24C64(11,2);         /*写入个位*/
              wr_24C64(12,6);         /*写入十位*/
              wr_24C64(13,9);         /*写入百位*/
              displayGB2312(0XD7,0XD4);
              fontchange();
              display_chines_16x16(1,1,newbuff);
              displayGB2312(0XB6,0XAF);
              fontchange();
              display_chines_16x16(3,1,newbuff);
              displayGB2312(0XD6,0XB4);
              fontchange();
              display_chines_16x16(5,1,newbuff);
              displayGB2312(0XD0,0XD0);
              fontchange();
              display_chines_16x16(7,1,newbuff);    //自动执行
              displayGB2312(0XCA,0XD6);
              fontchange();
              display_chines_16x16(1,17,newbuff);
              displayGB2312(0XB6,0XAF);
              fontchange();
              display_chines_16x16(3,17,newbuff);
              displayGB2312(0XB2,0XD9);
              fontchange();
              display_chines_16x16(5,17,newbuff);
              displayGB2312(0XD7,0XF7);
              fontchange();
              display_chines_16x16(7,17,newbuff);     //手动操作
              displayGB2312(0XB3,0XCC);
              fontchange();
              display_chines_16x16(1,33,newbuff);
              displayGB2312(0XD0,0XF2);
              fontchange();
              display_chines_16x16(3,33,newbuff);
              displayGB2312(0XB9,0XDC);
              fontchange();
              display_chines_16x16(5,33,newbuff);
              displayGB2312(0XC0,0XED);
              fontchange();
              display_chines_16x16(7,33,newbuff);     //程序管理
              displayGB2312(0XB2,0XCE);
              fontchange();
              display_chines_16x16(1,49,newbuff);
              displayGB2312(0XCA,0XFD);
              fontchange();
              display_chines_16x16(3,49,newbuff);
              displayGB2312(0XC9,0XE8);
              fontchange();
              display_chines_16x16(5,49,newbuff);
              displayGB2312(0XD6,0XC3);
              fontchange();
              display_chines_16x16(7,49,newbuff);     //参数设置
              delay_nms(2000);
              displayGB2312(0XD7,0XD4);
              fontchange();
              display_negate_16x16(1,1,newbuff);
              displayGB2312(0XB6,0XAF);
              fontchange();
              display_negate_16x16(3,1,newbuff);
              displayGB2312(0XD6,0XB4);
              fontchange();
              display_negate_16x16(5,1,newbuff);    //反显自动执行
              displayGB2312(0XD0,0XD0);
              fontchange();
              display_negate_16x16(7,1,newbuff);
              display_graphic_16x8(9,1,xsadd[11],tab0);//     X
              display_graphic_16x8(11,1,xsadd[0],tab0);//     0
              display_graphic_16x8(12,1,xsadd[0],tab0);//     0
              display_graphic_16x8(13,1,xsadd[0],tab0);//     0
              display_graphic_16x8(14,1,xsadd[0],tab0);//     0
              display_graphic_16x8(15,1,xsadd[13],tab0);//.
              display_graphic_16x8(16,1,xsadd[0],tab0);//     0
              display_graphic_16x8(17,1,xsadd[0],tab0);//     0
              display_graphic_16x8(19,1,xsadd[12],tab0);// Y
              display_graphic_16x8(21,1,xsadd[0],tab0);//     0
              display_graphic_16x8(22,1,xsadd[0],tab0);//     0
              display_graphic_16x8(23,1,xsadd[0],tab0);//     0
              display_graphic_16x8(24,1,xsadd[0],tab0);//     0
              display_graphic_16x8(25,1,xsadd[13],tab0);//.
              display_graphic_16x8(26,1,xsadd[0],tab0);//     0
              display_graphic_16x8(27,1,xsadd[0],tab0);//     0
              while(1)
              {
              counteradd();
              delay_nms(50);
              counter++;
               if(!STOP)
               {
               display_graphic_16x8(28,1,xsadd[2],tab0);//  显示27
               display_graphic_16x8(29,1,xsadd[7],tab0);//
               CP1=1;
               DIR1=1;
               EN1=1;
               CP2=1;
               DIR2=1;
               EN2=1;
               CP3=1;
               DIR3=1;
               EN3=1;
               }
                if(!INSERT)
                {
                 display_graphic_16x8(28,1,xsadd[2],tab0);//  显示25
                 display_graphic_16x8(29,1,xsadd[5],tab0);//
                 CP1=0;
                 DIR1=0;
                 EN1=0;
                 CP2=0;
                 DIR2=0;
                 EN2=0;
                 CP3=0;
                 DIR3=0;
                 EN3=0;
                }
                OUT1=0;
                if(!IN1)
                {
                 val=0003;           /
                 write_val();
                 display_graphic_16x8(28,1,xsadd[10],tab0);// 显示3
                 display_graphic_16x8(29,1,xsadd[3],tab0);//
                 EN1=0;
                }
                if(!IN2)
                {
                val=0002;           /
                 write_val();
                 display_graphic_16x8(28,1,xsadd[10],tab0);//  显示2
                 display_graphic_16x8(29,1,xsadd[2],tab0);//
                 DIR1=0;
                }
                if(!IN3)
                {
                val=0001;           /
                 write_val();
                 display_graphic_16x8(28,1,xsadd[10],tab0);//  显示1
                 display_graphic_16x8(29,1,xsadd[1],tab0);//
                 CP1=0;
                }
                if(!IN4)
                {
                 display_graphic_16x8(28,1,xsadd[2],tab0);//  显示26
                 display_graphic_16x8(29,1,xsadd[6],tab0);//
                }
                if(!IN5)
                {
                 display_graphic_16x8(28,1,xsadd[1],tab0);//  显示19
                 display_graphic_16x8(29,1,xsadd[9],tab0);//
                }
                if(!IN6)
                {
                 val=0000;           /
                 write_val();
                 display_graphic_16x8(28,1,xsadd[1],tab0);//  显示15
                 display_graphic_16x8(29,1,xsadd[5],tab0);//
                }
                if(!IN7)
                {                                           //显示11
                displayGB2312(0XCA,0XD6);
                fontchange();
                display_chines_16x16(1,1,newbuff);     //手动     高速
                displayGB2312(0XB6,0XAF);
                fontchange();
                display_chines_16x16(3,1,newbuff);
                displayGB2312(0XB8,0XDF);
                fontchange();
                display_chines_16x16(5,1,newbuff);
                displayGB2312(0XCB,0XD9);
                fontchange();
                display_chines_16x16(7,1,newbuff);
                displayGB2312(0XB5,0XE3);             //点动操作
                fontchange();
                display_chines_16x16(1,17,newbuff);
                displayGB2312(0XB6,0XAF);
                fontchange();
                display_chines_16x16(3,17,newbuff);
                displayGB2312(0XB2,0XD9);
                fontchange();
                display_chines_16x16(5,17,newbuff);
                displayGB2312(0XD7,0XF7);
                fontchange();
                display_chines_16x16(7,17,newbuff);
                displayGB2312(0XBB,0XD8);            //回程序零
                fontchange();
                display_chines_16x16(1,33,newbuff);
                displayGB2312(0XB3,0XCC);
                fontchange();
                display_chines_16x16(3,33,newbuff);
                displayGB2312(0XD0,0XF2);
                fontchange();
                display_chines_16x16(5,33,newbuff);
                displayGB2312(0XC1,0XE3);
                fontchange();
                display_chines_16x16(7,33,newbuff);
                displayGB2312(0XBB,0XD8);            //回机械零
                fontchange();
                display_chines_16x16(1,49,newbuff);
                displayGB2312(0XBB,0XFA);
                fontchange();
                display_chines_16x16(3,49,newbuff);
                displayGB2312(0XD0,0XB5);
                fontchange();
                display_chines_16x16(5,49,newbuff);
                displayGB2312(0XC1,0XE3);
                fontchange();
                display_chines_16x16(7,49,newbuff);
                }
                OUT1=1;
                delay_nms(50);
                OUT2=0;
                if(!IN1)
                {
                 display_graphic_16x8(28,1,xsadd[10],tab0);// 显示6  
                 display_graphic_16x8(29,1,xsadd[6],tab0);//
                 EN2=0;
                }
                if(!IN2)
                {
                 display_graphic_16x8(28,1,xsadd[10],tab0);//  显示5
                 display_graphic_16x8(29,1,xsadd[5],tab0);//
                 DIR2=0;
                }
                if(!IN3)
                {
                 uchar k_data,h_data,t_data,b_data; //
                 b_data=rd_24C64(10);delay_iic(200); // 个位
                 t_data=rd_24C64(11);delay_iic(200); // 十位
                 h_data=rd_24C64(12);delay_iic(200); // 百位
                 k_data=rd_24C64(13);delay_iic(200); // 千位
                 vals=k_data*1000+h_data*100+t_data*10+b_data;    
                 dis_val();
                 display_graphic_16x8(28,1,xsadd[10],tab0);//  显示4
                 display_graphic_16x8(29,1,xsadd[4],tab0);//
                 CP2=0;
                }
                if(!IN4)
                {
                 display_graphic_16x8(28,1,xsadd[2],tab0);//   显示22
                 display_graphic_16x8(29,1,xsadd[2],tab0);//
                }
                if(!IN5)
                {
                 display_graphic_16x8(28,1,xsadd[1],tab0);//   显示18
                 display_graphic_16x8(29,1,xsadd[8],tab0);//
                }
                if(!IN6)
                {
                 display_graphic_16x8(28,1,xsadd[1],tab0);//   显示14
                 display_graphic_16x8(29,1,xsadd[4],tab0);//
                }
                if(!IN7)
                {
                 display_graphic_16x8(28,1,xsadd[1],tab0);//     显示10
                 display_graphic_16x8(29,1,xsadd[0],tab0);//
                }
                OUT2=1;
                delay_nms(50);
                OUT3=0;
                if(!IN1)
                {
                 display_graphic_16x8(28,1,xsadd[10],tab0);//  显示9
                 display_graphic_16x8(29,1,xsadd[9],tab0);//
                 EN3=0;
                }
                if(!IN2)
                {
                 display_graphic_16x8(28,1,xsadd[10],tab0);//     显示8
                 display_graphic_16x8(29,1,xsadd[8],tab0);//
                 DIR3=0;
                }
                if(!IN3)
                {
                 display_graphic_16x8(28,1,xsadd[10],tab0);//      显示7
                 display_graphic_16x8(29,1,xsadd[7],tab0);//
                 CP3=0;
                }
                if(!IN4)
                {
                 display_graphic_16x8(28,1,xsadd[2],tab0);//   显示21
                 display_graphic_16x8(29,1,xsadd[1],tab0);//
                }
                if(!IN5)
                {
                read_val();
                dis_val();
                display_graphic_16x8(28,1,xsadd[1],tab0);//  显示17
                display_graphic_16x8(29,1,xsadd[7],tab0);//
                }
                if(!IN6)
                {
                 display_graphic_16x8(28,1,xsadd[1],tab0);//  显示13
                 display_graphic_16x8(29,1,xsadd[3],tab0);//
                }
                OUT3=1;
                delay_nms(50);
                OUT4=0;
                if(!IN1)
                {
                 display_graphic_16x8(28,1,xsadd[2],tab0);// 显示24
                 display_graphic_16x8(29,1,xsadd[4],tab0);//
                }
                if(!IN2)
                {
                 display_graphic_16x8(28,1,xsadd[10],tab0);//  显示0
                 display_graphic_16x8(29,1,xsadd[0],tab0);//
                }
                if(!IN3)
                {
                 display_graphic_16x8(28,1,xsadd[2],tab0);//  显示23
                 display_graphic_16x8(29,1,xsadd[3],tab0);//
                }
                if(!IN4)
                {
                 display_graphic_16x8(28,1,xsadd[2],tab0);//  显示20
                 display_graphic_16x8(29,1,xsadd[0],tab0);//
                }
                if(!IN5)
                {
                 val=1236;
                 write_val();
                 display_graphic_16x8(28,1,xsadd[1],tab0);//  显示16
                 display_graphic_16x8(29,1,xsadd[6],tab0);//
                }
                if(!IN6)
                {
                InitLCD();
                ClearScreen();
                displayGB2312(0XB2,0XCE);          /*---参---*/
                fontchange();
                display_chines_16x16(1,1,newbuff);    
                displayGB2312(0XCA,0XFD);           /*---数---*/
                fontchange();
                display_chines_16x16(3,1,newbuff);
                displayGB2312(0XC9,0XE8);           /*---设---*/
                fontchange();
                display_chines_16x16(5,1,newbuff);
                displayGB2312(0XB6,0XA8);           /*---定---*/
                fontchange();
                display_chines_16x16(7,1,newbuff);
                dis_val();
                }
                OUT4=1;
                delay_nms(50);            //INTPUT0
                if(!INTPUT0)
                {
                display_graphic_16x8(11,33,xsadd[14],tab0);//.
                display_graphic_16x8(12,33,xsadd[0],tab0);//     显示S0
                }
                if(!INTPUT1)
                {
                display_graphic_16x8(11,33,xsadd[14],tab0);//.
                display_graphic_16x8(12,33,xsadd[1],tab0);//     显示S1
                }
                if(!INTPUT2)
                {
                display_graphic_16x8(11,33,xsadd[14],tab0);//.
                display_graphic_16x8(12,33,xsadd[2],tab0);//     显示S2
                }
                if(!INTPUT3)
                {
                display_graphic_16x8(11,33,xsadd[14],tab0);//.
                display_graphic_16x8(12,33,xsadd[3],tab0);//     显示S3
                }
                if(!INTPUT4)
                {
                display_graphic_16x8(11,33,xsadd[14],tab0);//.
                display_graphic_16x8(12,33,xsadd[4],tab0);//     显示S4
                }
                if(!INTPUT5)
                {
                display_graphic_16x8(11,33,xsadd[14],tab0);//.
                display_graphic_16x8(12,33,xsadd[5],tab0);//     显示S5
                }
                if(!INTPUT6)
                {
                display_graphic_16x8(11,33,xsadd[14],tab0);//.
                display_graphic_16x8(12,33,xsadd[6],tab0);//     显示S6
                }
                if(!INTPUT7)
                {
                display_graphic_16x8(11,33,xsadd[14],tab0);//.
                display_graphic_16x8(12,33,xsadd[7],tab0);//     显示S7
                }
               }
              }

 

相关文章:

读字库写FM24C04

/*PCB机板增加读写24C64函数PAST 2017 12 26 08:10 CODE 7382*/ /*按11键进入手动选择&#xff0c;按12键进入参数设定界面 按1存1 2存2 3存3 15存0 16存1236 17读EEPROM显示正确 L1008 13775061792 ******/ #include <reg52.h>…...

boost::asio::ip::tcp::socket set_option

Boost asio 官方教程简介_asio::write-CSDN博客 boost::asio::ip::tcp::socket 是一个用于异步I/O操作的类&#xff0c;它是Boost.Asio库的一部分&#xff0c;专门用于处理TCP套接字。 以下是一个简单的使用 boost::asio::ip::tcp::socket 的例子&#xff0c;这个例子展示了如…...

华为鸿蒙HarmonyOS应用开发者高级认证答案

判断 1只要使用端云一体化的云端资源就需要支付费用&#xff08;错&#xff09; 2所有使用Component修饰的自定义组件都支持onPageShow&#xff0c;onBackPress和onPageHide生命周期函数。&#xff08;错&#xff09; 3 HarmonyOS应用可以兼容OpenHarmony生态&#xff08;对…...

ElasticSearch 与 OpenSearch:拉开性能差距

Elasticsearch 与 OpenSearch&#xff1a;扩大性能差距 对于任何依赖快速、准确搜索数据的组织来说&#xff0c;强大、快速且高效的搜索引擎是至关重要的元素。对于开发人员和架构师来说&#xff0c;选择正确的搜索平台可以极大地影响您的组织提供快速且相关结果的能力。在我们…...

Java构造器

构造器 无参构造器有参构造器构造方法VS成员方法总结 概念&#xff1a;也称构造方法、构造函数。作用是构造出来一个类的实例&#xff0c;确保对象得到初始化。 格式&#xff1a; 权限修饰符 类名(无参/有参){ }。 分类&#xff1a; 带参数&#xff1a;有参构造器不带参数&am…...

TiDB系列之:使用TiUP部署TiDB集群最新版本,同时部署TiCDC的详细步骤

TiDB系列之:使用TiUP部署TiDB集群最新版本,同时部署TiCDC的详细步骤 一、部署TiDB集群二、准备环境三、安装 TiUP四、安装TiUP cluster组件五、初始化包含TiCDC的TiDB集群拓扑文件六、检查和修复集群存在的潜在风险七、查看可以安装的tidb版本八、部署 TiDB 集群:九、查看集…...

【经典算法】LeetCode 72. 编辑距离(Java/C/Python3/Go实现含注释说明,中等)

题目描述 给定两个单词 word1 和 word2&#xff0c;计算出将 word1 转换成 word2 所使用的最少操作数。 你可以对一个单词进行如下三种操作&#xff1a; 插入一个字符删除一个字符替换一个字符 原题&#xff1a;LeetCode 72 思路及实现 方式一&#xff1a;动态规划 思路…...

webstorm 常用插件

安装插件步骤&#xff1a; 打开软件&#xff0c;文件 -- 设置-- 插件 -- 输入插件名称 -- 安装 代码截图: code screenShots 先选中代码&#xff0c;按 ctrl shift alt a&#xff0c;就可截取选中的代码颜色注释: comments highlighter 对注释的文字改变颜色高亮成对符号: h…...

clang:在 Win10 上编译 MIDI 音乐程序(二)

先从 Microsoft C Build Tools - Visual Studio 下载 1.73GB 安装 "Microsoft C Build Tools“ 访问 Swift.org - Download Swift 找到 Windows 10&#xff1a;x86_64 下载 swift-5.10-RELEASE-windows10.exe 大约490MB 建议安装在 D:\Swift\ &#xff0c;安装后大约占…...

【redis】Redis数据类型(三)List类型

目录 List类型介绍特点 List数据结构附&#xff1a;3.2以前的版本(介绍一下压缩列表和双向链表)压缩列表ZipList双向链表LinkedList 常用命令lpush示例 lpushx示例 rpush示例 rpushx示例 LPOP示例 RPOP示例 BLPOP非阻塞行为阻塞行为相同的 key 被多个客户端同时阻塞在 MULTI/EX…...

Java面试题:多线程2

如何停止正在运行的线程 1,使用退出标志,使线程正常退出(run方法中循环对退出标志进行判断) 2,使用stop()方法强行终止(不推荐) 3,调用interrupt()方法中断线程 打断阻塞线程(sleep,wait,join),线程会抛出InterruptedException异常 打断正常的线程,可以根据打断状态来标记…...

T型槽地轨承载力是如何连接整个制造过程的强力桥梁(北重公司设计)

T型槽地轨承载力的定义和计算 T型槽地轨是一种用于工业设备运输和装配的关键组件。它由世界上各行各业的生产商广泛采用&#xff0c;其有效的承载力使其成为连接整个制造过程的强力桥梁。本文将介绍T型槽地轨的承载力以及相关的设计要点和应用。 承载力的定义和计算 承载力是…...

【Numpy】一文向您详细介绍 np.linspace()

【Numpy】一文向您详细介绍 np.linspace() &#x1f308; 欢迎莅临我的个人主页&#x1f448; 这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的计算机专业人士&#xff0c;热衷于分享技术见…...

VMware虚拟网卡网络适配器出现黄色感叹号

问题发生&#xff1a;VMware在使用Ubuntu的过程中突然卡死&#xff0c;强制关闭开启后就发生了网络无法连接 找到电脑的设备管理发现VMware的适配器出现黄色感叹号 解决方法&#xff1a; 下载软件ccleaner 扫描问题&#xff0c;懒得去找就修复了所有的问题 最后发现适配器…...

论生命价值

我们该如何定义一个人的生命价值&#xff0c;这是一个十分值得我们深思的问题&#xff0c;而谈论到生命的价值&#xff0c;我们先从非人的东西去谈论它的价值&#xff0c;从我们作为人的角度去思考价值&#xff0c;一个东西对我们有用&#xff0c;这个东西能够让我们的主观上的…...

基于Springboot的民航网上订票系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的民航网上订票系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…...

ubuntu开启message文件

环境&#xff1a;ubuntu 20.04 1、首先需要修改 /etc/rsyslog.d/50-default.conf 文件&#xff1b;源文件中message被注释&#xff0c;如下图&#xff1a; 2、打开注释&#xff1a; 3、重启服务 systemctl restart rsyslog.service 如此即可&#xff01;...

ISIS的基本概念

1.ISIS概述 IS-IS是一种链路状态路由协议&#xff0c;IS-IS与OSPF在许多方面非常相似&#xff0c; 例如运行IS-IS协议的直连设备之间通过发送Hello报文发现彼此&#xff0c;然后建立邻接关系&#xff0c;并交互链路状态信息。 CLNS由以下三个部分组成&#xff1a; CLNP&#xf…...

Vue 工程化开发入门

Vue开发的两种方式&#xff1a; 核心包传统开发模式&#xff1a;基于html/css/js文件&#xff0c;直接引入核心包&#xff0c;开发Vue工程化开发模式&#xff1a;基于构建工具的环境中开发Vue 这里选择Vue cli脚手架 进行开发&#xff0c;搜索教程自行下载。 组件化开发 一个页…...

车牌号识别系统:PyQT5+QT Designe+crnn/PaddleOCR+YOLO+OpenCV矫正算法。

PyQT5&QT Designecrnn/PaddleOCRYOLO传统OpenCV矫正算法。可视化的车牌识别系统项目。 车牌号识别系统 项目绪论1.项目展示2.视频展示3.整体思路 一、PyQT5 和 QT Designer1.简介2.安装3.使用 二、YOLO检测算法三、OpenCV矫正算法四、crnn/PaddleOCR字符识别算法五、QT界面…...

【基于MAX98357的Minimax(百度)长文本语音合成TTS 接入教程】

【基于MAX98357的Minimax&#xff08;百度&#xff09;长文本语音合成TTS 接入教程】 1. 前言2. 先决条件2.1 硬件准备2.2 软件准备2.3 接线 3. 核心代码3.1 驱动实现3.2 代码解析 4. 播放文本5. 结论 视频地址&#xff1a; SeeedXIAO ESP32S3 Sense【基于MAX98357的Minimax&am…...

秋招后端开发面试题 - JVM底层原理

目录 JVM底层原理前言面试题Java 对象的创建过程&#xff1f;什么是指针碰撞&#xff1f;什么是空闲列表&#xff1f;/ 内存分配的两种方式&#xff1f;JVM 里 new 对象时&#xff0c;堆会发生抢占吗&#xff1f;JVM 是怎么设计来保证线程安全的&#xff1f;/ 内存分配并发问题…...

VUE2从入门到精通(一)

**************************************************************************************************************************************************************************** 1、课程概述 【1】前置储备&#xff1a;HTMLCSSJS、WebAPI、Ajax、Node.js 【2】1天&…...

cmake进阶:文件操作之写文件

一. 简介 cmake 提供了 file() 命令可对文件进行一系列操作&#xff0c;譬如读写文件、删除文件、文件重命名、拷贝文件、创建目录等等。 接下来 学习这个功能强大的 file() 命令。 本文学习 CMakeLists.txt语法中写文件操作。 二. cmake进阶&#xff1a;文件操作之写文件…...

ubuntu 安装单节点HBase

下载HBase mkdir -p /home/ellis/HBase/ cd /home/ellis/HBase/ wget https://downloads.apache.org/hbase/2.5.8/hbase-2.5.8-bin.tar.gz tar -xvf hbase-2.5.8-bin.tar.gz安装java jdk sudo apt install openjdk-11-jdksudo vim /etc/profileexport JAVA_HOME/usr/lib/jvm/…...

HTTP 多个版本

了解一下各个版本的HTTP。 上个世纪90年代初期&#xff0c;蒂姆伯纳斯-李&#xff08;Tim Berners-Lee&#xff09;及其 CERN的团队共同努力&#xff0c;制定了互联网的基础&#xff0c;定义了互联网的四个构建模块&#xff1a; 超文本文档格式&#xff08;HTML&#xff09; …...

【DevOps】探索Linux命令行世界:深入了解Shell的力量

目录 一、Linux Shell 详细介绍 1. Shell基础概念 2. Shell的功能特性 3. 常用Shell命令与技巧 4. 高级Shell特性与实践 二、常见的Shell及其比较 1. Bash (Bourne Again SHell) 2. Zsh (Z Shell) 3. Fish (Friendly Interactive SHell) 4. Ksh (Korn SHell) 5. Csh …...

互斥量的使用

文章目录 前言一、互斥量与二进制信号量二、优先级反转与优先级继承三、递归锁 前言 通过学习上一章互斥量理论基础&#xff0c;这一章我们来做一些实验进行验证。 一、互斥量与二进制信号量 互斥量使用和二进制信号量类似 互斥量有优先级继承功能&#xff0c;二进制信号量没有…...

关于面试真题的压迫

1.请描述一下您在使用JavaScript进行DOM操作时&#xff0c;如何提高页面性能和用户体验&#xff1f; 使用事件委托&#xff1a;在父元素上监听事件&#xff0c;而不是为每个子元素都添加事件监听器。这样可以减少事件处理程序的数量&#xff0c;提高性能。 缓存DOM查询&#x…...

1700java进销存管理系统Myeclipse开发sqlserver数据库web结构java编程计算机网页项目

一、源码特点 java web进销存管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为sqlser…...

给个免费资源/做网站关键词优化的公司

试设计一个算法&#xff0c;删除一个顺序表从第i个元素开始的k个元素 #include<stdio.h> #include<stdlib.h> #include<time.h> #define OK 1 #define ERROR 0 #define MAXSIZE 20 typedef int ElemType; typedef int Status;typedef struct {ElemType dat…...

wordpress添加顶和踩/seo搜狗

一、Config配置中心简介 为什么需要用到这项技术? 1、运行期间,可以修改配置项。 2、不同环境不同配置。 3、可以将各个微服务的配置信息集中管理。 4、自动刷新到项目运行的内存中。 SpringCloud Config 为分布式系统配置提供了服务端和客户端的支持,包括Config Server 和…...

兰州官网排名推广/网站优化公司认准乐云seo

代码&#xff1a; 头文件 MyPrintf.cpp 函数的声明 //MyPrintf.h #pragma once //使用putchar实现printf的功能 #include<stdio.h> #include<stdarg.h> //函数声明 void Int_Print(int out); //打印整数 void Float_Print(float out); //打印浮点数 void X_P…...

怎么看一个网站有没有做百度推广/网站如何推广

虽然arguments的主要用途是保存函数参数&#xff0c;但是这个对象还有一个callee的属性&#xff0c;该属性是一个指针&#xff0c;指向拥用这个arguments对象的函数&#xff1b; 这种阶乘写法是强耦合&#xff0c;如果外面的函数名改变了&#xff0c;里面就不能拿到预期的结果f…...

网站页面下沉的特效代码/每日新闻摘要30条

目录 Linux cd命令&#xff1a;切换目录 Linux pwd命令&#xff1a;显示当前路径 Linux ls命令&#xff1a;查看目录下文件 Linux mkdir命令&#xff1a;创建目录&#xff08;文件夹&#xff09; Linux rmdir命令&#xff1a;删除空目录 Linux cd命令&#xff1a;切换目录…...

学习网站建设论文/百度一下浏览器下载安装

iOS开发多线程篇—线程的状态 一、简单介绍 线程的创建&#xff1a; self.thread[[NSThread alloc]initWithTarget:self selector:selector(test) object:nil]; 说明&#xff1a;创建线程有多种方式&#xff0c;这里不做过多的介绍。 线程的开启&#xff1a; [self.thread star…...