历史上的今天
返回首页

历史上的今天

今天是:2025年08月12日(星期二)

正在发生

2021年08月12日 | 51单片机心形灯实现串口通信编程

2021-08-12 来源:eefocus

在这里插入图片描述
心形灯原理图
在这里插入图片描述

编译软件:Keil uVision5

(如有需要可点此链接下载:https://download.csdn.net/download/qq_36931762/11343174)

单片机程序下载软件:STC-ISP

(如有需要可点此链接下载:https://download.csdn.net/download/qq_36931762/11343157)


程序代码:

灯状态处于0亮1灭

发送方:

#include


sbit k1=P3^2;

sbit k2=P3^3;

sbit k3=P3^4;

sbit k4=P3^5;


#define LED1  P0

#define LED2  P2


void UsartInit(){

SCON=0x50;

TMOD=0x20;

PCON=0x80;

TH1=0xF4;

TL1=0xF4;

ES=1;

EA=1;

TR1=1;

}


void delay(unsigned int ms)

{

unsigned int i,j;

for(i=0;i for(j=0;j<110;j++);

}



unsigned char keyscan(void){

unsigned char key='.';

if (k1==0)

{

delay(1);

if(k1==0)

{

key='1';

while(!k1);

}

}

if (k2==0)

{

delay(1);

if(k2==0)

{

key='2';

while(!k2);

}

}

if (k3==0)

{

delay(1);

if(k3==0)

{

key='3';

while(!k3);

}

}

if (k4==0)

{

delay(1);

if(k4==0)

{

key='4';

while(!k4);

}

}

return key;

}


void Tras(unsigned char key)

{

SBUF=key;

while(!TI);

TI=0;

}


void main()

{

unsigned char key;

UsartInit();

while(1)

{

key=keyscan();

if(key!='.')

{

Tras(key);

key='.';

}

}

}


接收方:


#include

#define uchar unsigned char;

#define uint unsigned int;


uchar receiveData;

uchar flag;

uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};

sbit LED17=P3^6;

void UsartInit(){

SCON=0x50;

TMOD=0x20;

PCON=0x80;

TH1=0xF4;

TL1=0xF4;

ES=1;

EA=1;

TR1=1;

}


void Delay(unsigned int a){

unsigned char b;

for(;a>0;a--){

for(b=110;b>0;b--);

}

}


void AllOn(){

P0=0x00;

P2=0x00;

LED17=0;

}


void AllDown(){

P0=0xff;

P2=0xff;

LED17=1;

}


void RFlow(){

int i;


for(i=0;i<=7;i++){


P2=table[i];

Delay(300);

}

P2=table[8];

for(i=7;i>=0;i--){

P0=table[i];

//P2=table[i];

Delay(300);

}

P0=table[8];

LED17=0;

Delay(300);

LED17=1;

}


void LFlow(){

int i;


for(i=0;i<=7;i++){

P0=table[i];

//P2=table[i];

Delay(300);

}

P0=table[8];

for(i=7;i>=0;i--){

//P0=table[i];

P2=table[i];

Delay(300);

}

P2=table[8];

LED17=0;

Delay(300);

LED17=1;

}

void main(){

UsartInit();

while(1)

{

switch(receiveData)

{

case '1': AllOn();break;

case '2': AllDown();break;

case '3': LFlow();break;

case '4': RFlow();break;

default:break;

}

}

}



void Usart() interrupt 4{

receiveData=SBUF;

RI=0;

P0=0xff;

P2=0xff;

LED17=1;

}

推荐阅读

史海拾趣

ECLIPTEK公司的发展小趣事

ECLIPTEK公司自创立之初就专注于高精度电子元件的研发与生产。面对激烈的市场竞争,公司不断投入研发资源,推出了一系列具有创新性的产品,如高精度时间同步模块和低功耗传感器。这些产品凭借其卓越的性能和可靠性,迅速在市场上赢得了良好的口碑,使ECLIPTEK成为电子元件行业的佼佼者。

GC Electronics公司的发展小趣事
在安装完成后,进行调试测试,确保报警电路能够在水量不足或水温异常时准确报警。
EasySync公司的发展小趣事

EasySync公司成立于XXXX年,由一群热衷于同步技术的电子工程师创立。在初创期,公司面临着资金短缺、市场竞争激烈以及技术难题等挑战。然而,创始人们凭借对技术的热爱和对市场的敏锐洞察,不断研发新产品,优化同步算法,逐渐在市场上获得了认可。

ANSHAN [Anshan Suly Electronics]公司的发展小趣事

随着产品质量的不断提升和市场需求的不断扩大,ANSHAN公司开始积极拓展国内外市场。公司通过与国内外知名企业建立合作关系,参加国际电子产品展览会等方式,不断提升品牌知名度和影响力。同时,公司还注重售后服务体系建设,为客户提供全方位、高效的服务支持。这些举措有效提升了公司的市场竞争力,使ANSHAN成为电子行业中备受瞩目的品牌。

DILABS公司的发展小趣事

面对数字化浪潮的冲击,DILABS积极拥抱变革。他们加大了对人工智能、物联网等前沿技术的研发投入,推动公司向数字化转型。同时,DILABS还积极参与行业标准的制定和推广工作,为电子行业的未来发展贡献自己的力量。展望未来,DILABS将继续秉承创新、品质、环保和数字化的理念,为全球客户提供更加优质、高效的电子产品和服务。

Amaze Electronics Pte Ltd公司的发展小趣事

在追求经济效益的同时,Amaze Electronics也积极承担社会责任,注重环保和可持续发展。公司致力于开发环保型电子产品,采用环保材料和节能技术,减少产品对环境的影响。此外,公司还积极参与环保公益活动,推动社会对环保问题的关注和行动。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。


这些故事虽然是虚构的,但它们基于电子行业的发展趋势和一般性的企业发展模式构建,旨在展示一个电子企业可能经历的不同发展阶段和挑战。请注意,这些故事并不针对任何特定的公司或事件,仅作为参考和启发。

问答坊 | AI 解惑

转载:60年后的电梯,祖国叫你一定要节能!!

本帖最后由 paulhyde 于 2014-9-15 09:11 编辑 如果让你来设计未来的电梯,你会从什么角度入手?酷炫的外观、创意的结构、非凡的体验还是绿色环保的特性? 我一直在关注“60年后的电梯”网络创意设计大赛,是快速电梯和视觉同盟合办的。最近发现 ...…

查看全部问答>

Zigbee的MAC地址和电脑的MAC地址有什么区别?

Zigbee的MAC地址64位 电脑的MAC地址48位 他们之间有什么联系和区别?…

查看全部问答>

求一个wince下的调试工具,像windbg那样的

如题 ,最好有成熟的教程或文档,如果有办法让windbg调试wince程序,感激赐教…

查看全部问答>

OV7620问题

谁知道OV7645FB OV7620 这两个传感器 的区别?? 它们接口相同吗?不同请详细介绍下 O(∩_∩)O~ 如果用OV7620的代码做参考去移植OV7645FB 修改大吗?…

查看全部问答>

请问我会vb ,c# 可以学习plc吗?

windows和web的程序都做过,但不懂plc(完全不懂),请问能学吗?难度有多大?如何开始?谢谢!…

查看全部问答>

我把仿真版的78m05改为7533,rlink就连不上了

                                 刚开始我的板还连的上,或有时掉电复位一下也可以,但最近它就是不干活了…

查看全部问答>

STM32的ADC测试还算不错,可惜没有差分通道(附图)

图片是实际的采集数据板子是英蓓特的DEMO板;程序是随机的ADC目录下的程序,硬件设置没动,修改了输出方式,增加了过采样设置,连续累加4096次ADC结果,但是除以256,相当于扩展了16倍,使输出数据打到了16位,而不是原来的12位。由于每秒256 ...…

查看全部问答>

求助

485芯片中与430RXD相连的管脚在板子断电情况下有66mv的电压,请问这种情况下430还能收到PC发过来的数据吗? PS:430TXD管脚的电压值为0 [ 本帖最后由 zzbaizhi 于 2012-3-9 16:40 编辑 ]…

查看全部问答>

DA芯片的基准电压大家一般都用什么芯片来提供?

DA芯片的基准电压大家一般都用什么芯片来提供?…

查看全部问答>

诚心求购一块诺基亚5230手机屏(显示屏)标题要长。。。。。。。。

昨天不小心把诺基亚5230手机屏搞坏了。哪位有手机坏的,屏是好的买给小弟。非常感谢。。。站内PM或跟贴。辛苦了…

查看全部问答>