单片机: 串口向电脑发送数据

题目概述:
串口向电脑发送数据。
编程:
#include<REG52.h>
unsigned char Sec;
void UART_Init()
{
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
TMOD &= 0x0F; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xFD; //设定定时初值
TH1 = 0xFD; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
}
/*
*串口发送一个字节数据
*Byte要发送的一个字节数据
*返回值无
*/
void UART_SendByte(unsigned char Byte)
{
SBUF=Byte;
while(TI==0);
TI=0;
}
void delay(unsigned int xms)
{
unsigned int i,j;
for(i=xms;i>0;i–)
for(j=110;j>0;j–);
}
void main()
{
UART_Init();
while(1)
{
// 单片机电脑每隔一秒发送数据
UART_SendByte(Sec);
Sec++;
delay(1000);
}
}

单片机通过串口电脑发送整型数据的具体步骤如下: 1. 设置单片机串口通信参数,包括波特率、数据位、停止位和校验位等。 2. 将整型数据转换为字符串形式,可以使用sprintf函数或itoa函数等。 3. 将字符串通过串口发送出去,可以使用UART发送函数,如printf函数或UART_Send函数等。 4. 电脑端通过串口接收软件(如串口调试助手)接收数据,将接收到的字符串转换为整型数据即可。 以下是一个基于STC89C52单片机的示例代码(使用printf函数发送数据): ```c #include <stdio.h> #include <intrins.h> #define BAUDRATE 9600 // 串口波特率 #define FOSC 11059200UL // 系统时钟频率 void UART_Init() { // 设置波特率 TMOD &= 0x0F; TL1 = (unsigned char)(256 - FOSC/12/32/BAUDRATE); TH1 = (unsigned char)(256 - FOSC/12/32/BAUDRATE); TR1 = 1; // 设置数据位、停止位和校验位等 SCON = 0x50; ES = 1; // 允许串口中断 EA = 1; // 允许总中断 } void UART_SendChar(char ch) { SBUF = ch; while (!TI); TI = 0; } void main() { int data = 1234; char str[10]; UART_Init(); while (1) { // 将整型数据转换为字符串形式 sprintf(str, "%d", data); // 发送字符串 printf("%s\r\n", str); // 延时一段时间 _nop_(); _nop_(); _nop_(); _nop_(); } } // 串口中断服务程序,可选 void UART_Isr() interrupt 4 { if (RI) { RI = 0; } if (TI) { TI = 0; } } ``` 在电脑端,可以使用串口调试助手等软件接收串口数据,将接收到的字符串转换为整型数据即可。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值