找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于51单片机的电压源的LED显示设计 如何设置两个值来保存led的值?

[复制链接]
跳转到指定楼层
楼主
我想设置两个值,来保存led的值,让输出电压的时候LED正常显示设置的电压值,该怎么设置这两个数

单片机源程序如下:
#include<math.h>
        #include <reg51.h>
        #define  uchar unsigned char
        #define  uint unsigned int
          char led[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
          char led1[]={0x3f,0x06,0x5b,0x4f,0xe66,0x6d,0x7d,0x07,0x7f,0x6f};
          sbit P3_7=P3^7;                        //加键
          sbit P3_6=P3^6;                   //减键
          sbit P3_1=P3^1;
          sbit P3_0=P3^0;
          sbit P3_4=P3^4;                 //模式选择(设置输出电压值模式or电压输出模式)         
          uchar set=50,tj=0;
         


        void delay (unsigned int time)
                {
                  unsigned j;
                  for (;time>0;time--)
                  for(j=0;j<125;j++) ;      
                }

         void main ()
         {

        while (1)
                {
        if(P3_4==0)
         { tj=!tj;         while(P3_4==0) ; }

        if(tj==0)                         //设置输出电压
                        {               
                                                   //扫描按键1
                                if(P3_7==0)
                                                        {      
                                                                delay(10);                                                                  // 摁键消抖
                                                                if(P3_7==0)
                                                                  {  
                                                                         set++;
                                                                         if(set>99) set=99;                                                  // 设置显示最大值
                                                                         while(P3_7==0)                                                  // 等待按键松开
                                                                             ;
                                                                         }  
                                                                }
                                                          //扫描按键2
                                if(P3_6==0)
                                                   {
                                                                   delay(10);                                                                  // 摁键消抖         
                                                                  if(P3_6==0)
                                                                  {
                                                                           set--;      
                                                                            if(set<0) set=0        ;                                         // 设置显示最小值
                                                                           while(P3_6==0)                                         // 等待按键松开
                                                                                ;
                                                                           }
                                                  
                                                                }               
                                                               
                                                                //显示两位数码管
                                                         
                                                                P3_0=0;         P3_1=1;
                                                        P0=led[set/10];      
                                                        delay(50)        ;                                       
                                                        P3_0=1;         P3_1=0;
                                                        P0=led1[set%10];               
                                                                        delay(50)        ;
                                                               
                                                               
                                                                        }
                              
        else{               
                                       
                                  P2=(float)set*2.56 ;                                   //输出算法
//                                        P2=25.6;                                                                 
                                 }
               
                }
         
         
         }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:301191 发表于 2022-5-10 17:08 | 只看该作者
顶一下
回复

使用道具 举报

板凳
ID:123289 发表于 2022-5-11 11:06 | 只看该作者
将两个值放在内存的某个你规定并记得的地方即可。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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