请教:51单片机与PC机串行通信

2019-07-16 06:26发布

这是我画的51单片机与PC机串行通信的原理图,我想实现按下开关S2单片机向PC发送一个(或者一组数据),PC向单片机发送数据时可以在数码管上显示,程序怎么编写,编程不会,还有这个原理图有没有需要改动的地方,如果有做好的也可以发到我的邮箱:chenshengas@163.com    请各位指教  谢谢了
单片机与PC通信.jpg
单片机与PC机通信.zip 下载积分: 积分 -1 分
14.15 KB, 下载次数: 62, 下载积分: 积分 -1 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
chenshengas
1楼-- · 2019-07-16 08:57
 精彩回答 2  元偷偷看……
chenshengas
2楼-- · 2019-07-16 13:16
悲剧了  谁帮我写个程序啊
diangongshi
3楼-- · 2019-07-16 17:06
我这个程序是电脑向单片机发一组数据,用数码管进行显示,跟你的电路不一样,

你看着自己改下,
#include <AT89X52.H>
#include<stdio.h>


unsigned char DisTable[]={0,0,0,0,0,0,0,0};
unsigned char code DuanTable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,
0xF8,0x80,0x90,0x88,0x83,0xc6,0xa1,0xb0,0x8e};
unsigned char code WeiTable[]={
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe
};
unsigned char a,b;
void DisPlay();
void CloseLed();
void receive();
void KeyScan();
void delay(unsigned int m);
void main()
{
    TMOD = 0x20;
    SCON = 0x50;
    TH1 = 0xFD;
    TL1 = TH1;
    PCON = 0x00;
    EA = 1;
    ES = 1;
    TR1 = 1;
  while(1)
  {
    DisPlay();
    KeyScan();
  }
}

void DisPlay()
{
  if(a==8)
  {
    a=0;
  }
  CloseLed();
  P2=WeiTable[a];
  P0=DuanTable[DisTable[a]];
  a++;
  delay(10);
}

void delay(unsigned int m)
{
  while(m--);
}
void CloseLed()
{
  P0=0xff;
}

void receive()interrupt 4
{
  if(RI)
    {
       DisTable[7]=DisTable[6];
       DisTable[6]=DisTable[5];
       DisTable[5]=DisTable[4];
       DisTable[4]=DisTable[3];
       DisTable[3]=DisTable[2];
       DisTable[2]=DisTable[1];   
       DisTable[1]=DisTable[0];
       DisTable[0]=SBUF;
       RI=0;
     }   
}

void KeyScan()
{
  if(P1_4==0)
  {
      SBUF='A';
      while(!TI);
      TI = 0;
  }
}

chenshengas
4楼-- · 2019-07-16 20:12
呵呵 谢谢了
haibing321
5楼-- · 2019-07-16 20:39
好好
sailor_yan
6楼-- · 2019-07-16 21:34
 精彩回答 2  元偷偷看……

一周热门 更多>