反馈节点初始值是否需要赋值,为什么

反馈节点初始值是否需要赋值,为什么,第1张

是、为了实现LED灯由暗渐亮,再由谈宽友亮渐暗的变化。

1、反馈节点的箭头方向为数据流的传输方向。也需要含槐初始化输入初值,也就是赋初值。

2、赋初值是为了实现LED灯由暗渐亮,再由亮渐暗的变巧游化。

这个是反馈手竖节点,起作用等效于移位寄存器,把上一次循环的值作为下一次循环的输入,实现方法如下:

在数组连入循环的隧道处右键单击,选择替换为移位寄存器,卜正如下型薯悔图

在移位寄存器上右键单击,选择替换为反馈节点,如下图

/********

//p1.0波形为:

//1、10ms为周期的方波或持续的高、低电平(与flag、p1.0初始值有关),持续空蔽2秒。

//2、持续的高、低电平或10ms为周期的方波(与flag、p1.0初始值有关),持续2秒。

//3、重复1、2步骤。

*********/

#include

unsigned

int

t02s

unsigned

char

t05ms

bit

flag

void

main(void)

{

tmod=0x01

//初始化定时器

//可以对照单片机pdf相应章节,按位芹卜对比。

//此处设置定时器0工作于“16

位定时器/

计数器,tl0、th0

全用”模式。

th0=(65536-500)/256

//初始化定时/计数器高字节。

tl0=(65536-500)%256

//初始化。。。。。。低字节。

tr0=1

//启动定时器0。

//以下两句开启定时器中断,缺一不可。

et0=1

//允许定时器0中断。

ea=1

//开启全局中断。

while(1)

//循环,整个程序交由定时中断控制。

}

//此处为定时器中断子程序,每次定时器溢出,进入此段程序。

//根据参数定义,每5ms中断一次。

//定时器中断斗首州后,计数不停止,但是需要重新初始化定时/计数器。

void

t0(void)

interrupt

1

using

0

{

//重新“初始化定时/计数器”高、低字节。

th0=(65536-500)/256

tl0=(65536-500)%256

//每次中断,t02s

1。

t02s++

//增加400次后(5ms

×

400

=

2s),flag标志取反。

if(t02s==400)

{

t02s=0

flag=~flag

}

//若中断时flag标志为0,p1.0口取反。

if(flag==0)

{

p1_0=~p1_0

}

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存