找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 596|回复: 4
打印 上一主题 下一主题
收起左侧

求程序 单片机按键控制共阴极数码管

[复制链接]
跳转到指定楼层
楼主
ID:1108835 发表于 2024-1-10 19:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
设计并制作按键控制共阴极数码管的控制系统,要求通过按键实现减法功能,按下一次,数码显示减1的数值,有简单点的程序嘛
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1116447 发表于 2024-5-10 21:47 | 只看该作者
用数组提前编译好数字,设置每次按下减一,
回复

使用道具 举报

板凳
ID:1116447 发表于 2024-5-10 21:48 | 只看该作者
void main() {     P0 = code_table[f]; // 显示数码管的值     while (1) { // 主循环开始                 if (S1 == 0) { // 如果S1被按下                         if (aa == 0) {                         f = (f + 1) % 10; // 循环递增f                         P0 = code_table[f]; // 显示数码管的值                                 Delay100ms(); // 延迟                                 aa = 1; // 防止反跳                         }                 } else if (S2 == 0) { // 如果S2被按下                         if (bb == 0) {                                                                  f = (f + 10 - 1) % 10; // 循环递减f                                                         P0 = code_table[f]; // 显示数码管的值                                 Delay100ms(); // 延迟                                 bb = 1; // 防止反跳                         }                 } else {// 当按钮释放后,重置aa和bb                         aa = 0;bb=0;}                         } // 主循环结束 }
回复

使用道具 举报

地板
ID:161164 发表于 2024-5-11 10:51 | 只看该作者
  1. void main()
  2. {
  3.         while (1)   // 主循环开始
  4.         {
  5.                 if (S1 == 0)   // 如果S1被按下
  6.                 {
  7.                         if (aa == 0)
  8.                         {
  9.                                 f = (f + 1) % 10; // 循环递增f
  10.                                 Delay100ms(); // 延迟
  11.                                 aa = 1; // 防止反跳
  12.                         }
  13.                 }
  14.                 else
  15.                 {
  16.                         aa = 0;
  17.                 }
  18.                 if (S2 == 0)     // 如果S2被按下
  19.                 {
  20.                         if (bb == 0)
  21.                         {
  22.                                 f = (f + 10 - 1) % 10; // 循环递减f
  23.                                 Delay100ms(); // 延迟
  24.                                 bb = 1; // 防止反跳
  25.                         }
  26.                 }
  27.                 else    // 当按钮释放后,重置aa和bb
  28.                 {
  29.                         bb=0;
  30.                 }
  31.                 P0 = code_table[f]; // 显示数码管的值

  32.         } // 主循环结束
  33. }
复制代码
回复

使用道具 举报

5#
ID:1095702 发表于 2024-5-11 20:09 | 只看该作者
用中断吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表