旋转LED屏是怎么实现的

旋转LED屏是怎么实现的,第1张

LED旋转屏也叫led旋转魔方屏、三棱魔方柱。是由三角形或四方形LED显示屏箱体组合,在旋转支撑、不绕线导电刷、转动花样软件编程等多个系统配合下,使三个三角形或四方形LED显示屏按照电脑编制的程序—-不同时间花样转动—-定格在一个平面,展示三个视频画面。加工制作1379141119张文

#include <reg51.h>//此文件中定义了51的一些特殊功能寄存器

#include <intrins.h>

void delayms(unsigned char ms)

// 延时子程序

{

unsigned char i

while(ms--)

{

for(i = 0i <120i++)

}

}

main()

{

unsigned char LED

LED = 0xfe //0xfe = 1111 1110

while(1)

{

P2 = LED

delayms(250)

LED = LED <<1 //循环右移1位,点亮下一个LED "<<"为左移位

if(P2 == 0x00 ) {LED = 0xfe } // 0xfe = 1111 1110

}

}

有问题的那个程序

u8 ReadValue=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10)

只在上面那条指令采集了一次按键数据。

等到执行到 while(!ReadValue)//等待按键被放开 这条指令时

数据仍然是上次采集到的那个值代表按键按下,(!ReadValue)这个值永远成立,所以无法代表按键断开。所以程序一直卡死在这条指令上。如果要通过就必须在判据里重新读取按键状态,像正确的程序那样用这样的指令

while(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10))//等待按键被放开

另外因为你只读取了一次按键状态,所以下面那么多一堆软件消除抖动的程序白写了。

综上,正确的程序在每个判断的时刻都要重新读取下按键状态。


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

原文地址:https://54852.com/yw/11440340.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存