历史上的今天
返回首页

历史上的今天

今天是:2025年11月14日(星期五)

正在发生

2022年11月14日 | STC89C52单片机学习(一)----点亮LED

2022-11-14 来源:csdn

1.通过数组实现led流水灯 

#include

 

int m;

unsigned char code leds[8] = {0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd, 0xfe};

 

void delay(unsigned int i)

{

unsigned int j;

unsigned char k;

 

for(j=i; j>0; j--)

for(k=125; k>0 ;k--);

}

 

int main()

{

while(1)

{

for(m = 0; m < 8; m++)

{

P1 = leds[m];

delay(500);

}

}

 

return 0;

}


  使用 if语句实现led灯的控制,i类似于标志位控制进行循环转移

i = 0;

while(1)

{

P1 = leds[i++];

delay(5000);

if(i == 8) i = 0;

}


2.通过独立按键实现LED灯的闪烁流动

运用独立按键需I/O端口,预先置高,表示作为输入端

#include

 

sbit k1 = P3^4;

 

unsigned int m;

unsigned char code leds[8] = {0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd, 0xfe};

 

void delay(unsigned int i)

{

unsigned int j;

unsigned char k;

 

for(j=i; j>0; j--)

for(k=125; k>0; k--);

}

 

int main()

{

k1 = 1;

while(1)

{

for(m = 0; m < 8; )

{

P1 = leds[m];

delay(500);

 

if(k1 == 0)

{

delay(80);

if(k1 == 0)

m++;

}

}

}

 

return 0;

}



3.外部中断1实现按键闪烁

1).实现部分在中断函数里

#include

 

sbit p3_4 = P3^4;

 

unsigned int m;

unsigned char code leds[8] = {0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd, 0xfe};

 

void delay(unsigned int i)

{

unsigned int j;

unsigned char k;

 

for(j=i; j>0; j--)

for(k=125; k>0; k--);

}

 

int main()

{

EA = 1;

EX1 = 1;

IT1 = 1;

 

p3_4 = 0;

P1 = leds[0];

while(1);

 

return 0;

}

 

void led_key() interrupt 2

{

if(m <= 7)

{

P1 = leds[m++];

delay(500);

//m++;

}

else

		P1 = leds[0];			


}


2)实现部分在主函数中

bit flag;         //标志位

 

 

while(1)

{

for(m = 0; m < 8; )

{

P1 = leds[m];

delay(500);

 

if(flag == 1)

{

delay(80); //去抖 -----中断

if(flag == 1)

m++;

}

}

}

 

 

void led() interrupt 0

{

flag = 1;

}


推荐阅读

史海拾趣

CAMBION公司的发展小趣事

随着国内市场的饱和,CAMBION公司开始将目光投向海外市场。公司制定了详细的国际化战略,通过设立海外研发中心、拓展销售渠道等方式进入国际市场。在国际化过程中,CAMBION公司不仅面临着文化差异、法律法规等挑战,还需要与众多国际知名企业竞争。然而,凭借卓越的技术实力和灵活的市场策略,CAMBION逐渐在国际市场上占据了一席之地。

Bellnix Co Ltd公司的发展小趣事

Bellnix Co Ltd自创立之初,便以技术创新为核心竞争力。在电子元器件制造领域,公司不断投入研发,推出了一系列高性能、低成本的芯片产品。这些产品不仅在国内市场占据了一席之地,还成功打入了国际市场,赢得了众多客户的认可。随着技术的不断积累,Bellnix逐渐在行业内树立起了技术领先的形象,从而实现了公司的快速发展。

Gaomi Xinghe Electronics公司的发展小趣事

背景:随着中国经济的快速发展和消费者对电子产品需求的不断增加,Galaxy公司敏锐地捕捉到这一市场机遇。

行动:在2003年初,Galaxy以缜密的市场调研为基础,全力部署进入大陆市场。同年6月,公司推出了以“影驰”命名的Geforce家族系列产品,迅速吸引了众多游戏发烧友和电子产品爱好者的关注。随后,公司又在多个城市设立了销售和服务网点,为消费者提供更加便捷的产品体验和服务。

成果:经过多年的深耕细作,Galaxy在大陆市场取得了显著成绩,品牌影响力不断增强,市场份额稳步提升。

BRIGHT公司的发展小趣事

BRIGHT公司不仅在电子产品领域取得了成功,还积极拓展酒店业务。他们成立了伯瑞特酒店集团,并在全国范围内开设了多家酒店。这些酒店以高品质的服务和独特的文化特色赢得了广大消费者的喜爱。其中,宁波伯瑞特酒店荣获了全国钻级酒店评定中的五钻酒家称号,千岛湖伯瑞特度假酒店也获得了金鼎特色文化主题饭店的荣誉。这些荣誉的获得不仅彰显了BRIGHT公司在酒店业务方面的实力,也为其未来的发展奠定了坚实的基础。

DEWALT公司的发展小趣事

在第二次世界大战期间,DEWALT公司面临了巨大的挑战。由于战争的影响,许多原材料和零部件供应中断,生产受到严重影响。然而,DEWALT公司凭借自身的技术实力和创新能力,成功克服了这些困难。公司还积极为军队提供所需的电动工具产品,为战争胜利做出了贡献。这些经历使DEWALT公司更加坚定了技术创新和品质控制的信念。

AKM [Asahi Kasei Microsystems]公司的发展小趣事

DEWALT公司非常注重产品品质和用户体验。公司建立了严格的质量控制体系,确保每一件产品都符合高质量标准。同时,DEWALT还积极倾听用户反馈,不断改进产品和服务。这些努力使DEWALT公司的电动工具在市场上获得了广泛认可,并赢得了大量忠实用户。

问答坊 | AI 解惑

C语言编译过程总结详解(转载)

本来打算把编译部分的内容总结一下,偶然看到一位网友的文章写得很全面,故此稍加整理,以作备忘。         C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需 ...…

查看全部问答>

HB204160液晶

请问谁做过HB204160液晶的驱动程序???我用的是并口,最好是C程序。…

查看全部问答>

关于sigma的不是问题的问题!!

为什么sigma的程序都是(包括大部分变量)都是rm开头,rm是什么意思? 例如:typedef struct {     RMuint8   Alpha;     RMuint8   Y;     RMuint8   Cb;     RMuint ...…

查看全部问答>

跪求!在线等!!关于Vxworks的问题!

          公司准备上Vxworks,小弟以前是搞硬件开发的,现在要去搞嵌入式!    不知做Vxworks方面的开发需要哪些硬件环境和软件环境?要买这个系统的话    价格是多少?开发工具有哪些,价格又是多少?             ...…

查看全部问答>

在超级终端里用AT指令实现GPRS上网的问题

我刚刚接触AT指令,在研究如何在超级终端里实现手动控制实现上网 我是初级用户,好像还没有分可送,只能先在心中感谢各位大侠了,以后有了分再报答。 我尽量把问题描述的清楚一点,请耐心看,呵呵 我用的模块是WAVECOM的Q24PLUS Q24PL002 ,产品 ...…

查看全部问答>

怎样为pci寻找地址映射

怎样读取pci bar0中的地址,并且映射成可以使用的虚拟地址?2.6的内核。ioremap?ioportremap?dev_resource_start?…

查看全部问答>

LM311峰值检测电路(TI)

   最近在做一个有关峰检测的电路,网上一搜就有,非常经典的就是那个LM311,刚好手头有啊!就按照datasheet搭了一个,测试后不行,然后我就怕是搭的不稳定就焊了一个电路,但是还是不行,我还是不死心,就按照结构图,运放+三极管用其他 ...…

查看全部问答>

EasyARM8962板子遇到的问题

开发板是EasyARM8962,仿真器是LM LINK,开发环境是IAR5.11用了一段时间都是没问题的,但忽然出了这个问题:The debugging session could not be started.Either the debugger initialization failed, or else the file “F:\\****\\BitBand.out” ...…

查看全部问答>

请问stm32芯片自身的FLASH是非易失性存储器么

请问各位大侠stm32芯片自身的FLASH是非易失性存储器么 ,如果把数据存于其中下次开机后还会有么?读写速度快么?…

查看全部问答>

PCB 中没有CES

我新安装的是MentorExpedition7.9.3,  打开Expedition PCB  后   ,打开一块板子,但是发现Expedition PCB  软件上面的CES是灰色的 ,不能使用,这是怎么回事啊???、、、、、哪位高手能帮忙解决一下啊?谢谢啦! ...…

查看全部问答>