- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机程序设计实践教程第20章红外数据传输
第二十讲 红外数据传输 20.0 项目演示效果 20.1 项目目标设计 20.2 项目任务 20.3 系统板上硬件连线 20.4 程序流程图 20.5 C语言源程序(略) 20.6 系统构成和程序分析 20.7 项目扩展任务 20.6.5 SPI通信的程序实现 上节已经介绍过,向MAX3100写入控制指令0xe48e 用到了max3100drv(0xe48e)语句,该函数的原型为uint max3100drv(uint x),完成STC89C52RC单片机与MAX3100的SPI通信功能,本项目中给出的C语言源程序完全是根据MAX3100数据手册的SPI时序图编制,这里将结合SPI时序图对相关代码进行介绍和分析。 uint max3100drv(uint x) //MAX3100的SPI通信驱动函数,根据MAX3100数据手册SPI时序图编制 { uint i; uint y=0; //从MAX3100将要接收的数据赋初值 nCS3100=0; DOUT3100=1; SCLK3100=0;DIN3100=1;y=0; //SPI通信起始条件 i=0x8000; //SPI通信传送16位的计数值 while(i) //i是否为0 { DIN3100=(bit)(xi); //SPI通信传送16位的计数值 y=1; //接收数据左移1位 SCLK3100=0; //SPI时钟下降沿更新一次数据 SCLK3100=1; //SPI时钟上升沿MAX3100采集DIN3100信号、发送DOUT3100信号 y|=(uint)DOUT3100; //将采集到的DOUT3100存入y中 i=1; //计数值右移一位,直到计满16次 } DOUT3100=1;SCLK3100=0; DIN3100=1; nCS3100=1; //SPI通信结束条件 return(y); //将从MAX3100中读到的数返回 } 从图20-8所示的MAX3100的SPI通信时序图可以看出,SPI通信方式的特点是主控制器STC89C52RC单片机对MAX3100写1位的同时,接收从MAX3100传过来的1位,数据位的发送和接收主要体现在同步时钟信号SCLK的上升和下降沿时刻。图中的标记①表示在SPI时钟上升沿,MAX3100采集已被主控制器放置在DIN引脚的DIN3100信号;标记②表示这之后MAX3100发送的DOUT3100信号才应被主控制器读入;标记③表示SPI时钟下降沿将更新一次DIN3100和DOUT3100数据位。 参照MAX3100的SPI通信时序图及以上解释,可以较为容易地理解函数uint max3100drv(uint x)的含义,函数体中的变量y是DOUT3100的返回值,是按位从MAX3100读回的数据。 图20-8 MAX3100的SPI通信时序图 20.6.6 红外发送程序分析 红外发送程序中,main(void)函数的无限循环while(1)主要完成将ZLG7290键盘显示芯片获取的被压键值通过MAX3100的红外模式传送出去,引入以下相关源程序: KeyValue=0xAA; //键值赋初值 … while(1) //无限循环 { DispHexValue(0, KeyValue); //用十六进制形式在数码管上显示按键值 max3100drv(0x8000|KeyValue); //将键值通过MAX3100的红外模式进行发送 … } KeyValue就是ZLG7290获取的键值,程序中的函数max3100drv(0x8000|KeyValue)实现将键值通过MAX3100的红外模式进行发送。根据表20-3,若实现主控制器向MAX3100写数据,则必须与写控制字一样,也要写入16位格式的数据。0x8000与KeyValue相或后,低8位是将要发送的数据,高8位为80。 结合表20-3,其中D15和D14位必须分别为1和0,起指令标识的作用。D10为0表示MAX3100发送允许、D9为0表示“请求发送”输出端控制位置1、D8为0
您可能关注的文档
- 从周期红利到内生增长——2008年金融行业投资策略21547.ppt
- 任务1.3加氢精制开停工操作.ppt
- 从天然物中提取咖啡因、第三大组.ppt
- 人教版高二语文必修五第三课《边城》课件(共38张).ppt
- 任意角和弧度制及任意角的三角函数系统复习.ppt
- 任务二剪切、扭转、弯曲变形.ppt
- 任意角和弧度制及任意角的三角函数复习.ppt
- 任意角的弧度制及其任意角的三角函数.ppt
- 优化指导2016-2017学年高中化学4.2.2金属与金属材料课件鲁科版必修1.ppt
- 优化指导2016-2017学年高中物理第14章电磁波1-2电磁波的发现电磁振荡课件新人教版选修3-4.ppt
- 301115_2024_#ESG_联检科技_2024年度环境、社会和治理(ESG)报告_2025-04-29.pdf
- 300308_2024_#ESG_中际旭创_2024年环境、社会及公司治理(ESG)报告_2025-04-21.pdf
- 想生科技产品注册公告及所需文件상생기술제품_등록_공고문_및_제출_서류.pdf
- 300760_2024_#SD_迈瑞医疗_2024年度可持续发展报告_2025-04-29.pdf
- 300870_2024_#SD_欧陆通_欧陆通2024年可持续发展报告_2025-04-22.pdf
- 301369_2024_#ESG_联动科技_2024年度环境、社会与公司治理(ESG)报告_2025-04-18.pdf
- 300937_2024_#SD_药易购_2024年度可持续发展报告_2025-04-25.pdf
- 300621_2024_#ESG_维业股份_维业股份:2024年度环境、社会和公司治理(ESG)报告_2025-04-19.pdf
- 300428_2024_#SD_立中集团_立中四通轻合金集团股份有限公司2024年度可持续发展报告-中文版_2025-04-21.pdf
- 301167_2024_#ESG_建研设计_2024年度环境、社会及公司治理(ESG)报告_2025-04-04.pdf
文档评论(0)