【Proteus仿真】51单片机串口输出实验

【Proteus仿真】51单片机串口输出实验

  • 📌相关篇《【Proteus仿真】51单片机Blink点灯实验
  • 🔖Proteus仿真基础实验-串口输出。
  • 🌿Proteus8.12平台
  • 🌿本实验代码基于VSM Studio,采用SDCC编译器。
  • 🌿调试串口波特率:9600
  • 🎬仿真演示:
    在这里插入图片描述

⛳头文件使用说明

  • ⚡第一次调用STC89.h头文件时,有可能会报错,因为安装后的SDCC自带头文件库中,有些寄存器定义有问题。可以将报错的寄存器注释掉。或者使用8052.h头文件。
    在这里插入图片描述
  • 🌿使用printf()函数打印调试信息,包含stdio.h头文件。
int putchar(int data1)
{
	SendData(data1);
 return data1;

}
  • 🌿虚拟串口监视器
    在这里插入图片描述

📝实验代码

/* Main.c file generated by New Project wizard
 *
 * Created:   周六 5月 20 2022
 * Processor: 80C52
 * Compiler:  SDCC for 8051
 */

//#include <8052.h>
#include <stc89.h>
#include <stdio.h>

#define FOSC 11059200UL      //System frequency
#define BAUD 9600           //UART baudrate

#define LED  P2_1
void uart_init()
{
    SCON = 0x50;
    TMOD = 0x20;
 //  TH1 = 0xFD;//波特率9600
 //   TL1 = 0xFD;
	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");
    // Write your code here
    while (1)
		{
		cnt++;
	   LED = !LED;//状态翻转
    delayms(500);
	printf("cnt:%d Hello world! \r\n",cnt);
//	SendString("Hello world! \r\n");

		}
}

📚仿真实验文件

链接: https://pan.baidu.com/s/1MGWgNB7wCGRrf8PvIIhdSQ
提取码: zqtr
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值