51单片机可接收PC发送的数据串口通信 Allegro,pads,PCB电路板设计,硬件及芯片资料分享—小北设计

单片机可接收PC发送的数据串口通信

51单片机 by AD,Allegro,pads,PCB设计,电源模块,硬件,stm32,嵌入式,单片机,小北设计
51单片机可接收PC发送的数据串口通信,按下单片机K1按键时,51单片机可向PC发送字符串。在Proteus环境下完成本实验时,需要
先安装Virtual Serial Port Driver和串口调试助手软件。建议在VSPD中将COM4和COM5设为对联端口,在Proteus中设COMPIM
为COM4,在串口助手中选择COM5,然后实现单片机程序与XP下串口助手的通信。
P0口显示0-9数字字符。通过网盘分享的文件:PC与单片机通信数据串口字符串。
链接: https://pan.baidu.com/s/1vZI1OL7UZjAnb2TTWsdNQQ 提取码: 8uu9
/*中断优先级寄存器IP - - - PS PT1 PX1 PT0 PX0
--一无效位。
PS-串行口中断优先级控制位。
PS=1,串行口中断定义为高优先级中断。
PS=0,串行口中断定义为低优先级中断。
PT1一定时器/计数器1中断优先级控制位。
PT1=1,定时器/计数器1中断定义为高优先级中断。
PT1=0,定时器/计数器1中断定义为低优先级中断。
PX1-外部中断1中断优先级控制位。
PX1=1,外部中断1定义为高优先级中断。
PX1=0,外部中断1定义为低优先级中断。
PT0一定时器/计数器0中断优先级控制位。
PT0=1,定时器/计数器0中断定义为高优先级中断。
PT0=0,定时器/计数器0中断定义为低优先级中断。
PX0-外部中断0中断优先级控制位。
PX0=1,外部中断0定义为高优先级中断。
PX0=0,外部中断0定义为低优先级中断。*/
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar shizi[]={0x3F,0x06,0x5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};
//延时
void yan_shi(uint ms)
{
 uchar i;
 while(--ms)
 for(i=0;i<120;i++);
}
//主程序
void main()
{
P0=0xFF;
SCON=0X50;////串口工作SM0=0,SM1=1,REN=1;方式1,REN允许串行接收位
  TMOD=0X20;//M1=1,M0=0   8位自动重装载定时器,当溢出时将TH1存入的值自动重装入TL1
  PCON=0X00;//电源管理寄存器SMOD=0;串口方式1,2,3波特率正常
  TH1=TL1=0XFD;//11.0592MH 9600
TI=0;
EA=1;//EA总中断,
EX0=1;//外部中断允许位
IT0=1;//外部中断0触发方式。
ES=1;//ES串行口中断
IP=0X01;//PX0=1,外部中断0定义为高优先级中断
TR1=1;//RI= 1时,接收串口数据通信数据。
while(1);

}

//51单片机中断

void chuangkao_zhongduan() interrupt 4
{
uchar c;
if(RI==0)return;// RI=1时,接收完成,return:跳出循环
ES=0;//关闭串口中断
RI=0;//清除标志位
c=SBUF;
P0=shizi[c];
ES=1;//打开串口中断
}
//外部中断
void weibu_zhongduan() interrupt 0
{
uchar *s="这是由8051发送的字符串rn";
uchar i=0;
while(s[i]!='�'')
{
SBUF =s[i];
while(TI==0);
TI=0;
i++;
}

}

单片机可接收PC发送的数据串口通信

单片机可接收PC发送的数据串口通信

    Message:

    Name:
    Email:
    Content:
PgUP ...
Allegro,pads,PCB电路板设计,电源模块件及stm32,嵌入式,单片机资料分享—小北设计