单片机串口通信程序(下位机).docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
求单片机串口通信程序(下位机) 就是 PC 机和单片机通信,PC 机为上位机,单片机为下位机,用8 个 LED 灯检测。在PC 机上通过串口调试精灵向单片机发送字符,单片机接收到后读串口数据,判断接收到的是哪个字符,如果是“R”则让 LED 灯循环右移,接收到“L”则让 LED 灯循环左移。 程序用 C 和汇编都行,分数不够我可以加 我的邮箱 jimixin#yeah.net (把#改成@) 问题补充:呵呵,不幸被你言中,程序我还能看懂,让我编我确实还不会。已提高分数,希望再给个循环右移子程序,另外确定一下问题: 1.我用的是 AT89S51,头文件改成 reg51.h 就可以吧? 2.AT89S51 的片内时钟振荡频率是不是 12MHZ?那波特率为 9600b/s 时,TH1 和 TL1 的初值是 不应该为 FAH? 麻烦你了,回答补充问题我会再追加分数提问者: 匿名最佳答案 程序我给你做到这,别说其它的你还不会啊。波特率根据你的要求去设置.如果实在不明白的话,发消息给我吧 reg51.h 头文件可以, AT89S51 内部无时钟,需外加时钟 那波特率为 9600b/s 时,TH1 和 TL1 的初值是不应该为FAH? 它有具体的计算公式,波特率你想是多少就是多少 假设你用 P1 口控制 8 个 LED,低电平点亮,程序如下。首先包含intrins.h 头文件。 OK 了,问题全解决了,分也该给我了吧。呵呵。#includereg52.h #define uchar unsigned char uchar recive; void main() { TMOD=0X20; SCON=0X50; TL1=0XF3; TH1=0XF3; PCON=0X80; TR1=1; EA=1; ES=1; P1=0x7f;//初始值,一个灯亮,其它都灭 while(1) { if(recive==R) LED_right(); if(recive==L) LED_left(); } void es0(void) interrupt 4 ( recive=SBUF; RI=0; ) void LED_left(void) { P1=_crol_(P1,1); //delay();调用你想要的延时这个不要说你不会啊,就是做个空循环就行 } void LED_right(void) { P1=_cror_(P1,1); //delay(); }

文档评论(0)

始终如一 + 关注
官方认证
文档贡献者

始终如一输出优质文档!

认证主体苏州市致远互联网科技有限公司
IP属地北京
统一社会信用代码/组织机构代码
91320582MA27GAWJ0R

1亿VIP精品文档

相关文档