找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1593|回复: 3
收起左侧

单片机按键显示读取数值 求程序思路

[复制链接]
ID:709561 发表于 2020-3-18 17:58 | 显示全部楼层 |阅读模式
      C51两个按键控制一个数码管加减0-5,同时还要提取数码管显示的数字是几,再由一个确定键确定,另一端IO口显示几个LED灯的亮灭。
昨天被师傅考问这个程序要如何实现,真的是一脸懵,无论怎样写都不能实现,求助于同事还被人翻白眼,实属无奈,我也才学习了不到一个月的C语言编程,师傅没有教过类似的程序。
哪位大神给一个这样的程序C语言,让我借鉴借鉴不胜感激!!!
回复

使用道具 举报

ID:648281 发表于 2020-3-18 22:04 | 显示全部楼层
你好!
1、你单片机上数码管的具体接法
2、另一端的IO口,是指同一个单片机吗
3、你这个是否有实物?还是用仿真?
回复

使用道具 举报

ID:316880 发表于 2020-3-18 22:37 | 显示全部楼层
按+,按-,完了直接把这个寄存器的数据显示出来就可以了,显示多少就是多少,至于这个确定键多余,你不按+,不按-,寄存器的数据是不会改变的,除非你复位,程序是可以很灵活的,可以大胆现象
回复

使用道具 举报

ID:213173 发表于 2020-3-19 08:01 | 显示全部楼层
无标题.jpg
  1. #include<reg51.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit key1=P3^0;
  5. sbit key2=P3^1;
  6. uchar code table[]={        //共阴数码管段码0~F
  7.         0x3f,0x06,0x5b,0x4f,
  8.         0x66,0x6d,0x7d,0x07,
  9.         0x7f,0x6f,0x77,0x7c,
  10.         0x39,0x5e,0x79,0x71};
  11. uchar code table1[]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0};//LED低电平亮
  12. uchar num=0;        //键值变量
  13. uchar count=0; //消抖计数变量
  14. bit flag=0;         //按键状态标志

  15. void main(void)
  16. {
  17.         P2=table[num];
  18.         P1=table1[num];
  19.         while(1)
  20.         {
  21.                 if(!key1||!key2)
  22.                 {
  23.                         if(++count>=100 && flag==0)
  24.                         {                       
  25.                                 flag=1;
  26.                                 if(!key1)
  27.                                 {
  28.                                         if(num<5)
  29.                                                 num++;
  30.                                 }
  31.                                 if(!key2)
  32.                                 {
  33.                                         if(num>0)
  34.                                                 num--;
  35.                                 }
  36.                                 P2=table[num];
  37.                                 P1=table1[num];
  38.                         }
  39.                 }
  40.                 else
  41.                 {
  42.                         count=0;
  43.                         flag=0;
  44.                 }
  45.         }
  46. }
复制代码



回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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