我想设置两个值,来保存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;
}
}
}
|