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

📄 12864+nrf405.c

📁 用AT89S52、Nrf905及12864组成的菜单程序
💻 C
📖 第 1 页 / 共 2 页
字号:
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x08,0x04,0x24,0x24,0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x92,0x54,0xFF,0x54,0x82,0x95,0x96,0xFC,0x96,0x95,0x94,0x00,0x38,
0x00,0xFF,0x08,0xA4,0xA7,0xAC,0x94,0xAA,0xA2,0x32,0x00,0x48,0x4A,0xEA,0x5E,0x4A,
0xFE,0x49,0x5D,0xEB,0x49,0x48,0x00,0x01,0x41,0x5D,0xD5,0x5F,0x75,0x55,0x5F,0x75,
0xDD,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x82,0x42,0xE2,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x88,0x8F,0x88,0xFE,0x88,0x8E,0x88,0x8E,0x08,0x06,0x00,0x04,
0x23,0x24,0x25,0x22,0xF9,0x20,0x27,0x34,0x24,0x06,0x00,0xE8,0x38,0xEF,0x3D,0xED,
0x97,0x75,0x95,0x9F,0x70,0x90,0x00,0x52,0x92,0x11,0xF7,0x05,0xF5,0x15,0xDD,0x95,
0xF7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x02,0x05,0x04,0x1F,0x14,0x00,0x00,0x10,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x20,0x20,0x20,0x3C,0x23,0x20,0x20,0x20,0x3F,0x20,0x20,0x00,0x21,
0x21,0x11,0x09,0x05,0x03,0x05,0x09,0x11,0x21,0x21,0x00,0x3F,0x15,0x14,0x15,0x3F,
0x04,0x04,0x04,0x3F,0x04,0x04,0x00,0x10,0x0C,0x03,0x1C,0x00,0x0B,0x0A,0x2A,0x2A,
0x22,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

unsigned char code FirstPage4[]={
/*-- 调入了一幅图像:C:\Documents and Settings\freelover\桌面\未标题-1.bmp --*/
/*-- 宽度x高度=128x64 --*/

0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0xF8,0x00,0x00,0xFC,0x00,0x00,
0x08,0x68,0xA8,0x3C,0x28,0xE8,0x3C,0x28,0xE8,0x28,0x08,0x00,0x00,0xF4,0x08,0xE0,
0x28,0xF8,0x28,0xE8,0x08,0x08,0xF8,0x00,0x08,0x68,0xA8,0x3C,0x28,0xE8,0x3C,0x28,
0xE8,0x28,0x08,0xFF,0xDB,0x37,0xEF,0xEF,0x03,0x6F,0xFF,0x07,0xB7,0x3B,0xBB,0xFF,
0xF7,0x97,0x57,0xC3,0xD7,0x17,0xC3,0xD7,0x17,0xD7,0xF7,0xFF,0x24,0xC8,0x20,0xA0,
0xFC,0x20,0x20,0xF8,0x48,0x48,0xF8,0x00,0x08,0x68,0xA8,0x3C,0x28,0xE8,0x3C,0x28,
0xE8,0x28,0x08,0x00,0x04,0xE4,0x24,0x24,0xFC,0x24,0xFC,0x24,0x24,0xE4,0x04,0x00,
0xA0,0xB8,0x50,0xBC,0x54,0xA4,0x40,0xAC,0x94,0x2C,0x44,0x00,0x00,0x00,0x00,0x00,
0x20,0x20,0x20,0x20,0x30,0x2C,0x23,0x20,0x20,0x20,0x27,0x20,0x20,0x3F,0x20,0x20,
0x32,0x32,0x2A,0x27,0x22,0x3F,0x22,0x27,0x2A,0x32,0x32,0x20,0x20,0x3F,0x28,0x29,
0x29,0x27,0x25,0x27,0x2C,0x30,0x3F,0x20,0x32,0x32,0x2A,0x27,0x22,0x3F,0x22,0x27,
0x2A,0x32,0x32,0x7F,0x61,0x7E,0x76,0x6E,0x70,0x6F,0x77,0x78,0x7F,0x60,0x7F,0x7F,
0x6D,0x6D,0x75,0x78,0x7D,0x60,0x7D,0x78,0x75,0x6D,0x6D,0x7F,0x3E,0x21,0x22,0x21,
0x3F,0x21,0x20,0x3F,0x29,0x29,0x3F,0x20,0x32,0x32,0x2A,0x27,0x22,0x3F,0x22,0x27,
0x2A,0x32,0x32,0x20,0x20,0x3F,0x34,0x32,0x31,0x30,0x33,0x32,0x32,0x3F,0x20,0x20,
0x22,0x22,0x21,0x3F,0x35,0x35,0x2D,0x35,0x3F,0x35,0x21,0x20,0x20,0x20,0x20,0x20,
0x00,0x00,0x00,0x00,0x00,0x08,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x20,0x22,0x22,0x22,0x22,0xFE,0x22,0x22,0x23,0x22,0x20,0x00,0x00,
0x20,0x18,0x00,0xC0,0x3F,0xC0,0x20,0x10,0x08,0x00,0x00,0x08,0x8C,0xBB,0xAA,0xEA,
0x2F,0xEA,0xAA,0xBA,0x8A,0x08,0x00,0x08,0x08,0x08,0x08,0xC8,0x3F,0xC8,0x08,0x08,
0x0C,0x08,0x00,0x7C,0x44,0xFF,0x44,0x7E,0x02,0x02,0xFE,0x12,0x22,0x42,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x42,0x43,0x42,0x80,0x00,0x00,0x02,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x60,0xA0,0x20,0x70,0xA0,0xE7,0xA0,0xF0,0xA0,0xA0,0x20,0x00,0x24,
0x24,0xA2,0xA1,0xA0,0xF0,0xA0,0xA1,0xA2,0xA4,0x24,0x00,0x02,0xE2,0x22,0x22,0xA7,
0x70,0xA7,0x22,0x22,0xE2,0x02,0x00,0x44,0x44,0x42,0x41,0xC0,0x50,0x60,0x41,0x42,
0x64,0x44,0x00,0x06,0x02,0x03,0x02,0x07,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x31,0x28,0x24,0x22,0x21,0x00,0x00,0x20,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x44,0x3D,0x20,0x50,0x56,0x55,0x54,0x7F,0x54,0x54,0x50,0x00,0x08,
0x08,0x27,0x22,0x29,0x2B,0x51,0x42,0x04,0x0B,0x08,0x00,0x00,0x7F,0x02,0x11,0x08,
0x06,0x08,0x51,0x40,0x7F,0x00,0x00,0x40,0x40,0x20,0x18,0x07,0x41,0x41,0x41,0x3F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x08,0x04,0x24,0x24,0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x92,0x54,0xFF,0x54,0x82,0x95,0x96,0xFC,0x96,0x95,0x94,0x00,0x38,
0x00,0xFF,0x08,0xA4,0xA7,0xAC,0x94,0xAA,0xA2,0x32,0x00,0x48,0x4A,0xEA,0x5E,0x4A,
0xFE,0x49,0x5D,0xEB,0x49,0x48,0x00,0x01,0x41,0x5D,0xD5,0x5F,0x75,0x55,0x5F,0x75,
0xDD,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x82,0x42,0xE2,0x01,0x00,0x00,0x02,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x88,0x8F,0x88,0xFE,0x88,0x8E,0x88,0x8E,0x08,0x06,0x00,0x04,
0x23,0x24,0x25,0x22,0xF9,0x20,0x27,0x34,0x24,0x06,0x00,0xE8,0x38,0xEF,0x3D,0xED,
0x97,0x75,0x95,0x9F,0x70,0x90,0x00,0x52,0x92,0x11,0xF7,0x05,0xF5,0x15,0xDD,0x95,
0xF7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x02,0x05,0x04,0x1F,0x14,0x00,0x00,0x10,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x20,0x20,0x20,0x3C,0x23,0x20,0x20,0x20,0x3F,0x20,0x20,0x00,0x21,
0x21,0x11,0x09,0x05,0x03,0x05,0x09,0x11,0x21,0x21,0x00,0x3F,0x15,0x14,0x15,0x3F,
0x04,0x04,0x04,0x3F,0x04,0x04,0x00,0x10,0x0C,0x03,0x1C,0x00,0x0B,0x0A,0x2A,0x2A,
0x22,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};



/*------------------延时子程序-----------------------------*/
void delay1(unsigned int t)
{
unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<10;j++)
;
}

/*------------------写命令到LCD------------------------------*/
void write_com(unsigned char cmdcode)
{

Di=0;
RW=0;

Lcd_Bus=cmdcode;
delay1(0);
Enable=1;
delay1(0);
Enable=0;
}

/*-------------------写数据到LCD----------------------------*/

void write_data(unsigned char Dispdata)
{

Di=1;
RW=0;

Lcd_Bus=Dispdata;
delay1(0);
Enable=1;
delay1(0);
Enable=0;
}






/*------------------显示12864图片---------------------------*/
void Disp_Img(unsigned char code *img)
{
unsigned char j,k;
for(k=0;k<8;k++){
Mcs=1;Scs=0;delay1(10);
write_com(Page_Add+k);
write_com(Col_Add+0);
for(j=0;j<64;j++) write_data(img[k*128+j]);
Mcs=0;Scs=1; delay1(10);
write_com(Page_Add+k);
write_com(Col_Add+0);
for(j=64;j<128;j++) write_data(img[k*128+j]);
}
}




/*---------------------指定位置显示汉字16*16-----------------------*/

void hz_disp16(unsigned char pag,unsigned char col, unsigned char code *hzk)
{
unsigned char j=0,i=0;
for(j=0;j<2;j++){
write_com(Page_Add+pag+j);
write_com(Col_Add+col);
for(i=0;i<16;i++) write_data(hzk[16*j+i]);
}
}


/*------------------初始化LCD屏--------------------------*/
void init_lcd()
{
Lcd_Rst=0;
delay1(100);
Lcd_Rst=1;
delay1(100);

Mcs=1;
Scs=1;

delay1(100);
write_com(Disp_Off);
write_com(Page_Add+0);
write_com(Start_Line+0);
write_com(Col_Add+0);
write_com(Disp_On);
}


/*------------------------------信息显示------------------------*/
void Msg(int flg,int hang)
{
//Clr_Scr();
//frame();
if(flg==0){ //显示“测试开始”
Mcs=1;Scs=0;
hz_disp16(6,32,ce);
delay1(2000);

}
else if(flg==1){ //显示“测试完毕”
Mcs=0;Scs=1;
hz_disp16(hang,32,ce);

}
}


uchar kbscan(void)
{
uchar sccode,recode;
P2=0xf0;                       //置所有行为低电平,行扫描,列线输入(此时)
if((P2&0xf0)!=0xf0)            //判断是否有有键按下(读取列的真实状态,若第4列有键按下则P1的值会变成0111 0000),有往下执行
{
        delay10ms();                   //延时去抖动(10ms)
   if((P2&0xf0)!=0xf0)         //再次判断列中是否是干扰信号,不是则向下执行
        {
         sccode=0xFE;                 //逐行扫描初值(即先扫描第1行) 
    while((sccode&0x10)!=0)        //行扫描完成时(即4行已经全部扫描完成)sccode为1110 1111 停止while程序     
    {
     P2=sccode;                     //输出行扫描码
          if ((P2&0xf0)!=0xf0)           //本行有键按下(即P1(真实的状态)的高四位不全为1)
     {
           recode=(P2&0xf0)|0x0f; //列
      return(~(sccode&recode)); //返回行和列
     }
          else             //所扫描的行没有键按下,则扫描下一行,直到4行都扫描,此时sccode值为1110 1111 退出while程序
         {
           sccode=(sccode<<1)|0x01;//行扫描码左移一位
          }
         }
        }
}
          else
{
           return 0;        //无键按下,返回0
}

}

uchar readnumber(uchar tmp)             //按键扫描的结果,转换为数字,便于程序对按键数据处理
{
  switch(tmp)
  {
  case 0x28:return 0 ;break;
  case 0x14:return 1 ;break;
  case 0x24:return 2 ;break;
  case 0x44:return 3 ;break;
  case 0x84:return 12;break;
  case 0x12:return 4 ;break;
  case 0x22:return 5 ;break;
  case 0x42:return 6 ;break;
  case 0x11:return 7 ;break;
  case 0x21:return 8 ;break;
  case 0x41:return 9 ;break;
  case 0x88:return 10 ;break;
  case 0x82:return 11 ;break;
  case 0x18:return 13 ;break;
  default:break;
  }
}

uchar choic(uchar ch_tmp)
{
   switch(ch_tmp)
   {
   case 4:
   if(count==1)menu[0]='1';
   else if(count==2)menu[4]='5';
   else if(count==3)menu[8]='9';
   else if(count==4)menu[12]='d';
   break;
   case 5:
if(count==1)menu[1]='2';
   else if(count==2)menu[5]='6';
   else if(count==3)menu[9]='a';
   else if(count==4)menu[13]='e';
   break;
   case 6:
if(count==1)menu[2]='3';
   else if(count==2)menu[6]='7';
   else if(count==3)menu[10]='b';
   else if(count==4)menu[14]='f';
   break;
   case 11:
if(count==1)menu[3]='4';
   else if(count==2)menu[7]='8';
   else if(count==3)menu[11]='c';
   else if(count==4)menu[15]='g';
   break;
   default:break;   
   
   }
   return 0;
}

void main(void)
{

init_lcd();
 Ini_System();
Disp_Img(FirstPage3);
delay1(10000);
 while(1){
 key=kbscan();
if(key!=0){
 do{
 key1=kbscan();
 }while(key1!=0);//等待按键释放
  
 if(readnumber(key)==0){
 count++;
 if(count>=5)count=1;}
 
 if(readnumber(key)==13){
 count--;
 if(count==0)count=4;}

 if(count==1)
 Disp_Img(FirstPage1);
 if(count==2)
 Disp_Img(FirstPage2);
 if(count==3)
 Disp_Img(FirstPage4);
 if(count==4)
 Disp_Img(FirstPage3);}
//if(count==4)count=0;
//if(count==4)count=0;
temkey=readnumber(key);
 if(temkey==4)
 Msg(1,2);
  if(temkey==5)
 Msg(1,4);
  if(temkey==6)
 Msg(1,5);
  if(temkey==11)
 Msg(1,6);
 choic(temkey);
  if(readnumber(key)==10)
  TxPacket();

 }  
}

⌨️ 快捷键说明

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