📄 12864+遥控解码.c
字号:
{ 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 + -