主页 > 微评测 >C语言编程控制LED灯亮灭

C语言编程控制LED灯亮灭

作者: 时间:2020-07-04 145° 微评测
C语言编程控制LED灯亮灭
首先要看Led灯和单的连接情况,如果亮灭,只需要看单片机端口控制即可,关键是配置端口的DDRx方向寄存器和PORTx数据寄存器,比如端口A的0引脚控制一个灯,要配置它的输出高电平或是低电平以达到控制灯的亮灭,那就
灯亮:
DDRA |= BIT(0); //输出
PORTA |= BIT(0);//高电平
灯灭:
DDRA |= BIT(0); //输出
PORTA &= ~BIT(0);//低电平
其余的就看你电路如何连接的,每个端口寄存器的每一位控制一个引脚,你可以查查芯片的数据手册,上边有个表格的。

如果你要控制灯的亮暗程度,选择使用PWM输出来控制,需要看定时计数器。如果你LED的接口一个低电平,即0,灯就会亮,给一个高电平,1,就会灭。如果要一闪一闪的,只需给亮和灭的中间加延时,控制亮灭次数,可以使用一个循环。这样的题最好自己做,不要依赖高手,那样你好会很快成为高手的。
当然,做的过程有什么问题可以提出。进入主函数后
main()
{
whin(1)
点亮灯;
延时;
灭灯;
再延时;
}本回答被提问者采纳
三个led灯循环闪烁编程
TIMES EQU 30H
LED EQU 31H
FLAG BIT 00H
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV SP,#5FH
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
SETB ET0
SETB EA
CLR FLAG
LOOP:
MOV LED,#0FEH
MOV R2,#8
LOOP1:
MOV P0,LED
JNB FLAG,$
MOV A,LED
RL A
MOV LED,A
CLR FLAG
DJNZ R2,LOOP1
MOV LED,#0FEH
MOV R2,#8
LOOP2:
MOV P0,LED
JNB FLAG,$
MOV A,LED
RL A
RL A
MOV LED,A
CLR FLAG
DJNZ R2,LOOP2
MOV LED,#0FCH
MOV R2,#7
LOOP3:
MOV P0,LED
JNB FLAG,$
MOV A,LED
RL A
MOV LED,A
CLR FLAG
DJNZ R2,LOOP3
LJMP LOOP
T0ISR:
CLR TR0
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
INC TIMES
MOV A,TIMES
CJNE A,#40,T0E
SETB FLAG
T0E:
RETI
END汇编!威武。
现在生产LED灯编程时多用于什么语言?
C语言,单片机基本都是C语言,汇编太麻烦了,和硬件有很大的关系,你得知道那些寄存器什么的,还有栈,标志位什么的,最重要的是基本汇编用不到,C是万金油,基本哪都行的。不过汇编的好处就是效率高。追问

这么说现在外面大街上常见的LED灯显示出来的字幕或流水图案都是C语言编制出来的么追答

是的 都是小的芯片控制的我学的时候是dos下的c语言c/c++或者是Java吧
单片机c语言编程点亮led灯


0xaa就是1357亮,0x55就是2468亮,加个延时加个while就行了追问

我想要整套编程我刚开始学追答

#include
#define uint unsigned int
#define uchar unsigned char
void delay(uchar x) //毫秒级延时
{
uchar i,j;
for(i=x;i>0;i--)
for(j=125;j>0;j--);
}
void main()
{
while(1)

{
P1=0xaa;
delay(500);
P1=0x55;
}
}

即#include


voidmain()
{
unsignedinti,j;

P1=85;
while(1){
P1^=255;
for(i=100;i>0;i--)for(j=800;j>0;j--);
}
}While里边的P1=0X55后边也得加延时的。。。。。。

上一篇:
下一篇:

中国食品科技网|广州友邦资讯科技招聘|深圳科技资讯|网站地图