图案能自己运行但不能利用按键控制,如何利用按键控制LED显示特定的图案
1条回答 默认 最新
关注 - 文章:8个独立按键控制LED 中也许有你想要的答案,请看下吧
- 除此之外, 这篇博客: 51单片机 之 8*8 LED点阵(解决程序烧录没反应、显示拖影问题、取字模软件)中的 三、显示复杂的数字 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
//显示一个零 #include<reg51.h> #include<intrins.h> typedef unsigned char u8; typedef unsigned int u16; sbit SRCLK = P3^6; sbit RCLK = P3^5; sbit SER = P3^4; u16 led_x[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; u8 led_y[]={0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00}; void delay(u16 i) { while(i--); } void hc595sendbyte(u8 a) { u16 i ; SRCLK = 0; RCLK = 0; for (i = 0; i < 8; i++) { SER = a >> 7; a <<= 1; SRCLK = 1; _nop_(); _nop_(); SRCLK = 0; } RCLK = 1; _nop_(); _nop_(); RCLK = 0; } void main() { u16 i; while(1){ for (i = 0; i < 8; i++){ P0=led_x[i]; //(1) hc595sendbyte(led_y[i]); //(2) delay(100); //(3) hc595sendbyte(0x00); // (4) } } }
注释:
- P0控制阴极,我们从左到右进行扫描,依次给每一列阴极低电平。
- 当列阴极是低电平时,我们就响应给以列提供预设号的状态。
- 把延时函数加大,你将看到led灯从左边第一列依次向右亮起。
- 这就是消除拖影的操作。 很简单,不多说了。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 帮我调试idea基于spring boot项目
- ¥15 es 7.17.20版本生成时间戳
- ¥15 wpf dategrid表头排序图标自定义
- ¥15 分析下图所示同步时序逻辑电路的逻辑功能。
- ¥15 halcon联合c#遇到了问题不能解决
- ¥15 xshell无法连接提示ssh服务器拒绝密码
- ¥15 AT89C52单片机C语言关于串口通信的位操作
- ¥20 需要步骤截图(标签-服务器|关键词-map)
- ¥50 gki vendor hook
- ¥15 灰狼算法和蚁群算法如何结合