历史上的今天
返回首页

历史上的今天

今天是:2025年04月02日(星期三)

正在发生

2021年04月02日 | C51单片机与PC串口通信的单片机部分程序

2021-04-02 来源:eefocus

注意波特率是9600

功能:电脑通过串口给单片机发一个字节,单片机收到后又给电脑发回去


、#include

#define uchar unsigned char

#define uint unsigned int


uint temp;

bit flag;

void init_ser1();

main()

{

init_ser1();

while(1)

{

if(RI==1)

{

P1=SBUF;

RI=0;

}

if(flag==1)

{

ES=0;//暂时关闭接收

flag=0;

SBUF=temp;

while(!TI);//等待发送完毕

TI=0;

ES=1;

}

}

}


void sel() interrupt 4

{

RI=0;

P1=SBUF;

temp=SBUF;

flag=1;

}


void init_ser1()

{


REN=1;

SM0=0;

SM1=1;

TMOD=0x20;

TH1=0xFD;

TL1=0xFD;

EA=1;

TR1=1;

ES=1;

}





//======声明======

#include

unsigned char Read_Keyboard();

void RS232_SendData(unsigned char Sdata);

//======延迟函数======

void delay(unsigned int t)

{

for(;t>0;t--); //延迟循环

}

//======UART初始化函数=====

void RS232_Init()

{

SCON=0x50; //0101 0000 UART工作模式1,REN=1(本位为串行接收启用位1:开始接收 0:停止接收)

TMOD=0x20; //0010 0000 Timer1 工作模式2

PCON=0x80; //SMOD1=1

TH1=0xfa; //波特率9600 bps at 11.0592MHZ

TL1=0xfa; //波特率9600 bps at 11.0592MHZ

TR1=1;

}

//======主函数============

void main()

{

unsigned char Keyboard_Status=0xff; //定义按键

RS232_Init(); // 初始化UART

while(1)

{

Keyboard_Status=Read_Keyboard()|0xf0; //读取按键值(屏蔽高4位)

//

switch(Keyboard_Status)

{

case ~0x01:RS232_SendData('A');break;

case ~0x02:RS232_SendData('B');break;

case ~0x04:RS232_SendData('C');break;

case ~0x08:RS232_SendData('D');break;

default:RS232_SendData('X');break;

}

}

}

//===========发送数据函数========

void RS232_SendData(unsigned char Sdata)

{

SBUF=Sdata; //发送数据

while(TI==0); //等待发送结束

TI=0; //清除发送结束标志

}

//========读取按键函数==========

unsigned char Read_Keyboard()

{

unsigned char Keys_Value; //定义按键变量

unsigned char Keys_Temp;

do

{

P1=0xff; //P2口置高,准备读取按键状态

Keys_Temp=P1; //读取按键状态

delay(150); //消抖延时

P1=0xff; //P2口置高,准备读取按键状态

Keys_Value=P1; //读取按键状态

}

while(Keys_Value!=Keys_Temp); //如果读状态不一致,则重复读取键值

return Keys_Value; //返回按键状态值

}


推荐阅读

史海拾趣

Crystek公司的发展小趣事

随着科技的快速发展和市场的不断变化,Crystek公司意识到只有不断创新才能保持竞争优势。因此,公司加大了研发投入,积极引进先进技术,推出了一系列具有创新性和竞争力的新产品。其中,温度补偿晶体振荡器(TCXO)和压控晶体振荡器(VCXO)等产品的推出,不仅提升了Crystek公司的技术实力,也进一步巩固了其在行业中的领先地位。同时,公司还不断优化生产工艺和质量控制体系,确保产品的高性能和可靠性。

Abundance Enterprise Company公司的发展小趣事

随着电子行业的快速发展,Abundance Enterprise Company不断追求技术创新和产品升级。公司投入大量研发资源,成功开发出一系列具有自主知识产权的新型电子元器件,不仅提高了产品的性能和质量,还降低了生产成本。这些创新产品在市场上获得了广泛认可,为公司的快速发展提供了强有力的支撑。

Galaxy Semi-Conductor Co Ltd公司的发展小趣事

飞虹光电科技集团在转型过程中,相继成立了多家高科技企业,如山西飞虹微纳米光电科技有限公司、山西飞虹半导体照明有限公司等。这些企业之间形成了良好的协同发展机制,共同推进半导体激光器和LED材料的研发与应用。通过产学研一体化模式,飞虹系列企业依托多所高等院校技术平台,不断提升自身研发实力和市场竞争力,为中国电子行业的发展贡献了重要力量。

Echelon公司的发展小趣事

随着公司业务的不断发展,Echelon开始积极拓展全球市场。公司通过在海外设立分支机构、与当地企业合作等方式,将LonWorks技术和能源管理服务方案推广至全球各地。同时,Echelon还积极参与国际能源管理标准的制定和推广工作,提升了公司在国际市场的知名度和影响力。

Excelics [Excelics Semiconductor, Inc.]公司的发展小趣事

随着环保意识的不断提高,绿色生产成为了电子行业的发展趋势。Excelics Semiconductor积极响应这一趋势,将绿色环保理念融入到了公司的生产和经营中。他们采用了环保材料和清洁能源,减少了生产过程中的污染排放。同时,他们还积极参与环保公益活动,为推动电子行业的绿色发展贡献了自己的力量。

请注意,以上故事均为虚构内容,旨在展示一般电子行业发展过程中可能遇到的情况和挑战。

General Electric Company公司的发展小趣事
内部集成了频率补偿机制,确保在高频信号下电路的稳定性。

问答坊 | AI 解惑

开关电源可靠性设计研究

  摘要:对影响军用PWM型开关稳压电源可靠性的因素作出较为详细的分析比较,并从工程实际出发提出一些提高开关电源可靠性的建议。 关键词:开关电源可靠性   电子产品,特别是军用稳压电源的设计是一个系统工程,不但要考虑电源本身参数 ...…

查看全部问答>

设计揭秘:Moto Fone手机拆解

尽管大众关注的热点聚焦于高端移动设备,比如苹果公司的iPhone,但低端市场同样是热潮涌动,至少在技术领域是这样。摩托罗拉公司的F3 Fone就是这种入门级产品的一个很好例子。为了确认这一领域中的技术创新水平,Portelligent公司在这款双频GSM手机 ...…

查看全部问答>

精品分享:单片机控制步进电机系统实例(原理图+源程序)

原程序用C编写。原理图是用PROTEL绘制。 系统的电路原理图分两部分:1是由ATmel公司的 AT89C52实现的单片机及键盘电路原理图。二是由 STK672-040芯片实现的脉冲分配与驱动电路原理图。 觉得不错的朋友别忘记回帖哦。 [ 本帖最后由 cooljewel 于 ...…

查看全部问答>

我也遇难题了

那里有单片机治疗仪的程序,请各位大哥哥帮忙。多谢了!…

查看全部问答>

红外遥控MP3小音箱

红外遥控MP3小音箱,遥控板自制,使用锂电池,USB口充电,可以遥控关机、调音量、静音等功能,所有功能既可以用遥控器控制,也可以用音箱上的按键控制,MCU使用at89c2051,音量调节使用美信的数字电位器。 感兴趣联系owlcjy@163.com…

查看全部问答>

山体滑坡检测中的液位传感器和倾角传感器

山体滑坡的监测主要依靠两种传感器的作用:液位传感器和倾角传感器。在山体容易发生危险的区域,沿着山势走向竖直设置多个孔洞,每个孔洞都会在最下端部署一个液位传感器,在不同深度部署数个倾角传感器。由于该地区的山体滑坡现象主要是由雨水侵蚀 ...…

查看全部问答>

S3C2440不用的管脚处理问题

S3C2440有很多管脚没有用到,默认是GPIO脚。 有个寄存器PORT PULL-UP REGISTER (GPBUP-GPJUP) The port pull-up register controls the pull-up resister enable/disable of each port group. When the corresponding bit is 0, the pull-up resi ...…

查看全部问答>

求EVC3.0的安装ID号,,送分了!!!

有一项目要用到EVC,,我想用老版3.0在微软的下载中心下了个, 但找不到Product Number and User ID(共20位)..谁知道啊...…

查看全部问答>

随便说说,一家之言……

       我马上就进入大三了,再过三四个月就要走向社会,不过在这之前好像还有个选择, 那就是考研,说实话,要考研的话,只要想考肯定是能考上的,不过,现在正在迷 茫中……       & ...…

查看全部问答>

fatfs移植困惑

在main函数中调用f_open()函数时,返回值为FR_NO_FILESYSTEM的错误,这个怎么修改的,是否需要修改ffconf.h里的宏定义的呢?…

查看全部问答>