infrared-keyboard.rar

  • PUDN用户
    了解作者
  • C/C++
    开发工具
  • 17KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 1
    下载次数
  • 2015-02-05 12:04
    上传日期
这个是红外键盘程序,通过单片机实现。工程文件可用keil打开
infrared-keyboard.rar
  • 红外键盘程序
  • 红外键盘程序
  • scr
  • hwjp.c
    2.2KB
  • hwjp.h
    1.4KB
  • output
  • hwjp.m51
    6.2KB
  • hwjp.lst
    5.2KB
  • STARTUP.lst
    11.5KB
  • STARTUP.obj
    815B
  • hwjp.obj
    5.8KB
  • hwjp.lnp
    94B
  • hwjp.plg
    391B
  • hwjp.hex
    831B
  • hwjp
    6.2KB
  • hwjp.Uv2
    2.1KB
  • STARTUP.A51
    5KB
  • hwjp.plg
    176B
  • hwjp.Opt
    1.2KB
内容介绍
/********************************************* 1.功能: 本程序针对M50463AP红外键盘的单片机解码驱动程序 2.I/O脚使用 1个 3.调试环境:12M晶振(51系列12时钟模式) 3.程序大小(ROM估计): 4.数据大小(RAM估计): 5.运行时间(与调用函数有关): ***********************************************/ // //#define __HWJP_M50462AP_DEBUG__ #ifdef __HWJP_M50462AP_DEBUG__ #include<wywcomm.h> #include<reg52.H> sbit io_HONGWAI = P2^1; // 串行数据,单向通信(输出) //此模块调用其它模块的外部变量和函数的声明(此程序无) #else #include "system.h" //所有的项目用相同的系统头文件,但存放的路径不同,各自存放在对应的项目文件夹。 #endif //此模块的宏定义(常数等) #define DELAY10US_M _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_() //此模块必要的库函数包含(include) #include<intrins.h> #define YONGHUMA 226 uint8 code yima[]={64,0,16,8,24,4,20,12,28,128,144,136,152,80,72,68,196, 204,84,212,220,92,216,208,232,248,228,244,236,76}; //---------------------------------------------------------- //读键并译码输出程序 //---------------------------------------------------------- uint8 u8_HongWaiKye_f(void) { uint8 i,j; uint16 shuju; if(io_HONGWAI == 1)return 0xff; for(j=0;j<16;j++) {i = 0; while(!io_HONGWAI); do{ if( io_HONGWAI == 0 ) break; DELAY10US_M;//延時10毫秒 i++; if(i>250)break; }while(1); if(i > 250)return 0xff; shuju <<= 1; if(i > 50) shuju |= 1; } i = shuju / 256; j = shuju % 256; if(i != YONGHUMA) return 0xff; for(i=0;i<30;i++)if(yima[i] == j)break; if(i == 31) i = 0xff; return i; } //------------------------------------------------------------ //松键程序 //------------------------------------------------------------ void v_HongWaiSongJian_f(void) { uint8 i; for(i=0;i<250;i++) //在24毫秒内检测一直为高电平则为松键 { DELAY10US_M;DELAY10US_M;DELAY10US_M;DELAY10US_M;DELAY10US_M; DELAY10US_M;DELAY10US_M;DELAY10US_M;DELAY10US_M;DELAY10US_M; if( io_HONGWAI == 0 ) i=0; } } #ifdef __HWJP_M50462AP_DEBUG__ void main(void) { uint8 i; i = u8_HongWaiKye_f(); v_HongWaiSongJian_f(); } #endif
评论
    相关推荐