全球旧事资料 分类
,阳极共同接高电平。编程实现制作左右来回循环的节日彩灯,显示规律如下图所示。
题37图
节日彩灯的花样显示的规律
为了使显示效果更加绚丽多彩,P1端口8个引脚分别接有不同颜色的发光二极管。具体如题37表所示。
题37表P1口8个引脚的不同颜色的发光二极管P1口引脚P10P11P12P13P14P15P16P17发光二极管的颜色红色LED蓝色LED绿色LED黄色LED红色LED蓝色LED绿色LED黄色LED
f使用C51编流水灯程序以及设计相应的硬件电路十分简单,且有多种方法。本方案力求程序最简化最清晰原则,用NS图(盒图)表示算法如下:
程序中设置中间变量temp用来给P1口赋值,命令_crol_和_cror_用于使temp左移或右移,例如当temp11111110B时,执行_crol_temp1之后temp11111101,应用此两条语句必须把头文件i
tri
sh包含进来。全部代码如下:i
cludereg51hi
cludei
tri
shu
sig
edchartemp定义字符变量temptemp左移或右移并给连接LED的P1口赋值i
ta定义延迟函数delayvoiddelayvoidvoidmai
temp0xfe给temp赋初值P1temptemp赋值给P1口,第一个LED(红色)点亮while1主程序,括号中的程序将一直循环fora0a7a左移部分,LED从左到右依次点亮temp_crol_temp1_crol_语句控制变量temp左移delay每个灯点亮之后延迟一会在点下一个灯
fP1tempfora0a7a右移部分,LED从右到左依次点亮temp_cror_temp1第8个灯点亮后开始右移程序,LED从右向左点亮delayP1tempvoiddelayi
tijfori200i0iforj1j150j电路连接如下:延时子程序定义局部变量ijij不断计数占用CPU时间,达到延时目的
fvoiddelayu
sig
edi
tifori0i1500ivoidfu
voidu
sig
edcharifori0i8iP01idelaywhileiP01idelayvoidmai
while1fu

voidL_M左u
sig
edcharabitempu
sig
edi
ts
ftemp0xfeP1tempfors0s300000sfori0i8iatempibtemp8iP1abfors0s300000svoidR_M右u
sig
edcharabitempu
sig
edi
tstemp0x7fP1tempfors0s300000sfori0i8iatempibtemp8iP1abfors0s300000s
i
cludereg52hi
cludei
tri
shi
tri
sh库中含有循环移位函数defi
eui
tu
sig
edi
tdefi
eucharu
sig
edcharuchartemp定义全局变量tempdelay延时子函数ui
tijfori1i400iforj1j400j
fvoidmai
主函数temp0xfeP0tempwhile1temp_crol_temp1_crol_字符循环左移delayP0temp
为了使显示效果更加绚丽多彩,玫窜博淬欧百奎蒸弹奋苏隅吝蹲崇择宽窘r
好听全球资料 返回顶部