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

📄 12864+遥控解码.c

📁 74hc164键盘显示 红外控制DS1302 超级IO扫描 12864+遥控解码 1602+定时器 LCD1602+自定义图形
💻 C
📖 第 1 页 / 共 2 页
字号:
	{ cs1=1;cs2=0; }
	else
	{ col=col-64; cs1=0;cs2=1; }
	
    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]);
    }
}

/*----------------------指定位置显示字母或数字8*16-----------------------*/
void e_disp16(unsigned char pag,unsigned char col, unsigned char code *hzk)
{
    unsigned char j=0,i=0;
	if(col<64)	
	{ cs1=1;cs2=0; }
	else
	{ col=col-64; cs1=0;cs2=1; }    
    for(j=0;j<2;j++)
    {
        write_com(Page_Add+pag+j);
        write_com(Col_Add+col);
        for(i=0;i<8;i++) 
            write_data(hzk[8*j+i]);
    }
}

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

        cs1=0;cs2=1;  
        write_com(Page_Add+k);
        write_com(Col_Add+0);
        for(j=64;j<128;j++) write_data(img[k*128+j]);
    }
}


void init_lcd(void)
{
    delay(1);
    cs1=1;cs2=1;delay(1);

    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(void)
{
    unsigned char i;
    frame();   //边框
	
	for(i=2;i<6;i++)                   //欢迎光临
    {  
	   EA=0;
       hz_disp16(1,i*16,table0[i-2]); 
	   EA=1;
       delay(15);                   //延时,显示时有跳动感
	 }
	for(i=0;i<7;i++)                  //湘灵电子工作室
	{  
	   EA=0;
       hz_disp16(3,i*16,table0[i+4]);
	   EA=1;
	   delay(15);                   //延时,显示时有跳动感
	}

	for(i=0;i<16;i++)                 //www.mculover.net
	{
	   EA=0;
       e_disp16(5,i*8,table1[i]); 
	   EA=1;
	   delay(15);//延时,显示时有跳动感
	}
}

 
/*---------------------------主程序---------------------------------*/
void main(void)
{   
    unsigned char keynumber=0,i=0;
 
    TMOD=0x01;                                                                                                                                                                                                                                                                                                                                                                               
    IT0=1;       //下降沿触发
    EX0=1;       //开外部中断0
    EA=1;
    TR0=0; 
    
    init_lcd();	
        

    while(1)
    {  
        EA=0;  
        Disp_Img(logo);
        EA=1;
        delay(100);
        EA=0;
        Clr_Scr();   //清除内存
        Msg();
        EA=1;
        delay(100);    
    }
}


/*****************************************************************
0     141     开关    175      >    169
1     135     -/--    017      <    013
2     019     节目+   037     游戏  031
3     129     节目-   035     图像  049
4     133     音量+   045     时钟  179
5     023     音量-   047     TV/AV 001
6     007     显示    181     扫描  027
7     131     菜单    171     返回  029
8     145      ^      033     F     041
9     003      V      163     智能  173    静音  043
****************************************************************/


                          

void delay1ms(void)
{
   unsigned char i,j;
   for(i=2;i>0;i--)
   for(j=230;j>0;j--) ;
}

void t0(void) interrupt 0 using 2   //外部中断0的函数
{  
    unsigned char H=0;
    EA=0;
    TR0=0;    
    H=TH0;        //读取定时器高4为的值

    TH0=0X00;    
    TL0=0X00;      
    TR0=1;
    
    if(H>35)        //9MS内一直为低电平  
    {
       flag=1;
       count=0;
       s_team=0;
       dm=0;
    }

    if(flag==1)
    {   
       count++;
       if(H==4)         //1.125ms后出现由高到低的电平跳变
          if(count<8) dm=dm>>1;
       if(H==8)         //2.25ms后出现由高到低的电平跳变
       {
          dm=dm|0x80;
          if(count<8) dm=dm>>1;
       }
        
       if(count==8)
       {  
          a[s_team]=dm;
          dm=0;
          count=0;
          s_team++;
          if(s_team==4)
          {  
             s_team=0;
             flag=0;
             a[3]=(~a[3])+1;
             if(a[2]==a[3])
                getcode=a[2]; 
         	    
          }
        }
     }
    EA=1;
}

void sendchar(unsigned char kdate)
{
  unsigned char i,date;
  i=8;
  do
  {
   date=kdate&1;
   kdate=kdate>>1;
   DAT1=date;
   CLK1=0;       //上升沿脉冲触发移位
   CLK1=1;
  }while(--i!=0);
}

void display(long int shu,unsigned char wei)
{
  unsigned char i;
  int s;
  DAT2=0;
  for(i=0;i<wei;i++)
  {
    CLK2=0;
    CLK2=1;
    DAT2=1;
    s=shu%10;
    sendchar(table[s]);
    shu=shu/10;
    delay1ms(); 
    P3_0=0; 
    P3_0=1; 
  } 
  for(i=wei;i<9;i++)  //位清零
  {
    CLK2=0;
    CLK2=1;
  }
}

⌨️ 快捷键说明

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