新闻中心

EEPW首页>嵌入式系统>设计应用> 红外解码程序(用1602显示码值)

红外解码程序(用1602显示码值)

作者: 时间:2016-12-02 来源:网络 收藏
#include

#define uchar unsigned char
#define uint unsigned int
sbit beep=P1^7;
bit startflag; //定义一个扫描开始标志位
bit irreceok;//红外接收OK标志位
bit irprosok;//红外接收处理OK标志位
uchar irdata[33];//定义一个存放编码的数组。引导码1位,客户码8位,客户反码8位,数据码8位,数据反码8位 ,共33位
uchar bitnum;//接收到的第几位数据的标志位
uchar irtime;//定义红外扫描时间
uchar ircode[4];//为四个码值定义一个数组存放,把四位码分开
uchar disp[8];//四组数据,每组拆成高四位和低四位,共八个元素
/**************1602部分******************/
sbit lcden=P1^2;
sbit lcdrs=P1^0;
sbitlcdrw=P1^1;
/*char code Tab[]={0,1,2,3,4,5,6,7,8,
9,A,B,C,D,E,F};*/
char code Tab[]="0123456789abcdef";
void delay(uint z) //延时子程序
{
uint x,y;
for(x=z;x>0;x--)
for(y=220;y>0;y--);
}

本文引用地址: //m.amcfsurvey.com/article/201612/324698.htm

void write_com(uchar com)//定义一个带参数的写命令子程序
{
lcdrs=0; //1602的rs为0时,接收命令,为1时接收数据
P0=com;//把void write_com(uchar com)中的COM中的数据给P0口
delay(2);
lcden=1;
delay(2);
lcden=0;
delay(2);
}

void init_1602()//定义一个初始化子程序
{
lcden=0;
lcdrw=0;
write_com(0x38);//调用 write_com子程序并把0x38赋给P0口,显示模式打开
write_com(0x0f);//调用 write_com子程序并把“开显示,显示光标,光标闪烁”指令码赋给P0口
write_com(0x06);//调用 write_com子程序并把“地址指针加1,整屏不移动”指令码赋给P0口
//write_com(0x80+0x10);//数据指针初始化,让指针指向可显示的最右端
write_com(0x80);//数据指针初始化,让指针指向最左端,显示从第一行开始
write_com(0x01);//调用 write_com子程序并把"清零指"令码赋给P0口
}

void write_dat(uchar dat)//定义一个带参数的写数据子程序
{
lcdrs=1; //1602的rs为0时,接收命令,为1时接收数据
P0=dat;//把void write_shu(uchar shu)中的COM中的数据给P0口
delay(2);
lcden=1;
delay(2);
lcden=0;
delay(2);
}

void delayms(uint t)
{
uint i,j;
for(i=t;i>0;i--)
for(j=110;j>0;j--);
}
void timer0init()//定时器O初始化
{
TMOD=0x02;//定时器设成方式2,因为方式2可以自动重装初值
TH0=0x00;//高位设为O
TL0=0x00;//低位设为O
ET0=1; //中断打开
EA=1;//总中断打开
TR0=1;//定时器打开
}


上一页 1 2 下一页

评论


技术专区

关闭