标题:
单片机与PC机串口通讯Proteus仿真程序
[打印本页]
作者:
1236222
时间:
2020-12-11 20:59
标题:
单片机与PC机串口通讯Proteus仿真程序
单片机与PC机串口通讯仿真,包含程序和仿真图
51hei.png
(18.18 KB, 下载次数: 100)
下载附件
2020-12-12 00:11 上传
单片机源程序如下:
/*************** writer:shopping.w ******************/
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar Receive_Buffer[101];
uchar Buf_Index = 0;
uchar code DSY_CODE[]=
{
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00
};
void Delay(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
void main()
{
uchar i;
P0 = 0x00;
Receive_Buffer[0]=i;
SCON = 0x50;
TMOD = 0x20;
PCON = 0x00;
TH1 = 0xfd;
TL1 = 0xfd;
EA = 1;
EX0 = 1;
IT0 = 1;
ES = 1;
IP = 0x01;
TR1 = 1;
while(1)
{
for(i=0;i<100;i++)
{
if(Receive_Buffer[i]==-1)
break;
P0 = DSY_CODE[Receive_Buffer[i]];
Delay(200);
}
Delay(200);
}
}
void Serial_INT() interrupt 4
{
uchar c;
if(RI==0)
return;
ES = 0;
RI = 0;
c = SBUF;
if(c>='0' && c<='9')
{
Receive_Buffer[Buf_Index]=c-'0';
Receive_Buffer[Buf_Index+1]=-1;
Buf_Index = (Buf_Index+1)%100;
}
ES = 1;
}
void EX_INT0() interrupt 0
{
uchar *s = ("Receiving From 8051...\r\n");
uchar i = 0;
while(s[i]!='\0')
{
SBUF = s[i];
while(TI == 0);
TI = 0;
i++;
}
}
复制代码
所有资料51hei提供下载:
单片机与PC机串口通讯仿真.zip
(35.02 KB, 下载次数: 91)
2020-12-11 20:59 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
青街古城
时间:
2021-2-8 15:29
有没有更加详细的注释呢
作者:
2676681386
时间:
2021-3-3 19:19
开启仿真啥都没有
作者:
51hei团团
时间:
2021-3-4 15:23
2676681386 发表于 2021-3-3 19:19
开启仿真啥都没有
肯定没有啊,你看这个函数void Serial_INT() interrupt 4,串口中断以后 置一才有显示,,你得向pc发送一个字符才显示
作者:
wangwing
时间:
2021-12-24 17:02
仿真时,向PC发送,PC收到“D5 E2 CA C7 D3 C9 38 30 35 31 B7 A2 CB CD B5 C4 D7 D6 B7 FB B4 AE 21 0D 0A ”。从PC发送时,一次只能发一个ASCII,如41,则VT1显示“A"
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1