您的位置 首页 产品

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

includereg52h>defineucharunsignedchardefineuintunsignedintsbitbeep=P1^7;bitstartflag;定义一个扫描开始标

#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–);
}

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;//定时器翻开
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/chanpin/254104.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部