单片机 串口 波特率 c语言 9600 11.0592mhz t1,C51语言编程:单片机与 PC 串口通信程序...

单片机接收PC机发来的指令信号,然后单片机又向PC机发送字符串。具体要求如下:

当接收指令信号为:'go',单片机向PC机发送字符串:WELCOME TO CHINA!;

当接收指令信号为:'who',单片机向PC机发送字符串:MY NAME IS LIMING;

当接收指令信号为:'home',单片机向PC机发送字符串:

YINGYONGKEXUEXUEYUAN。

PC机上的串口调试软件,会在窗口显示出单片机送回来相应字符串;

如果接送的字符串不正确,单片机不响应。

采用C语言。

题目链接:http://zhidao.baidu.com/question/282477940.html

//---------------------------------------------------------

做而论道回答如下:

看看下面的。

//---------------------------------------------------------

#include

#include

#define uchar unsigned char

#define uint unsigned int

//---------------------------------------------------

uchar idata trdata1[] = {

'W','E','L','C','O','M&

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现单片机PC机不断发送0-9,可以利用51单片机串行方式2,并且设定偶校验和特定的晶振和波特率。 首先,设置晶振频率为11.0592MHz,可以使用以下语句: ```c #define FOSC 11059200UL ``` 然后,设置波特率9600,可以使用以下语句: ```c #define BAUDRATE 9600 #define DIVIDER (unsigned int)(FOSC / 32 / BAUDRATE) #define HIGH_BYTE(divider) ((unsigned char)((divider) >> 8)) #define LOW_BYTE(divider) ((unsigned char)(divider)) ``` 接下来,初始化串行口,设置为方式2和偶校验,并且设置波特率: ```c void init_serial() { SCON = 0x50; // 设置为方式2,允许接收 TMOD &= 0x0F; // 清零T1的控制位 TMOD |= 0x20; // 设置T1方式2 TH1 = HIGH_BYTE(DIVIDER); // 设置波特率 TL1 = LOW_BYTE(DIVIDER); // 设置波特率 PCON |= 0x80; // 启用波特率发生器 EA = 1; // 允许中断 ES = 1; // 允许串行口中断 } ``` 然后,编写一个发送函数,用于发送0-9的数据: ```c void send_data(unsigned char data) { SBUF = data; // 将数据发送到串行缓冲区 while (!TI); // 等待发送完成 TI = 0; // 清除发送完成标志位 } ``` 最后,在主函数中环发送0-9的数据: ```c void main() { init_serial(); // 初始化串行口 unsigned char i; for (i = 0; i <= 9; i++) { send_data(i); // 发送数据 } while (1); // 程序无限环 } ``` 这样,单片机就会通过串行方式2向PC机不断发送0-9的数据,并且采用偶校验,晶振为11.0592MHz波特率9600

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值