单片机制作呼吸灯的C语言程序怎样编写?

单片机制作呼吸灯的C语言程序怎样编写?,第1张

#include\x0d\x0asbit LED0=P0^0\x0d\x0asbit wei=P1^1\x0d\x0asbit duan=P1^0\x0d\x0asbit lcden=P1^7\x0d\x0asbit dianzhen=P1^3\x0d\x0asbit leden=P1^2\x0d\x0avoid Delay(unsigned int t)\x0d\x0avoid main (void)\x0d\x0a{\x0d\x0aunsigned int CYCLE=600,PWM_LOW=0//定义周期并赋值\x0d\x0alcden=0\x0d\x0aP0=0x00\x0d\x0adianzhen=0\x0d\x0aP0=0xff\x0d\x0awei=0\x0d\x0aduan=0\x0d\x0awhile (1) //主循环\x0d\x0a{\x0d\x0aLED0=1\x0d\x0aDelay(150000)//特意加延橘毕时,可以看缺伍正到熄伏悔灭的过程\x0d\x0afor(PWM_LOW=1PWM_LOW0PWM_LOW--)\x0d\x0a{\x0d\x0aLED0=0\x0d\x0a \x0d\x0aDelay(PWM_LOW)\x0d\x0a \x0d\x0aLED0=1\x0d\x0a \x0d\x0aDelay(CYCLE-PWM_LOW)\x0d\x0a}\x0d\x0a}\x0d\x0a}\x0d\x0avoid Delay(unsigned int t)\x0d\x0a{\x0d\x0awhile(t--)\x0d\x0a}

因为我不知道你这个板子的硬件,我就假设一下吧,你自己对照着看看,关键是流程

假设如下这八个灯依次接在P0口的兆册八个口上,高电平为灯亮,低电平为灯灭,程序如下

ORG 0000H

AJMP START

START:MOV P0,#01H;()只有第一个灯亮

ACALL DELAY;延迟,不加延迟的话 你根本看不起清到底那个灯亮的

MOV P0,#02H()只有第二个灯亮

ACALL DELAY

MOV P0,#04H()只有第三个核猜伍灯亮

ACALL DELAY

MOV P0,#08H()只有第四个灯亮

ACALL DELAY

MOV P0,#10H()只有第五个灯亮

ACALL DELAY

MOV P0,#20H()只有第六个灯亮

ACALL DELAY

MOV P0,#40H()只有第七个灯亮

ACALL DELAY

MOV P0,#80H()只有第八个灯亮

ACALL DELAY

AJMP START;周而复始

DELAY: MOV R6,#40延改或迟程序,晶振为3.57MHZ时大概是0.1S

0.1SL1: MOV R5,#246

0.1SL2: NOP

DJNZ R5,0.1SL2

DJNZ R6,0.1SL1

RET

END

#include<reg51.h>

sbit LED0=P0^0

sbit wei=P1^1

sbit duan=P1^0

sbit lcden=P1^7

sbit dianzhen=P1^3

sbit leden=P1^2

void Delay(unsigned int t)

void main (void)

{

unsigned int CYCLE=600,PWM_LOW=0//定义周腔烂衫期并赋历袜值

lcden=0

P0=0x00

dianzhen=0

P0=0xff

wei=0

duan=0

while (1) //主循环

{

LED0=1

Delay(150000)//特意加伍腔延时,可以看到熄灭的过程

for(PWM_LOW=1PWM_LOW<CYCLEPWM_LOW++)

{

LED0=0

Delay(PWM_LOW)

LED0=1

Delay(CYCLE-PWM_LOW)

}

for(PWM_LOW=CYCLE-1PWM_LOW>0PWM_LOW--)

{

LED0=0

Delay(PWM_LOW)

LED0=1

Delay(CYCLE-PWM_LOW)

}

}

}

void Delay(unsigned int t)

{

while(t--)

}


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

原文地址: http://outofmemory.cn/yw/12305647.html

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

发表评论

登录后才能评论

评论列表(0条)

保存