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

📄 ad.txt

📁 电子称资料(从压力传感器输出的差分电压送入单片机进行检测后显示到数码管)
💻 TXT
字号:
#include<reg51.h>
#include<intrins.h>
typedef unsigned char UINT8;
typedef unsigned int UINT16;
code  UINT8  table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
code  UINT8 BITSELECT[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned long ss;
sbit sclk=P1^0;
sbit cs=P1^1;
sbit dat=P1^2;
#define S1 0x38
#define S2 0x34
#define S3 0x2c
#define S4 0x1c

void delay(UINT8 t)
{
		for(;t>0;t--);
}

void init()
{
	 TMOD=0x01;
	 TH0=0xf8;
   	 TL0=0xcc;
   	 ET0=1;
	 EA=1;	 
	 TR0=1;
}


void senddata(unsigned long senddat)
{	
	UINT8 i;
	senddat=0x210000;
	cs=1;
	_nop_();
	_nop_();
	cs=0;
	_nop_();
	_nop_();
	sclk=0;
	for(i=0;i<24;i++)
	{
		if((senddat&0x800000)==0)
			dat=0;
			else
			dat=1; 		
			_nop_();
			//_nop_();
			sclk=1;
			_nop_();
			//_nop_();
			sclk=0;	
			senddat<<=1;
	}
	
	
		
}


UINT8 ScanKey(void)
{
	UINT8 key;
	P3=0xff;
	key=P3;
	if((key & 0x3c)==0x3c)
	return(0xff);
	delay(1500);
	P3=0xff;
	key=P3;
	if((key & 0x3c)==0x3c)
		return(0xff);
	while(1)
	{
		if((P3 & 0x3c) ==0x3c)
			break;
	}	
	return(key&0x3c);
}


main(void)
{	
	unsigned long yy;
	UINT8 c;
	init();	
	while(1)
	{	
		senddata(0x210ff0);
		_nop_();
		_nop_();
		c=ScanKey();
		switch(c)
		{	case S1:yy=yy-500;ss=ss-100;break;
			case S2:yy=yy+500;ss=ss+100;break;		
			case S3:yy=yy-5;ss--;break;
			case S4:yy=yy+5;ss++;break;
	}
		ss%=1200;
		
	}	
}

void time0() interrupt 1
{
	static UINT8  num=0;
	TH0=0xf8;
	TL0=0xcc;
	P2=0xff;
			switch(num)
		{
			case 0:P0= table[ss%10];break;
			case 1:P0= table[ss%100/10];break;
			case 2:P0= table[ss%1000/100]&0x7f;break;
			case 3:P0= table[ss/1000];break;
			
			
		}
			P2=BITSELECT[num];
			num++;
			num%=4;		
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -