我想问下51单片机开发板上如何将按键的数据作为向pc机发送的数据。求程序!若能帮助解决不胜感激!

如果能提供按键程序就更好了!
以下是我的毕设题目!
本题目要求PC通过UART与51单片机通讯,控制51单片机端的发光二极管的亮灭。 并且可以实现单片机与PC机端的文件传输。传输出错时有语音提示。 1. 51单片机通过UART与PC通讯。 2. PC端可以用现成的串口工具,也可以自己编程实现PC端的串口收发。 3. 从PC上发送特定的数可以让单片机控制发光二极管亮灭。 4. 可以实现在单片机和PC间文件的传送。 5. 传输出错时有语音提示

现有51开发板,上头有6个数码管,max232,有按键,有灯,用89s52单片机
以下是我找的一些子程序后编的一部分:
#include <Reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code Tab[10]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};
//数码管显示0-9的代码
unsigned char i; //储存中断次数
sbit S0=P1^0;
sbit S1=P1^1;
sbit S2=P1^2;
sbit S3=P1^3;
sbit S4=P1^4;
sbit S5=P1^5;

/****************延时函数**********/
void delay(uint m)
{uint i;
for(i=0;i<m;i++);
}

/********数码管显示函数:入口参数:k,出口参数:无*********/
void display(uchar k)
{
P2=0xfe; //即P2=1111 1110B,P2.0引出低电平数码管DS0接通电源
P0=Tab[k/100000];//显示十万位
delay(300);
P2=0xfd; //即P2=1111 1101B,P2.1引出低电平数码管DS1接通电源
P0=Tab[(k%100000)/10000]; //显示万位
delay(300);
P2=0xfb; //即P2=1111 1011B,P2.2引出低电平数码管DS2接通电源
P0=Tab[(k%10000)/1000]; //显示千位
delay(300);
P2=0xf7; //即P2=1111 0111B,P2.3引出低电平数码管DS3接通电源
P0=Tab[(k%1000)/100]; //显示百位
delay(300);
P2=0xef; //即P2=1110 1111B,P2.4引出低电平数码管DS4接通电源
P0=Tab[(k%100)/10]; //显示十位
delay(300);
P2=0xdf; //即P2=1101 1111B,P2.5引出低电平数码管DS4接通电源
P0=Tab[k%10]; //显示个位
delay(300);
P2=0xff; //关闭所有数码管
}

/*************单片机向pc机发送一个字节数据函数************/
void Send(uchar dat)
{
SBUF=dat;
while(TI==0)
;
TI=0;
}

/***************单片机接受pc机一个字节函数*******************/
unsigned char Receive(uchar dat)
{
while(RI==0) //只要接收中断标志位RI没有被置"1"
; //等待,直至接收完毕(RI=1)
RI=0; //为了接收下一帧数据,需将RI清0
dat=SBUF; //将接收缓冲器中的数据存于dat
return dat;
}

另外如果能有发送出错的程序就更好了!

单片机接收数据要在中断里处理,单独的函数不行,可以参考单片机教程。我好久没玩51了,对寄存器都忘得差不多了。但是是步骤还是清楚的,首先要对串口初始化,打开串口,设置波特率,打开全局中断,串口就OK了。按键用只要扫描IO口,读读得高低电平即可,很简单。你网上收一下郭天祥的视频教程,讲的很详细,代码也有,一个星期应该可以搞定,只要你用心学。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-28
增加一个定时ping机制,如果超时没有收到ping就报错。追问

是这么回事,我还有一个问题。比如我开发板上有6个数码管,还有6个按键。我现在要用按键控制数码管的显示,比如按3下就显示3。现在我输入用按键输入123456然后发送给pc机要pc机能显示这个数!这个怎么编?按键不只6个,当然还有很多可以用!

追答

定一个发送键,或者定时发送更新数据给PC。

追问

能给个程序吗!
我是想问怎么写“扫描得到的按键值”的程序和定一个发送键的程序!网上的都要注册才能下载。

追答

这个-----
百度下“键盘扫描程序”吧

第2个回答  2012-03-28
可以通过RS232串口通信 将获得的数据传输给PC机
相似回答