- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
单片机串行总线通信设计第9章
在单片机的通信技术中,串行通信扮演着重要的角色。除串口数据通信之外,单片机与外部的通信还有常用的I2C总线、SPI总线等,它们都是标准的串行总线通信技术,有的单片机内部已经包含了这些接口硬件设计。然而,也有很多芯片、设备并不具备标准的串行总线接口,而是提供了接口的协议和控制时序,需要单片机通过I/O口来模拟产生时序逻辑控制脉冲对这些设备进行读/写控制。引言
目录单片机I/O口时序控制方法1DS18B20数字温度传感器通信2本章小结6项目训练一:温度采集系统设计3项目训练二:精准数字钟设计5行业PPT模板/hangye/DS1302时钟芯片通信4
9.1单片机I/O时序控制方法
9.1.1并行转串行单片机内部的存储数据通常以字节为单位,而单片机与外围设备的通信需要通过I/O口将单片机内部的字节数据发送出来,这就需要经过并行到串行的数据转换,把8位数据按位展开,一位接一位地把数据顺序传送出去,即把并行数据转为串行数据。在通信接口的设计中,除需要一根数据线外,通常还需要一根时钟线(并不是必需的)作为数据的时间基准。
9.1.1并行转串行图1一种并行转串行的时序
9.1.1并行转串行1时钟输出时钟的波形是一个方波,方波的输出在第5章介绍过,可以用定时器来实现。但是这里的方波需要和数据输出进行配合,定时器的输出方式不适合这样的操作。因此,可以采用延时的方式来实现,延时的时间根据时序参数的要求设定即可。2串行数据的输出串行数据的输出是重点,它是把1字节的数据变为8位的数据顺序输出,需要用到的算法如下。设要传输的数据为0x56,其二进制数要把这些二进制数由低位到高位拆分出来,需要用到与运算和移位运算。算法解释如下。(1)把数据和0x01进行与运算(2)把数据右移一位,得再行与算法,得把它送到I/O口,I/O口上得到的数据为“1”。(3)以此类推,最后即可把一字节的数据按位拆开送到I/O口,从而实现数据由并行转串行的操作。程序算法通过一条语句来实现:DATA=(send_datai)0x1; //i从0到7递增
9.1.1并行转串行3合并操作把时钟产生和串行数据输出合并在一起,就可以实现类似图1的时序控制要求,即先把时钟置1(初始为0),产生上升沿脉冲并延时;然后做与运算和移位运算和与运算,把结果输出并延时;最后把时钟置0,并延时,延时的时间根据实际要求而定。主要的算法示例程序如下:for(i=0;i8;i++){ CLK=1;//时钟上升沿延时; DATA=(send_datai)0x1; //将send_data的第i位赋DATA 延时; CLK=0; //时钟下降沿 延时;}
9.1.2串行转并行1时钟上升沿检测程序中是通过while(1)来循环检测CLK的状态的,当检测到上一次的CLK的状态clk_history为0,并且当前的CLK状态clk_get为1时,即认为检测到一个时钟上升沿。while(1){ clk_get=CLK; //在一次while循环中,只采样一次CLK端口 if((clk_history==0)(clk_get==1)) //时钟上升沿 {...(略)//起始位检测及有效数据的读取 } clk_history=clk_get;}后面的起始位检测及有效数据的读取均在检测到时钟上升沿时进行。
9.1.2串行转并行2起始位检测使用一个关键变量state来表示单片机程序当前的工作状态,当state为0时,表示当前处于起始位检测状态;当state为1时,表示当前处于有效数据的读取状态。state的初始值为0,当检测到CLK上升沿有效且DATA的数据为0时,认为检测到起始位,将state置1。
9.1.2串行转并行3有效数据读取当state为1时,进行有效数据的读取。通过变量cnt来表示当前读取的串行数据位是接收数据data_receive的第几位,cnt的数值为0~7。从I/O口读进来的数据是一个接一个的二进制数,需要把它们组合到一起,形成1字节的数据,这里需要用到左移和或运算。算法原理是:在时钟信号CLK上升沿到来时读取一位I/O口(DATA)的数据(data_get),左移cnt(cnt初始值为0)位后,将其和存放最终结果的变量data_receive进行或运算,并将结果存放到data_receive中,
您可能关注的文档
- 单片机技术与项目训练 课件 第1章 单片机初步认识.pptx
- 单片机技术与项目训练 课件 第2章 单片机开发语言及工具的使用.pptx
- 单片机技术与项目训练 课件 第3章 单片机IO口的应用.pptx
- 单片机技术与项目训练 课件 第4章 单片机中断系统.pptx
- 单片机技术与项目训练 课件 第5章 定时计数器.pptx
- 单片机技术与项目训练 课件 第6章 单片机串口数据通信.pptx
- 单片机技术与项目训练 课件 第7章 液晶显示接口设计.pptx
- 单片机技术与项目训练 课件 第8章 单片机AD转换接口设计.pptx
- 2020-2025年中国变压器制造行业市场调查研究及投资前景预测报告.docx
- 2018-2024年中国氢能发电未来趋势预测分析及投资规划研究建议报告.docx
- “十三五”规划重点-塑料合金PCABS项目建议书(立项报告).docx
- 2022-2027年中国扁线电机市场现状分析及投资战略规划分析报告.docx
- 2024年控制器及引爆、爆炸器项目可行性研究报告.docx
- 中国电喷高压线行业市场全景评估及投资策略咨询报告.docx
- 中国干式电抗器行业发展前景预测及投资战略规划研究报告.docx
- 单片集成电路市场分析报告.docx
- 2019-2025年中国工商业用燃气表市场供需格局及未来发展趋报告.docx
- 2018-2024年中国防水涂料未来趋势预测分析及投资规划研究建议报告.docx
- 中国光电设备行业发展前景预测及投资战略研究报告.docx
- 能源管理中心建设项目可行性报告.docx
最近下载
- TS16949质量管理体系文件 全套质量手册、程序文件、表单等 已校审完整版.doc
- 2024年采购部门工作总结与计划.pptx
- 四川省2025届新高三秋季入学摸底考试 语文试卷(含答案).docx
- 心血管系统疾病分析题及答案.pdf VIP
- 铸牢中华民族共同体意识讲稿 .pdf VIP
- 临床技术操作规范-耳鼻咽喉-头颈外科分册.pdf VIP
- 新课标背景下初中物理情境教学研究.docx
- 2024年二建《(矿业)专业工程管理与实务》考前必刷必练题库资料600题(含真题、必会题).pdf
- 2021年7月浙江电大 实用写作 作业满分答案.docx VIP
- 苏教版小学五年级上册数学单元检测试卷及参考答案(8个单元12套).docx
文档评论(0)