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

📄 bbbb.c

📁 用于测试步进电机
💻 C
字号:
/*********************************************
*    文件名:bbbb.c
*********************************************/
#include <REG51STC.H>
#include <ABSACC.H>
#include "CMD16887.H"
#include <INTRINS.H>
#include "externxy.h"
/***************************************************************
*  功能:显示锁机b
*  输入密码过程中是从右到左,即第1个输入的在最右边--个位。
***************************************************************/
void disp_lock_b(void)
{	void  *ptr;
	uchar i,j;
	uchar  dispmem[16];
	if(menu2==4) 
	{
		if(temp_memb!=4)
		{
			keyb_num[0]=keynumdata[temp_memb];
			keyb_num[1]=keynumdata[27];
			keyb_num[2]=keynumdata[3];
			keyb_num[3]=keynumdata[0];
		}
		else
		{  ptr=&ration_num_b;
			writebyteseq(PASSSTARTADD+4,ptr,4);
			keyb_num[0]=keynumdata[3];
			keyb_num[1]=keynumdata[3];
			keyb_num[2]=keynumdata[3];
			keyb_num[3]=keynumdata[3];
		}
	}
	else 
	{
		keyb_num[0]=keynumdata[19];
		keyb_num[1]=keynumdata[27];
		keyb_num[2]=keynumdata[3];
		keyb_num[3]=keynumdata[0];
	}
	if(locknooil_b) keyb_num[4]=0x01;
	else keyb_num[4]=0x02;

   if(multiple_b==1)j=0;
	else if(multiple_b==10)j=1;
	else if(multiple_b==100)j=2;
	else if(multiple_b==1000)j=3;
	else j=4;
	for(i=0;i<j;i++)
	{
		dispmem[i]=0x0e;  //'-'
	}
	for(i=j;i<16;i++)
	{
		dispmem[i]=0x0f;
	}
	

	ptr=&dispmem;
	disp_updata_lcd(LCDBADD,ptr);
	disp_dot2(5);   //LCD1小数点--无
}
/**************************************************
*  功能: ;  显示定量加油数据b
***************************************************/
void disp_vip_b(void)
{	uchar  i,j,temp;
	uchar  dispmem[6];
	uchar lcdadd,dotdata;
	bit   bymem;
	disp_ration_ending_b();
	if(ration_mode_b)
	{
		keyb_num[4]=0x04;  //定升
        dispmem[5]=0x0a;  //L
		lcdadd=0x04;
		dotdata=dotmode[decimal_b];
		dotdata&=0x36;
		disp_lcd2(ration_num_b,0x0a);  //公升
	}
	else
	{
		keyb_num[4]=0x08;  //定元
		dispmem[5]=0x0c;  //L
		lcdadd=0x0a;
		dotdata=dotmode[decimal_b];
		dotdata&=0x2d;
		disp_lcd2(ration_num_b,0x04);  
	}
	disp_dot2(dotdata);   //LCD2小数点    
	dispmem[4]=0x0f;dispmem[3]=0x0f;dispmem[2]=0x0f;dispmem[1]=0x0f;dispmem[0]=0x0f;
	AUXR |=0x02;
	for(i=6;i>0;i--)
	{  ACC=0x38;
		XBYTE[LCDBADD]=ACC;   //ST
		bbyte=dispmem[i-1];	
		temp=bbyte*16+i+lcdadd-1;
		for(j=8;j>0;j--)
		{  bbyte=temp;
		   bymem=(bit)(bbyte&0x80);
			temp<<=1;
			bbyte=0x38;
			a1= bymem;   //DS-->DATA
			XBYTE[LCDBADD]=bbyte; 
			ACC|=0x01;  
			XBYTE[LCDBADD]=ACC;   //CP-->CLK ↑
			ACC&=0xfe;
			XBYTE[LCDBADD]=ACC;   //CP-->CLK ↓ 
		} 
		ACC=0x3c;
		XBYTE[LCDBADD]=ACC;   //ST-->INH 	   
	}	
    AUXR &=0xfd;
	 
}
/***********************************************************
*  功能:计算、显示定量加油结局b
***********************************************************/
void  disp_ration_ending_b(void)
{  
   xdata uchar tt[6];
	ulong  ma;
	uint aa,bb;
	uchar i;	
	uchar  strdot;   //小数点位置
	bbyte=dotmode[decimal_b];   //小数点

	if(ration_mode_b)	
	{   //升
		if(a4){ma=ration_num_b*120/100; strdot=2;}
		else if(a1){ma=ration_num_b*120/1000;strdot=3;}
		else  {ma=ration_num_b*120;strdot=0;}
	}
	else
	{	
		if(a5)aa=100;  //单价小数点
		else if(a2)aa=1000;
		else aa=1;

		if(a3){bb=100;strdot=2;}  //金额小数点
		else if(a0){bb=10;strdot=1;}
		else {bb=1;strdot=0;}	
		ma=ration_num_b*120*aa/bb/price_b;
	}
	
	//ma=nn;
	//ration_pulse_a=ma;  //定量脉冲
	calculate_ration(1);
	ma=ration_num_b;
	tt[5]=ma%10;ma/=10;
	tt[4]=ma%10;ma/=10;
	tt[3]=ma%10;ma/=10;
	tt[2]=ma%10;ma/=10;
	tt[1]=ma%10;ma/=10;
	tt[0]=ma%10;ma/=10;
	
	for(i=0;i<5;i++)
	{  if(i==(5-strdot))break;
		if(tt[i]==0x00)  tt[i]=28;
		else  break;
	}
	if(multiple_b==1000)
	{ 	switch(strdot)
		{  case 3:
				keyb_num[0]=keynumdata[tt[2]];
				keyb_num[1]=keynumdata[tt[1]];
				keyb_num[2]=keynumdata[tt[0]];
				keyb_num[3]=keynumdata[28];break;
			default:
				break;
		}
	}
	else if(multiple_b==100)
	{
		switch(strdot)
		{  
			case 2:
				keyb_num[0]=keynumdata[tt[3]];
				keyb_num[1]=keynumdata[tt[2]];
				keyb_num[2]=keynumdata[tt[1]];
				keyb_num[3]=keynumdata[tt[0]];break;
			case 3:
				keyb_num[0]=keynumdata[tt[3]];
				keyb_num[1]=keynumdata[tt[2]]+0x80;
				keyb_num[2]=keynumdata[tt[1]];
				keyb_num[3]=keynumdata[tt[0]];break;
			default:
				break;
		}
	}
	else  if(multiple_b==10)
	{
		switch(strdot)
		{  
			case 1:
				keyb_num[0]=keynumdata[tt[4]];
				keyb_num[1]=keynumdata[tt[3]];
				keyb_num[2]=keynumdata[tt[2]];
				keyb_num[3]=keynumdata[tt[1]];break;
			case 3:
				keyb_num[0]=keynumdata[tt[5]];
				keyb_num[1]=keynumdata[tt[4]];
				keyb_num[2]=keynumdata[tt[3]];
				keyb_num[3]=keynumdata[tt[2]]+0x80;break;
			default:
				break;
		}
	}
	else if(multiple_b==1)
	{
		switch(strdot)
		{  case 0:
				keyb_num[0]=keynumdata[tt[5]];
				keyb_num[1]=keynumdata[tt[4]];
				keyb_num[2]=keynumdata[tt[3]];
				keyb_num[3]=keynumdata[tt[2]];break;
			case 2:
				keyb_num[0]=keynumdata[tt[4]];
				keyb_num[1]=keynumdata[tt[3]]+0x80;
				keyb_num[2]=keynumdata[tt[2]];
				keyb_num[3]=keynumdata[tt[1]];break;
			case 3:
				keyb_num[0]=keynumdata[tt[4]];
				keyb_num[1]=keynumdata[tt[3]];
				keyb_num[2]=keynumdata[tt[2]]+0x80;
				keyb_num[3]=keynumdata[tt[1]];break;
		}
	}
	
	else // if(multiple_a==0)
	{
		switch(strdot)
		{  case 0:
				keyb_num[0]=keynumdata[tt[5]];
				keyb_num[1]=keynumdata[tt[4]];
				keyb_num[2]=keynumdata[tt[3]];
				keyb_num[3]=keynumdata[tt[2]];break;
			case 1:
				keyb_num[0]=keynumdata[tt[5]];
				keyb_num[1]=keynumdata[tt[4]]+0x80;
				keyb_num[2]=keynumdata[tt[3]];
				keyb_num[3]=keynumdata[tt[2]];break;
			case 2:
				keyb_num[0]=keynumdata[tt[5]];
				keyb_num[1]=keynumdata[tt[4]];
				keyb_num[2]=keynumdata[tt[3]]+0x80;
				keyb_num[3]=keynumdata[tt[2]];break;
			case 3:
				keyb_num[0]=keynumdata[tt[5]];
				keyb_num[1]=keynumdata[tt[4]];
				keyb_num[2]=keynumdata[tt[3]];
				keyb_num[3]=keynumdata[tt[2]]+0x80;break;
		}
	}

}
/*********************************************************
*  功能:进入特殊菜单的密码显示
**********************************************************/
void disp_pass_vital(uchar gunidid)
{ 	void  *ptr;
	uchar i,j;
	uchar  dispmem[16];
	if(gunidid==0)
	{	
		keya_num[0]=keynumdata[5];
		keya_num[1]=keynumdata[5];
		keya_num[2]=keynumdata[10];
		keya_num[3]=keynumdata[23];		
	
		if(multiple_a==1)j=0;
		else if(multiple_a==10)j=1;
		else if(multiple_a==100)j=2;
		else if(multiple_a==1000)j=3;
		else j=4;
		for(i=0;i<j;i++)
		{
			dispmem[i]=0x0e;  //'-'
		}
		for(i=j;i<16;i++)
		{
			dispmem[i]=0x0f;
		}
		
		
		ptr=&dispmem;
		disp_updata_lcd(LCDAADD,ptr);
		disp_dot1(5);   //LCD1小数点--无
	}
	else  //gunidid==1
	{
		keyb_num[0]=keynumdata[5];
		keyb_num[1]=keynumdata[5];
		keyb_num[2]=keynumdata[10];
		keyb_num[3]=keynumdata[23];		
	
		if(multiple_b==1)j=0;
		else if(multiple_b==10)j=1;
		else if(multiple_b==100)j=2;
		else if(multiple_b==1000)j=3;
		else j=4;
		for(i=0;i<j;i++)
		{
			dispmem[i]=0x0e;  //'-'
		}
		for(i=j;i<16;i++)
		{
			dispmem[i]=0x0f;
		}
		
		
		ptr=&dispmem;
		disp_updata_lcd(LCDBADD,ptr);
		disp_dot2(5);   //LCD2小数点--无
	}
}

⌨️ 快捷键说明

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