智能终端定制开发 ad
MTK/瑞芯微/高通-Android,智能模块/智能终端方案商

深度定制各类智能终端和智能硬件产品,提供硬件选型咨询、参考设计、元器件推荐、驱动开发、行业模块集成、操作系统定制与算法集成等软硬件定制服务。
contact.aspx

Android核心板产品覆盖2G、3G、4G通讯,双核、四核、八核CPU,可选的平台有MTK6580、MTK6737、MTK6750等,Android版本有5.1 6.0 7.0等。
contact.aspx

可广泛应用于低端智能POS、安防监控、车载设备、低端智能机器人、智能家居、智能硬件、工业智能手持设备、低端智能对讲设备、低端警务或执法设备、智能穿戴、贩卖机、物流柜、智能门禁系统等行业和设备。
contact.aspx

可提供以太网转串口透传,WIFI转串口透传,蓝牙转串口透传,CAN总线模拟量控制输出模块等。
contact.aspx

带3G或4G通讯功能,运行android系统,有多个串口,可以外挂各种模块:条码扫描、RFID、指纹识别、身份证识别、磁条卡、ID卡、GPS/北斗模块等。
contact.aspx

具有4G通讯功能,多个RS232或RS485接口,以太网接口,USB接口,CAN接口,多个AD输入。基于Android系统智能平台,方便APP应用开发。器件严格选型,运行稳定,质量可靠。
contact.aspx

51单片机红外遥控解码程序(史上最简)
[单片机] 2008-07-29
用单片机进行红外遥控解码,对大多数初学者来说是很麻烦的一个问题。从书中和网上找到的一些这方面的程序,运行往往是无法通过。即使能用的程序也是显得复杂而长。
        下面介绍本人自编的红外遥控解码的C51程序,自认为是可能是史上最简的。此程序是针对uPD6121系列的遥控器的取码程序,解码值在Im[2]中,当IrOK=1时解码有效。

 

/*   51单片机红外遥控解码程序   */
/*      适用uPD6121系列            */
/*     周正华 2008.4.11编         */
/*   
http://hi.baidu.com/52_diy   */

#include <reg52.h>

#define DIGPORT P2
#define WORDPORT P0
unsigned char code LED_num[]={0x3f,0x18,0x76,0x7c,0x59,0x6d,0x6f,0x38,0x7f,0x7d};

 

#define Imax 14000    //此处为晶振为11.0592时的取值,
#define Imin 8000    //如用其它频率的晶振时,
#define Inum 1450    //要改变相应的取值。
unsigned char Im[]={0x00,0x00,0x00,0x00};

unsigned long m,Tc;
unsigned char i,IrOK;


void DelayMy(unsigned int t){
while(--t);
}


void Display_LED(unsigned long num)
{
unsigned int ii;
unsigned int jj="0";
unsigned long aa,bb;
unsigned int xx[8]={0,0,0,0,0,0,0,0};
do {
    bb="num/10";
    aa="num-bb"*10;
    xx[jj]=aa;
    num="bb";jj++;
    }
while(num>0);
DIGPORT=0x80;
for(ii=0;ii<8;ii++) {
    WORDPORT="LED"_num[xx[ii]];
    DelayMy(60);
    DIGPORT="DIGPORT">>1;
};
WORDPORT=0;
}

//外部中断解码程序
void intersvr1(void) interrupt 2 using 1
{
Tc=TH0*256+TL0;                                               //提取中断时间间隔时长
TH0=0; TL0=0;              //定时中断重新置零
if((Tc>Imin)&&(Tcif(Tc>Inum) Im[m/8]=Im[m/8]>>1|0x80; else Im[m/8]=Im[m/8]>>1; //取码
if(m==32) if((Im[2]|0x01)==~Im[3]) IrOK="1"; else IrOK="0";    //取码完成后判断读码是否正确
m++;                //准备读下一码
}


/*演示主程序*/
void main(void)
{
m=0;
EA=1;

IT1=1;EX1=1;

TMOD=0x11;  
TH0=0;TL0=0;
TR0=1;ET0=1;

for(;;){
DelayMy(100);
if(IrOK==1) for(i=0;i<400;i++) Display_LED(Im[2]);
IrOK=0;
}
}

[单片机添加评论 | 评论/阅读(0/1308)
评论
昵称
主页
内容
递交


Copyright @ 我的开发笔记     2008 - 2017         粤ICP备19155526号-1