📄 somtinggg.c
字号:
//12m 晶振
#include<reg52.h>
#include<absacc.h>
#include<math.h>
#include<stdio.h>
#define DAC0832 XBYTE[0X7FFF]
#define TRUE 1
#define FALSE 0
#define key1 P1_0
#define key2 P1_1
sbit P1_0=P1^0;
sbit P1_1=P1^1;
unsigned char code table0[]={0xfd,0x61,0xdb,0xf3, 0x67,0xb7,0xbf,0xe1,
0xff,0xf7};
unsigned char code table[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,
0xfe,0xf6,0x80,0x40,0x20,0x10,0x08};
unsigned char k;
unsigned char t;
unsigned char s[3];
void delayms(unsigned int ms) //delay 毫秒 0~65535ms
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
void clean(void)//清零
{
}
void output(void)//输出
{
t=s[2]*100+s[1]*10+s[0];
if(t<=99)
DAC0832=t;
}
void keyscan(void)//keybroad scan
{ unsigned char h;
h=1;
while(h) ///无限循环
{
P1_0=FALSE;P1_1=FALSE;
if(key1==TRUE)
{
delayms(10);
if(key1==TRUE)
{
key1==TRUE;
h=0;
}
}
if(key2==TRUE)
{delayms(10);
if(key2==TRUE)
{key2=TRUE; h=0;
}
}
}
}
void increase(void)//步进加
{
if(t==99)//判断此时是否为最高,设置底线,最低是9。9v
t=99;
else
t++;
DAC0832=t;//给 DA 送数据,实现+0.1V
s[2]=t/100;//3位led显示 9。9v位 099
s[1]=t%100/10;
s[0]=t%10;
output();
}
void decrease(void)//步进减
{
if(t==0)//判断此时是否为零,设置底线,最低是零
t=0;
else
t--;
DAC0832=t;//给 DA 送数据,实现减 0.1V
s[2]=t/100;
s[1]=t%100/10;
s[0]=t%10;
output();
}
void set(void)//置数
{
}
void main(void)///main
{
//先清零
while(1)
{
keyscan();
if(key1==TRUE)
increase();
if(key2==TRUE)
decrease();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -