当前位置: 首页 > news >正文

佳木斯建网站的建设网站用英文怎么说

佳木斯建网站的,建设网站用英文怎么说,衡阳市住房建设局网站,深圳龙华区住房和建设局网站红外遥控在生产和生活中应用越来越广泛,不同的红外遥控芯片有不同的发码协议,但一般都是由引导码,系统码,键码三部分组成.引导码是告诉接收机准备接收红外遥控码.系统码是识别码,不同的遥控芯片有不同的误别码,以免搞错.遥控器上不同的按键有不同的键码,系统码和键码都是16位码…红外遥控在生产和生活中应用越来越广泛,不同的红外遥控芯片有不同的发码协议,但一般都是由引导码,系统码,键码三部分组成.引导码是告诉接收机准备接收红外遥控码.系统码是识别码,不同的遥控芯片有不同的误别码,以免搞错.遥控器上不同的按键有不同的键码,系统码和键码都是16位码,8位正码,8位反码.如SC6122的系统码是FF00,FF和00互为反码,键码1为EF10也是互为反码.关于SC6122的资料在我们的网页资料下载上有.SC6122的引导码为低电平为9000微秒,高电平为4500微秒.当然高电平不可能精确为9000微秒,在8000微秒到10000微秒都看作是正常范围,低电平在4000-5000之间都看作是正常范围.引导码后的32位编码(16位系统码和16位键码)不管高低电平,载波时间都是560微秒,但低电平持续时间是1125微秒,高电平持续时间是2250微秒,所以低电平除去载波时间大约是560微秒,高电平除去载波时间大约是1680微秒.低电平也有一个波动范围,在400-700之间都看作是正常的,具体多少可以通过示波器测量出来.高电平也有一个波动范围,在400-2000之间都看作是正常的,具体多少也是根据经验.当然范围越宽,捕捉红外线的范围也越宽,越精确.在捕捉到有高低电平之间,在560-1680之间取一个中间值1120微秒,认为小于1120微秒是低电平,大于1120微秒是高电平.下面有两个经过实践能在实验板上显示键码的程序,一个是汇编写的,一个是用C写的,与大家一起探讨遥控器.以下程序能在LCD上显示系统码和键码,按不同的按键,系统码不变,变的是键码.有不懂的地方可以在留言本上留言.RS EQU P2.5                 ;这几个是LCD引脚.RW EQU P2.6E EQU P2.7IRR EQU P3.3                ;红外接收的输出接P3.3.BUF EQU 30H ;30H-33H保存解码结果;ORG 0000HAJMP MAIN;ORG 0030HMAIN:MOV SP,#70H ;堆栈指针设到70H的地方ACALL INIT_LCD                                    ;初始化LCDMOV R7,#10ACALL DELAY_MSMOV DPTR,#MSG1CALL DISPLAY_LINE1                        ;在第一行显示 Test8: IR ReaderMOV DPTR,#MSG2CALL DISPLAY_LINE2                        ;在第二行显示www.mcuedu.comMAIN_LOOP:JB IRR,$ ;等待接收头信号为低ACALL GET_LOW ;测量引导脉冲低电平CLR CMOV A,R7SUBB A,#(8000/50) ;SC6122的引导脉冲低电平为9000US,我们只要测到低电平的值在8000-10000US范围内就认为合格的.JC MAIN_LOOP ;如果小于8000US,不对,重新等待接收CLR CMOV A,R7SUBB A,#(10000/50)JNC MAIN_LOOPACALL GET_HIGH ;测量引导脉冲高电平CLR CMOV A,R7SUBB A,#(4000/50)JC MAIN_LOOP                    ;如果小于4000US,不对,重新等待接收CLR CMOV A,R7SUBB A,#(5000/50)JNC MAIN_LOOP                        ;如果大于5000US,不对,重新等待接收MOV R0,#BUF ;MOV R5,#8 ;SC6122发的码有32位,我们用4个字节来存放,每个字节有8位IR_NEXT:CALL GET_LOWCLR CMOV A,R7SUBB A,#(300/50) ;300USJC MAIN_LOOP                                ;低电平小于300微秒认为不对,重新接收CLR CMOV A,R7SUBB A,#(800/50) ;800USJNC MAIN_LOOP                                ;低电平大于800微秒认为不对,重新接收ACALL GET_HIGHCLR CMOV A,R7SUBB A,#(300/50) ;300USJC MAIN_LOOP                                ;高电平小于300微秒认为不对,重新接收CLR CMOV A,R7SUBB A,#(2000/50) ;2000USJNC MAIN_LOOP                                     ;高电平大于2000微秒认为不对,重新接收CLR CMOV A,R7SUBB A,#(1120/50) ;                            ;跟中间值1120进行比较RRC AMOV R0,A                                    ;通过CY移到间接地址R0中去DJNZ R5,IR_NEXT                                    ;8位移完了吗MOV R5,#8INC R0MOV A,R0XRL A,#(BUF4)JNZ IR_NEXT ;如果不到4个字节,接收下一个MOV DPTR,#MSG_6122ACALL DISPLAY_LINE1 ;显示格式名称ACALL DISPLAY_IR_CODE ;显示码AJMP MAIN_LOOP;MSG1: DB Test8: IR Reader MSG2: DB www.mcuedu.com MSG_6122: DB Format: SC6122 ;;转为ASCII码在LCD在显示TO_ASCII:CJNE A,#0AH,TO_ASCII_1TO_ASCII_1:JC TO_ASCII_2 ;小于10ADD A,#(A-10)RETTO_ASCII_2:ADD A,#0RET;DISPLAY_IR_CODE:MOV A,#0C0H ;显示在第二行ACALL SEND_COMMAND_BYTE ;设置DDRAM地址MOV R0,#BUFDISPLAY_IR_CODE_NEXT:MOV A,R0SWAP AANL A,#0FH                            ;分离出高字节ACALL TO_ASCII                                ;转为ASCII码ACALL SEND_DATA_BYTE                             ;显示MOV A,R0ANL A,#0FH                            ;分离出低字节ACALL TO_ASCII                                 ;转为ASCII码ACALL SEND_DATA_BYTE                            ;显示MOV A,# ACALL SEND_DATA_BYTE                                ;显示空格INC R0MOV A,R0XRL A,#(BUF4)JNZ DISPLAY_IR_CODE_NEXTMOV R0,#8 ;第2行共有20个字符,前面显示用了12个,再用8个空格填满DISPLAY_IR_CODE_B:MOV A,# ACALL SEND_DATA_BYTEDJNZ R0,DISPLAY_IR_CODE_BRET;;测量低电平时间,50US采样一次,R7加1一次,比如低电平时间为9000US,测得R7的结果为180(0B4H);OUTPUT: R7GET_LOW:MOV R7,#00HGET_LOW_NEXT:MOV R6,#20 ;在晶振为11.0592M时,延50US需要46个机器周期,DJNZ R6,$ ;这条指令执行需要2个机器周期JB IRR,GET_LOW_RTN ;接收头为高电平,结束测量INC R7MOV A,R7JNZ GET_LOW_NEXT ;看R7是否有溢出GET_LOW_RTN:RET;;测量高电平时间,50US采样一次,R7加1一次,比如高电平时间为4500US,测得R7的结果为90;OUTPUT: R7GET_HIGH:MOV R7,#00HGET_HIGH_NEXT:MOV R6,#20 ;在晶振为11.0592M时,延50US需要46个机器周期,DJNZ R6,$ ;这条指令执行需要2个机器周期JNB IRR,GET_HIGH_RTN ;接收头为低电平,结束测量INC R7MOV A,R7JNZ GET_HIGH_NEXT ;看R7是否有溢出GET_HIGH_RTN:RET;;DELAY_MS:MOV R6,#250DELAY_MS_NEXT:NOPNOPDJNZ R6,DELAY_MS_NEXTDJNZ R7,DELAY_MSRET;;INPUT: R7DELAY:DJNZ R7,$RET;;向LCD写一个命令字节;INPUT: ACCSEND_COMMAND_BYTE:CLR RSCLR RWMOV P0,ASETB ENOPNOPNOPNOPNOPNOPCLR EMOV R7,#100ACALL DELAYRET;;向LCD写一个数据字节;INPUT: ACCSEND_DATA_BYTE:SETB RSCLR RWMOV P0,ASETB ENOPNOPNOPNOPNOPNOPCLR EMOV R7,#100ACALL DELAYRET;;初始化LCDINIT_LCD:MOV A,#30HACALL SEND_COMMAND_BYTEACALL SEND_COMMAND_BYTEACALL SEND_COMMAND_BYTEMOV A,#38H ;设置工作方式ACALL SEND_COMMAND_BYTEMOV A,#0CH ;显示状态设置ACALL SEND_COMMAND_BYTEMOV A,#01H ;清屏ACALL SEND_COMMAND_BYTEMOV A,#06H ;输入方式设置ACALL SEND_COMMAND_BYTERET;;在第一行显示;INPUT: DPTR指向要显示的内容DISPLAY_LINE1:MOV A,#080HDISPLAY_LINE1_A:ACALL SEND_COMMAND_BYTE ;设置DDRAM地址MOV R6,#20DISPLAY_LINE1_NEXT:CLR AMOVC A,ADPTRACALL SEND_DATA_BYTEINC DPTRDJNZ R6,DISPLAY_LINE1_NEXTMOV R7,#100ACALL DELAYRET;;在第二行显示;INPUT: DPTR指向要显示的内容DISPLAY_LINE2:MOV A,#0C0HAJMP DISPLAY_LINE1_A;END下面是一个用C写的遥控器程序.能在数码管上显示键码.#include #define c(x) (x*110592/120000)sbit Ir_PinP3^3;unsigned char code Led_Tab[]{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};                        //共阳极数码显示码0-F.unsigned char code Led_Sel[]{0xe,0xd,0xb,0x7};unsigned char Led_Buf[4]; //显示缓冲区char Led_Index;                   //位选unsigned char Ir_Buf[4]; //用于保存解码结果////数码管扫描timer0() interrupt 1 using 1{TL065536-1000;TH0(65536-1000)/256; //定时器0设定约1000us中断一次用于数码管扫描P00xff;P2Led_Sel[Led_Index];                            //位选P0Led_Tab[Led_Buf[Led_Index]];                    //段选if(Led_Index3) Led_Index0;                    //四个扫描完了,到第一个数码管}//unsigned int Ir_Get_Low(){TL10;TH10;TR11;while(!Ir_Pin (TH10x80)0);TR10;return TH1*256TL1;}//unsigned int Ir_Get_High(){TL10;TH10;TR11;while(Ir_Pin (TH10x80)0);TR10;return TH1*256TL1;}//main(){unsigned int temp;char i,j;Led_Index1;TMOD0x11;TL065536-1000;TH0(65536-1000)/256; //定时器0设定约1000us中断一次用于数码管扫描EA1;ET01;TR01;Led_Buf[0]0;Led_Buf[1]0;Led_Buf[2]0;Led_Buf[3]0; //显示区设成0do{restart:while(Ir_Pin);tempIr_Get_Low();if(tempc(9500)) continue;//引导脉冲低电平9000tempIr_Get_High();if(tempc(5000)) continue;//引导脉冲高电平4500for(i0;i4;i) //4个字节for(j0;j8;j) //每个字节8位{tempIr_Get_Low();if(tempc(800)) goto restart;tempIr_Get_High();if(tempc(2000)) goto restart;Ir_Buf[i]1;if(tempc(1120)) Ir_Buf[i]|0x80;}Led_Buf[0]Ir_Buf[2]0xf;Led_Buf[1](Ir_Buf[2]/16)0xf;Led_Buf[2]Ir_Buf[3]0xf;Led_Buf[3](Ir_Buf[3]/16)0xf; //显示结果}while(1);}
http://www.zqtcl.cn/news/961713/

相关文章:

  • 邓州做网站做网站seo怎么赚钱
  • 微信小程序开发步骤图长沙百度seo
  • 网站代做仿百度图片网页设计
  • 广州建设局网站首页网络营销专业的就业方向
  • wordpress单页seo关键词优化培训
  • 网站301多久短信营销平台
  • 江苏省现代化实训基地建设网站网站备案加速
  • 中国的网站域名云服务器发布网站
  • 免费seo网站自动推广软件做的好微信商城网站
  • 杭州网站建设方案优化腾讯网络游戏大全列表
  • 泰安网站建设收费标准直播视频app
  • 网站路径问题优秀的网站有哪些
  • 建设网站使用的工具大连免费网站制作
  • 专业的网站优化扬州市城乡建设网站
  • 射阳做网站的公司在哪品牌建设是指
  • 沈阳做网站好的网站分析论文
  • 做熟食的网站美食网站网站开发后端书籍
  • 做模板下载网站挣钱吗网站建设专业导航网站
  • 网站目录结构html静态网站作品
  • 南通建设局网站分类门户网站系统
  • 合肥网站建设企业秒玩小游戏入口
  • 个人做网站开发个人网站备案取名
  • 替代wordpress 搜索seo优化排名易下拉程序
  • asp.net 网站 方案小程序开发是前端还是后端
  • 网站开发 介绍 回扣建设项目验收在哪个网站公示
  • 建立网站免费如何做物流网站
  • 重庆网站设计费用wordpress自动翻页
  • 燕郊做网站的公司seo快速优化
  • 建了网站却搜不出来设计网站室内
  • 网站运营维护新闻摘抄大全