【Proteus仿真】51单片机串口输出实验
- 📌相关篇《【Proteus仿真】51单片机Blink点灯实验》
- 🔖Proteus仿真基础实验-串口输出。
- 🌿Proteus
8.12
平台 - 🌿本实验代码基于VSM Studio,采用SDCC编译器。
- 🌿调试串口波特率:9600
- 🎬仿真演示:
⛳头文件使用说明
- ⚡第一次调用STC89.h头文件时,有可能会报错,因为安装后的SDCC自带头文件库中,有些寄存器定义有问题。可以将报错的寄存器注释掉。或者使用
8052.h
头文件。
- 🌿使用
printf()
函数打印调试信息,包含stdio.h
头文件。
int putchar(int data1)
{
SendData(data1);
return data1;
}
- 🌿虚拟串口监视器
📝实验代码
#include <stc89.h>
#include <stdio.h>
#define FOSC 11059200UL
#define BAUD 9600
#define LED P2_1
void uart_init()
{
SCON = 0x50;
TMOD = 0x20;
TH1 = (unsigned char)(((65536 - (FOSC/32/BAUD) )>>8) - 2) ;
TL1 = (unsigned char)(65536- (FOSC/32/BAUD) - 2) ;
TR1 = 1;
}
void SendData(char data1)
{
SBUF = data1;
while (!TI) ;
TI = 0;
}
void SendString(unsigned char *buffer)
{
unsigned char *p = buffer;
while (*p)
{
SendData(*p);
p++;
}
}
int putchar(int data1)
{
SendData(data1);
return data1;
}
void delayms(unsigned int ms)
{
unsigned int x, y;
for (y = ms; y > 0; y--) {
for (x = 227; x > 0; x--);
}
}
void main(void)
{
unsigned char cnt = 0;
uart_init();
SendString("USART test !\ r\n");
while (1)
{
cnt++;
LED = !LED;
delayms(500);
printf("cnt:%d Hello world! \r\n",cnt);
}
}
📚仿真实验文件
链接: https:
提取码: 3ya3