- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PIC单片机I-O口单线通讯的实现
PIC单片机I/O口单线通讯的实现
????中、低档PIC单片机有些不带串口,有些虽然有串行口,却受串口固定协议的限制或留作他用,故需用普通I/O口进行通讯。由于中、低档机I/O口数量相对较少,为节省口线,就要用I/O口模拟串行通讯。????本文以两片采用不同主频的PIC单片机(A机时钟频率为6MHz,使用口线RB6;B机时钟频率为4MHz,使用口线RB4)之间用异步通讯方式传送一组数据为例,说明I/O口一线通讯的实现方法。????一、设计思想????1.时钟同步问题????因两个单片机的时钟不同,故采用异步通讯方式。发送、接收一位数据时,采用软件延时,保证发送、接收完全同步。????2.数据发送、接收方式????I/O口一线串行通讯,并-串(或串-并)转换用软件完成。将欲发送的字节存于16H中,经移位指令移至进位位。根据进位位的值,将口线RB6置0或1。接收端RB4接收并判断后,置进位标志为0或1,再经移位指令移入14H中。这样循环执行8次,就可将一个字节由低位到高位一位位地发送出去。数据传送速率可用延时循环的方法进行调节。????3.握手协议????先发握手信号,后发数据。假定A机为发送,B机为接收。A机开始发送时,先发送一个握手数据信号,B机收到后回送一个应答信号,表示同意接收。????A机收到应答信号后,开始发送数据。握手信号和数据信号都按异步通讯格式,先发准备信号“1”,接着发送起始位“0”,然后发数据位。????4.数据传送????异步通讯时,发送时钟控制数据位的定时移位串行输出,接收时钟检测起始位,并控制数据的定时接收移入。两个时钟信号不是通过信号线传递,而是采用编程约定的办法,使之和实际使用的数据速率基本保持一致,而数据信号中的起始位则是发和收的同步控制。接收时钟为数据传送波特率的16倍频信号,即一个数据位宽的时间内将会出现16个接收时钟的信号,这是检测起始位和保证在数据位中央位置接收数据所需要的。为排除瞬时干扰,在检测到数据输入线的电平由“1”变为“0”之后,接收端将继续检测。仅当连续8个接收时钟周期内都检测到数据线上的电平为“0”时,才确认是起始位,且发送端每一个“0”或“1”都发送16次,接收端将以16倍的时钟周期,即以位宽时间为间隔,接收各数据位(在其中央位置接收数据)。一个字长数据(8位)接收完后,子程序返回。????二、程序框图和源程序????下面给出发送、接收一字长(8位)信号的子程序框图(见图1、图2)和PIC单片机源程序(发送、接收联络信号与数据信号相同)。注:所有延时程序略。????1.发送子程序???list p=16c65,f=inhx8mportb??equ6trisb??equ 16hstatus equ3rp0????equ5 ??????org0x100fs????bsf???status,rp0;选存储体1 ??????bcf???trisb,6????;置RB6为输出?? ????bcf???status,rp0;恢复存储体0???? ??bsf????portb,6???;发准备信号“1”?????? movlw0x08 ??????movwf1f???????;置发送字长 ??????call???ystb??????;延时同步?? ????movlw0x10??? ???movwf1cfs1??bcf????portb,6???;发16个起始位 ??????decfsz1c,1?? ????goto???fs1ts????call???ystj??????;延时调节波特率???? ??rrf????16h,1?????;发送字节移位????? btfsc??status,0 ??????goto????ty?? ????movlw0x10??? ???movwf1cfs2??bcf????portb,6???;位为0,发16个“0” ??????decfsz1c,1?? ????goto???fs2??? ???goto?????trty????movlw0x10????? movwf1cfs3??bsf????portb,6???;位为1,发16个“1” ??????decfsz1c,1 ?????goto?????????fs3tr????decfsz1f,??1 ????goto????ts????????;发送未完,延时发下一位 ??????return??????????;发送结束返回 ?????end????2.接收子程序???list p=16c65,f=inhx8mportb??equ6trisb??equ 16hstatus equ 3
您可能关注的文档
- pdf如何转换成jpg的方法解析.doc
- PdfCAJppt转化为word文档的方法.doc
- PDFFactoryProv352中文专业版安装及转换操作指南.doc
- PECM与ECMEDM的比较.doc
- pdf转在线转换教程.doc
- PDF电子表格的应用特性与优势.docx
- PDS-SV波速测试仪.doc
- PEG引发对玉米种子活力的影响.doc
- PentairXFlowAquaflex55超滤操作和维护注意事项仅供参考.doc
- PDC钻头钻井条件下录井方法研究-研究报告.doc
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
文档评论(0)