第8章通用同步异步通信的应用1.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章通用同步异步通信的应用1

第8章 通用同步/异步通信的应用 8.5 单片机双机异步通信 1 单片机PIC1编程(发送部分) #include pic.h /*该程序实现单片机双机异步通信功能,*/ unsigned char tran[8];/*定义一个数组存储发送数据*/ unsigned char k,data;const char table[20]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x7f,0xbf,0x89,0xff}; /**/ /*spi显示初始化子程序*/ void SPIINIT() { PIR1=0; SSPCON=0x30; SSPSTAT=0xC0; /*SPI的控制方式,允许SSP方式,并且时钟下降沿发送,与74HC595,当其 *SCLK从低到高跳变时,串行输入寄存器的特点相对应*/ TRISC=0xD7;/*SDO引脚为输出,SCK*/ TRISA5=0;/*RA5引脚设置为输出,*/ } /*给数组赋初值子程序 */ void fuzhi() { for(k=0;k8;k++) { tran[k]=k+3; } } /*SCI*/ void sciint() { SPBRG=0X19;/*将传输的波特率设为约9 600位/秒*/ TXSTA=0X04;/*选择异步高速方式传输8位数据*/ RCSTA=0X80;/*允许同步串行口工作*/ TRISC6=1; TRISC7=1;/*将RC6、RC7设置为输入方式,*/ } /*SPI传输数据子程序*/ void SPILED(data) { SSPBUF=data;/*启动发送*/ do { ; }while(SSPIF==0); SSPIF=0; } /*,8位数*/ void display() { RA5=0;/*准备锁存*/ for(k=0;k8;k++) { data=tran[k]; data=table[data];/*查得显示的段码*/ SPILED(data);/*发送显示段码*/ } RA5=1;/*最后给一个锁存信号,*/ } /*主程序*/ main() { SPIINIT(); fuzhi();/*给数组赋初值*/ sciint();/*SCI部件初始化*/ di();/*中断禁止*/ TXEN=1;/*发送允许*/ CREN=1;/*接收数据允许*/ for(k=0;k8;k++){ TXREG=tran[k];/*发出一个字符*/ while(1){ if(TXIF==1) break; }/*等待写入完成*/ while(1){ if(RCIF==1) break;/*,*/ } RCREG=RCREG;/*读响应字节,清RCIF*/ } display();/*显示发送的数据*/ while(1){ ; } }#include pic.h /*该程序实现单片机双机异步通信功能,,8 *个LED上*/ unsigned char rece[8];/**/ unsigned char k,data;const char table[20]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x7f,0xbf,0x89,0xff}; /**/ /*spi显示初始化子程序*/ void SPIINIT() { ;详细语句见发送程序 } /*SCI部件初始化子程序*/ void sciint() { SPBRG=0X19;/*波特率设置与PIC1相同,9 600位/秒*/ TXSTA=0X04;/*异步高速传输*/ RCSTA=0X80;/*串行口工作使能*/ TRISC6=1; TRISC7=1;/*将RC6、RC7设置为输入方式,*/ } /*SPI传送数据子程序*/ void SPILED(data) { ;详细语句与见发送程序 } /*显示子程序,4位数*/ void display() { RA5=0;/*准备锁存*/ for(k=0;k8;k++){ data=rece[k]; data=table[data];/*查得显示的段码*/ SPILED(data);/*发送显示段码*/ } RA5=1;/*最后给一个锁存信号,*/ } /*主程序*/ main() { SPII

文档评论(0)

woai118doc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档