求解答
如何描述这段用51单片机写出来灯亮与闪烁,P2=(~LED[n]&0x7f)可以理解取反,&如何理解
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
51单片机,灯亮,如何用自己的话描述(语言-c++)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- Kwan的解忧杂货铺@新空间代码工作室 2024-04-21 16:51关注
下午好🌅🌅🌅
本答案参考ChatGPT-3.5题意理解:根据给出的代码实现51单片机控制LED灯的亮和闪烁,效果类似于小时候玩的游戏贪吃蛇。
解决方案:
-
定义变量和数组:在代码开头定义了两个变量n和i,分别用于控制LED灯亮的情况。同时,定义了一个LED数组,数组中存储的是控制LED灯亮的每个状态。
-
对LED灯进行控制:对于LED灯的控制,使用P2来控制。同时,在循环中对P2设置值进行特定的位运算来控制LED的状态。
-
利用延迟函数进行控制:在代码中定义了一个延迟函数delay,用来控制灯亮的时间。通过调整delay函数中的参数i,控制灯亮的时间长度。
-
实现灯亮和闪烁效果:实现灯亮可以直接将LED数组中的每个值分别赋值给P2,控制灯的亮暗。实现灯的闪烁可以通过在循环中使用位移操作改变LED[n]的值,从而控制灯的闪烁。
修改后正确代码:
#include<regx51.h> void delay(unsigned int i) { while(i--); } void main () { unsigned char n,i; unsigned char LED[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f}; while(1) { for(n=0;n<7;n++) { P2=(~LED[n])&0x7f; for(i=0;i<9;i++) { delay(30000): P2=(~(LED[n]<<i))&0x7f; } } } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 -
悬赏问题
- ¥15 关于stm32hal库驱动ft6336触摸屏遇到的问题
- ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
- ¥15 数字信号处理考试111
- ¥100 关于#audobe audition#的问题,如何解决?
- ¥15 allegro17.2生成bom表是空白的
- ¥15 请问一下怎么打通CAN通讯
- ¥20 如何在 rocky9.4 部署 CDH6.3.2?
- ¥35 navicat将excel中的数据导入mysql出错
- ¥15 rt-thread线程切换的问题
- ¥15 高通uboot 打印ubi init err 22