欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    用红外遥控器控制继电器Word下载.docx

    • 资源ID:6534073       资源大小:19.45KB        全文页数:20页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    用红外遥控器控制继电器Word下载.docx

    1、 temp=temp1; /temp中的各数据位右移一位,因为先读出的是高位数据 TH0=0; /定时器清0 TL0=0; TR0=1; /开启定时器T0 while(IR=0) /如果是低电平就等待 ; /低电平计时 TR0=0; /关闭定时器T0 LowTime=TH0*256+TL0; /保存低电平宽度 while(IR=1) /如果是高电平就等待 ; HighTime=TH0*256+TL0; /保存高电平宽度 if(LowTime640) return 0; /如果低电平长度不在合理范围,则认为出错,停止解码 if(HighTime420)&(HighTime7800)&(LowTi

    2、me3600)&4700) /如果是引导码,就开始解码,否则放弃,引导码的低电平计时 /次数9000us/1.085=8294, 判断区间:83005007800,83005008800. if(DeCode()=1) Function(); /如果满足条件,执行遥控功能 /开启外中断EX0 /实例98:基于DS1302的日历时钟intrins.h /包含_nop_()函数定义的头文件/*以下是DS1302芯片的操作程序*/unsigned char code digit10=0123456789; /定义字符数组显示数字sbit DATA=P11; /位定义1302芯片的接口,数据输出端定义

    3、在P1.1引脚sbit RST=P12; /位定义1302芯片的接口,复位端口定义在P1.1引脚sbit SCLK=P10; /位定义1302芯片的接口,时钟输出端口定义在P1.1引脚/*延时若干微秒入口参数:n*/ void delaynus(unsigned char n) unsigned char i;n;i+)向1302写一个字节数据xvoid Write1302(unsigned char dat) SCLK=0; /拉低SCLK,为脉冲上升沿写入数据做好准备 delaynus(2); /稍微等待,使硬件做好准备i+) /连续写8个二进制位数据 DATA=dat&0x01; /取出

    4、dat的第0位数据写入1302 delaynus(2); SCLK=1; /上升沿写入数据 SCLK=0; /重新拉低SCLK,形成脉冲 dat=1; /将dat的各数据位右移1位,准备写入下一个数据位根据命令字,向1302写一个字节数据Cmd,储存命令字;dat,储存待写的数据void WriteSet1302(unsigned char Cmd,unsigned char dat) RST=0; /禁止数据传递 /确保写数居前SCLK被拉低 RST=1; /启动数据传输 Write1302(Cmd); /写入命令字 Write1302(dat); /写数据 SCLK=1; /将时钟电平置于

    5、已知状态从1302读一个字节数据 unsigned char Read1302(void) unsigned char i,dat;i+) /连续读8个二进制位数据 dat /将dat的各数据位右移1位,因为先读出的是字节的最低位 if(DATA=1) /如果读出的数据是1 dat|=0x80; /将1取出,写在dat的最高位 /将SCLK置于高电平,为下降沿读出 /稍微等待 /拉低SCLK,形成脉冲下降沿 return dat; /将读出的数据返回 根据命令字,从1302读取一个字节数据Cmdunsigned char ReadSet1302(unsigned char Cmd) unsig

    6、ned char dat; /拉低RST dat=Read1302(); /读出数据 1302进行初始化设置void Init_DS1302(void) WriteSet1302(0x8E,0x00); /根据写状态寄存器命令字,写入不保护指令 WriteSet1302(0x80,(0/10)4|(0%10); /根据写秒寄存器命令字,写入秒的初始值 WriteSet1302(0x82,(0/10) /根据写分寄存器命令字,写入分的初始值 WriteSet1302(0x84,(12/10)4|(12%10); /根据写小时寄存器命令字,写入小时的初始值 WriteSet1302(0x86,(1

    7、6/10)4|(16%10); /根据写日寄存器命令字,写入日的初始值 WriteSet1302(0x88,(11/10)4|(11%10); /根据写月寄存器命令字,写入月的初始值 WriteSet1302(0x8c,(8/10)4|(8%10);/*以下是对液晶模块的操作程序*/sbit RS=P20; /寄存器选择位,将RS位定义为P2.0引脚sbit RW=P21; /读写选择位,将RW位定义为P2.1引脚sbit E=P22; /使能信号位,将E位定义为P2.2引脚sbit BF=P07; /忙碌标志位,将BF位定义为P0.7引脚延时1ms(3j+2)*i=(333+2)10=101

    8、0(微秒),可以认为是1毫秒*/void delay1ms()10; for(j=0;33;j+)延时若干毫秒 void delaynms(unsigned char n) delay1ms();判断液晶模块的忙碌状态返回值:result。result=1,忙碌;result=0,不忙bit BusyTest(void) bit result; RS=0; /根据规定,RS为低电平,RW为高电平时,可以读状态 RW=1; E=1; /E=1,才允许读写 _nop_(); /空操作 /空操作四个机器周期,给硬件反应时间 result=BF; /将忙碌标志电平赋给result E=0; /将E恢复

    9、低电平 return result;将模式设置指令或显示地址写入液晶模块dictatevoid WriteInstruction (unsigned char dictate) while(BusyTest()=1); /如果忙就等待 /根据规定,RS和R/W同时为低电平时,可以写入指令 RW=0; /E置低电平(根据表8-6,写指令时,E为高脉冲, / 就是让E从0到1发生正跳变,所以应先置0 /空操作两个机器周期,给硬件反应时间 P0=dictate; /将数据送入P0口,即写入指令或地址 /空操作四个机器周期,给硬件反应时间 /E置高电平 /当E由高电平跳变成低电平时,液晶模块开始执行命

    10、令指定字符显示的实际地址 void WriteAddress(unsigned char x) WriteInstruction(x|0x80); /显示位置的确定方法规定为80H+地址码x将数据(字符的标准ASCII码)写入液晶模块y(为字符常量) void WriteData(unsigned char y) RS=1; /RS为高电平,RW为低电平时,可以写入数据 P0=y; /将数据送入P0口,即将数据写入液晶模块 _nop_();对LCD的显示模式进行初始化设置void LcdInitiate(void) delaynms(15); /延时15ms,首次写指令时应给LCD一段较长的反

    11、应时间 WriteInstruction(0x38); /显示模式设置:162显示,57点阵,8位数据接口 delaynms(5); /延时5ms,给硬件一点反应时间 /连续三次,确保初始化成功 WriteInstruction(0x0c);显示开,无光标,光标不闪烁 WriteInstruction(0x06);光标右移,字符不移 WriteInstruction(0x01); /清屏幕指令,将以前的显示内容清除/*以下是1302数据的显示程序*/显示秒void DisplaySecond(unsigned char x) /j,k,l分别储存温度的百位、十位和个位 i=x/10;/取十位 j=x%10;/取个位 WriteAddress(0x49); /写显示地址,将在第2行第7列开始显示 WriteData(digiti); /将百位数字的字符常量写入LCD WriteData(digitj); /将十位数字的字符常量写入LCD delaynms(50); /延时1ms给硬件一点反应时间 显示分钟void DisplayMinute(unsigned char x) WriteAddress(0x46);


    注意事项

    本文(用红外遥控器控制继电器Word下载.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开