No.71505 作者:fengjian99 邮件:gj_92839@163.com ID:109039 登陆:21次 文章数:33篇 最后登陆IP:113.97.226.101 最后登陆:2010/10/26 15:08:32 注册:2008/4/24 14:26:22 财富:296 发帖时间:2009/6/22 17:29:04 发贴者IP:116.24.57.63 标题:fengjian99:[原创]51单片机与PC机串口通信 摘要:No.71505[原创]51单片机与PC机串口通信 单片机P2口接8只LED灯,P3.2~P3.3引脚连接有K1和K2共2个按键,使用单片机串行口与PC机通信。 1)由PC机控制单片机的P2口,将PC机送出的数以二进制形式显示在LED灯上; 2)按下按键K1向PC机发送数字0x55,按下K2向PC机发送数字0xAA。 源程序如下: #define uchar unsigned char #include "string.h" #include "reg51.h" unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90, 0x08,0x03,0x46,0x21,0x06,0x0e}; //十六进制-7段译码表 void mDelay(unsigned int DelayTime) //延时函数 { unsigned char j=0; for(;DelayTime> 0;DelayTime--) //延时循环 { for(j=0;j <125;j++) {;}}} void SendData(uchar Dat) //发送函数 { uchar i=0; SBUF=Dat; //发送Dat while(1) { if(TI) //如果发送中断标志为1,则等待, { TI=0; break; } //否则清除发送中断标志 }} uchar Key() //按键处理函数 { uchar Kvalue; //声明键值函数 P3|=0x3e; //中间4位置高电平 0011 1101 if((Kvalue=P3|0xe3)!=0xff) //如果按键按下 { mDelay(10); //延迟时间函数 if((Kvalue=P3|0xe3)!=0xff) //如果按键还在按下状态 { for(;;) //等待 if((P3|0xe3 ......
>>返回讨论的主题
|