很简单的一个串口应用的小程序。主要功能是利用上位机,通过串口发送特定指令1-8的数字,来操控MCU进行动作,完成开关LED灯的目的。1-8的数字对应1-8个LED灯。同一时间只有一个LED灯被打开。
此代码在protues7.5下测试通过。用到了串口助手,虚拟串口serialnull软件,并虚拟了COM3,COM4,MCU使用的是COM3,串口助手使用的是COM4。
重要:MCU不能直接输出中文。特定指令1-8为数字,发送给MCU后,保存为字符,并不是立即数。所以case 这里写法为'1' 需要单引号。否则得不到相关结果。
------------------------------------------------------------------
#include <reg51.h>
#include <stdio.h>
#include <intrins.h>
unsigned char flag; //标志位,用来判断是否进入RXD中断
unsigned char data_temp; //SBUF数据转存
void init() //串口,波特率初始化9600bps
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;