⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 somtinggg.c

📁 8051驱动1602液晶的数字控制电源程序。
💻 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 + -