写出点亮2盏LED灯的c语言程序

写出点亮2盏LED灯的c语言程序,第1张

单片机的话,如端口上电默认高电平,那直接led一头接电源一头接端口,一个led对应一个端口。

一、简单讲:想要灯亮,就将对应端口置0。反之就是灯灭。

二、详细讲:假设用keil编写,新建工程->选择单片机型号->新建源文件->设置output(点魔术棒图标勾选create hex file)。

我们用P2^0端口连接一个led(led另一端连电源)。先给端口起别名sbit led1=P2^0;之后代码中需要灯亮就写led1=0;即可。(头文件自行导入)。

程序写好,编译后将生成的hex(路径在之前的设置中)写入单片机或加载到仿真电路中运行。

bit LED1;

bit LED2;

LED1=1;

LED2=0;

while (1)

{ delay(2000);

LED1=!LED1;

LED2=!LED2;

}

LED本身只是一种电致发光器件,本质上它是一个二极管,唯一的功能是通过电流时发光(把电能转变成光能)。它是不需要任何“编程”的。

LED需要专用的驱动器芯片来供给电源。部分驱动器芯片是可编程的,通过写入程序,它可以控制LED元件点亮、熄灭或发出不同亮度的光;另外绝大多数驱动芯片带有使能端,这个端口可以与多种单片机、接口电路相连,从而接受来自单片机或其他接口电路的指令来控制LED的发光状态。这时的编程,是对单片机或其他上位机而言的。

流水灯程序是keil的自带例子,你直接跑就是。

void wait (void) { / wait function /

; / only to delay for LED flashes /

}

void main (void) {

unsigned int i; / Delay var /

unsigned char j; / LED var /

while (1) { / Loop forever /

for (j=0x01; j< 0x80; j<<=1) { / Blink LED 0, 1, 2, 3, 4, 5, 6 /

P1 = j; / Output to LED Port /

for (i = 0; i < 10000; i++) { / Delay for 10000 Counts /

wait (); / call wait function /

}

}

for (j=0x80; j> 0x01; j>>=1) { / Blink LED 6, 5, 4, 3, 2, 1 /

P1 = j; / Output to LED Port /

for (i = 0; i < 10000; i++) { / Delay for 10000 Counts /

wait (); / call wait function /

}

}

}

}

闪烁你可以再加几行。

LED的设置程序要用专用的程序控制器,例LED点阵书写显示屏一、任务设计并制作一个基于32×32点阵LED模块的书写显示屏,在控制器的管理下,LED点阵模块显示屏工作在人眼不易觉察的扫描微亮和人眼可见的显示点亮模式下;当光笔触及LED点阵模块表面时,先由光笔检测触及位置处LED点的扫描微亮以获取其行列坐标,再依据功能需求决定该坐标处的LED是否点亮至人眼可见的显示状态(如图1中光笔接触处的深色LED点已被点亮),从而在屏上实现“点亮、划亮、反显、整屏擦除、笔画擦除、连写多字、对象拖移”等书写显示功能。 控制器 32×32 LED 点阵模块 光笔 1.基本要求(1)在“点亮”功能下,当光笔接触屏上某点LED时,能即时点亮该点LED,并在控制器上同步显示该点LED的行列坐标值(左上角定为行列坐标原点)。(2)在“划亮”功能下,当光笔在屏上快速划过时,能同步点亮划过的各点LED,其速度要求2s内能划过并点亮40点LED。(3)在“反显”功能下,能对屏上显示的信息实现反相显示(即:字体笔画处不亮,无笔画处高亮)。(4)在“整屏擦除”功能下,能实现对屏上所显示信息的整屏擦除。 2.发挥部分(1)在“笔画擦除”功能下,能用光笔擦除屏上所显汉字的笔画。(2)在“连写多字”功能下,能结合自选的擦除方式,在30s内在屏上以“划亮”方式逐个写出四个汉字(总笔画数不大于30)且存入机内,写完后再将所存四字在屏上逐个轮流显示。(3)在“对象拖移”功能下,能用光笔将选定显示内容在屏上进行拖移。先用光笔以“划亮”方式在屏上圈定欲拖移显示对象,再用光笔将该对象拖移到屏上另一位置。(4)当环境光强改变时,能自动连续调节屏上显示亮度。(5)当光笔连续未接触屏面的时间超过1~5min时(此时间可由控制器设定),能自动关闭屏上显示,并使整个系统进入休眠状态,此时系统工作电流应不大于5mA。(6)其他。三、说明 1.设计制作时所用LED点阵模块的发光颜色不限。 2.各种功能的切换方式自定,但应力求 *** 作简便。 3.在各种功能的实际 *** 作过程中,必要时可用按键或其他控制方式进行辅助。例如,“连写多字”时,写完一字后用自定义控制方式存入该字并清屏,然后再写下一字。 4.系统应采用5V单电源供电。

#include<reg51h>

unsigned char c,xianshi[]={0xfe,0xfd,0xfb,0Xf7,0Xef,0xdf,0xbf,0X7f, //左移

0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,//右移

0xff,0x55,//闪

0x3f,0xcf,0xf3,0xfc,0xff,0xfc,0xf3,0xcf,0x3f,//两位一起移动

0xff,0xaa};//闪

unsigned int a;

main()

{

unsigned char i;

while(1)

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

{

P1=xianshi[i];

for(a=0;a<30000;a++);

}

}}

以上就是关于写出点亮2盏LED灯的c语言程序全部的内容,包括:写出点亮2盏LED灯的c语言程序、用C语言编写程序,要求实现两盏LED灯交替闪烁,间隔时间为2秒、LED怎么编程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9724864.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存