第5章5.3-MCS-51单片机的外围模块及应用_串口祥解.ppt

第5章5.3-MCS-51单片机的外围模块及应用_串口祥解.ppt

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章5.3-MCS-51单片机的外围模块及应用_串口祥解.ppt

* * 5.3.5 串行口的应用和编程 一、串行口应用 图5-3-13a 两个单片机之间的TTL电平串行通信 图5-3-13b 单片机和PC机的通信 二、串行口编程 例5-3-1 试编写一个程序,其功能为对串行口初始化为方式1,f为11.0592MHz,波特率为9600,首先在串行口上输出字符串AT89C52 Microcomputer,接着读串行口上输入的字符,又将该字符从串行口上输出。 #include reg52.h #define uchar unsigned char #define uint unsigned int uchar code OUT_S[]={AT89C52 Microcomputer\r\n}; init_sys() { TMOD=0x20; TH1=0xfd; TL1=0xfd; TR1=1; SCON=0x52; } out_s_1() { uchar *p1; p1=OUT_S; for(;;) { if (*p1!=0) { SBUF=*p1; for (;TI==0;); TI=0; p1++; } else return ; } } in_out() { uchar a; ? for(;;) { for( ;RI==0;); RI=0; a=SBUF; SBUF=a; for(;TI==0;); TI=0; } } main() { init_sys(); out_s_1(); in_out(); for(;;); } 例5-3-2 设f=11.0592MHz,编写一个单片机用串行口和PC机的通信实验程序,其功能为首先向PC机输出AT89C52READY,然后接收PC机的单字节命令,其合法命令为A、B、C、D、E、F,若收到合法命令回答CMD_命令符OK!,收到非法命令回答CMD Err!。 #include reg52.h #include stdio.h #define uint unsigned int #define uchar unsigned char uchar bdata FLAG; sbit MCMD=FLAG^0; sbit ESO=FLAG^1; sbit ESI=FLAG^2; uchar idata SBFR[16]; uchar idata *PTR; uchar code C_A[]={CMD_ A OK !\n}; uchar code C_B[]={CMD_B OK !\n }; uchar code C_C[]={CMD_C OK !\n }; uchar code C_D[]=CMD_D OK !\n ; uchar code C_E[]=CMD_E OK !\n ; uchar code C_F[]=CMD_F OK !\n ; uchar code Err[]=CMD Err !\n ; init_sys() { TMOD=0x20; TH1=0xfd; TL1=0xfd; TR1=1; SCON=0x52; PCON=0x80; printf(“%s\r AT89C52READY\n\n”); IE=0x90; ESI=1; ESO=0; PTR=SBFR; } p_ms(uchar *p) { PTR=SBFR; do { *PTR=*p; p++; PTR++; } while (*p!=0); *PTR=*p; } p_mcmd() { uchar a; a=SBFR[0]; switch(a) { case A: { p_ms(C_A); break; } case B: { p_ms(C_B); break; } case C: { p_ms(C_C); break; } case D: { p_ms(C_D); break; } case E: { p_ms(C_E); break; } case F: { p

文档评论(0)

love + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档