51单片机生成一个计数到1000的串口通信
时间: 2024-02-06 16:10:53 浏览: 97
以下是一个基于51单片机的计数到1000并通过串口通信输出的代码,使用的是STC89C52芯片和UART通信模块:
```c
#include <reg52.h>
#define FOSC 11059200L
#define BAUD 9600
#define TIMER1_RELOAD (65536UL - (FOSC / 4 / BAUD))
sbit TX = P3^1;
void InitUART() {
TMOD &= 0x0F;
TMOD |= 0x20;
SCON = 0x50;
TH1 = TIMER1_RELOAD / 256;
TL1 = TIMER1_RELOAD % 256;
TR1 = 1;
}
void SendData(unsigned char dat) {
SBUF = dat;
while(!TI);
TI = 0;
}
void main() {
unsigned int i = 0;
InitUART();
while(1) {
if(i < 1000) {
SendData(i / 100 + '0');
SendData(i % 100 / 10 + '0');
SendData(i % 10 + '0');
SendData('\n');
i++;
}
}
}
```
该代码中,使用了定时器1来控制串口通信的波特率,通过`InitUART()`函数进行初始化。`SendData()`函数用于发送数据,将数字转换成字符并逐个发送出去。在主函数中,通过循环实现计数到1000并输出。
阅读全文