单片机与PC计算机通信设计

来源:百度知道 编辑:UC知道 时间:2024/06/22 19:39:53
单片机可以从RS-232串口接收PC计算机来的一组4位10进数,并显示在4位LED数码管显示器上,波特率可选1200、2400、4800、9600,采用奇偶校验。设置一个按键,按下按键时停止接收PC计算机发送的信号,再次按下按键又继续接收。
要求:1)硬件部分包括微处理器(MCU)、单片机与PC计算机接口、键盘、显示等;
2)软件部分包括键盘处理、通信、显示等;
3)用PROTEUS软件仿真实现;
4)用Protel DXP或Proteus画出系统的硬件电路结构图,列出元件清单并说明元件选择及参数选择的依据;画出单片机片内资源分配图;画出软件程序框图;用汇编语言写出程序;写出软件与硬件分工说明

我大学和你做的一模一样。真是惊人的相似啊。

#include <io8535v.h>
#define uchar unsigned char
#define uint unsigned int

uchar Table[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar Send_Data[]={'a','b','c','d'};
uchar Receive_Data[]={0,0,0,0};

void DelayMs(uint i)
{uint j;
for(;i!=0;i--)
{for(j=2000;j!=0;j--) {;}}
}

void Display(uchar *p) //动态显示函数,参数p为待显示的数组名
{uchar i,sel=0x01;
for(i=0;i<4;i++)
{PORTA=sel; //选通最右边的数码管
PORTC=0xff-Table[p[i]]; //送字型码
DelayMs(1); //显示延时
sel=sel<<1; //移位以显示前一位
}
}

void main(void)
{uchar temp,i;
DDRA=0xff;
DDRC=0xff;
PORTA=0xff;
PORTC=0x00;
DelayMs(2000);
PORTC=0xff;
UBRR=51;//9600bps,8.000M,