sim74595.cpp.bak

来自「数字面板开发的单片机的软件仿正程序」· BAK 代码 · 共 116 行

BAK
116
字号
//-------------------------simout74595
//---------getout74595(void)
//---------getout74595(void)
//---------getout74595(void)
//---------getout74595(void)
void getout74595(void)
{
}
//---------void getdsp74595(void)
//---------void getdsp74595(void)
//---------void getdsp74595(void)
//---------void getdsp74595(void)
void getdsp74595(void)
{
	char dsb;
	if((filv[dsp74595rd]&dsp74595sck1))
	{
		if(!(dsp74595old&dsp74595sck1))
		{
			dsp74595dat*=2;
			if((filv[dsp74595rd]&dsp74595sin1))
			{
				dsp74595dat|=0x1;
			}
		}
	}
	if((filv[dsp74595rd]&dsp74595rck1))
	{
		if(!(dsp74595old&dsp74595rck1))
		{
			{
				dsp74595dat&=0xffff;
				if(pc>disp74595pc)
				{
					dsp74595datold=dsp74595dat;
					dsp74595dat1=dsp74595dat/0x100;
					dsp74595dat2=(dsp74595dat-dsp74595dat1*0x100);
					dsb=100;
					switch(dsp74595dat1)
					{
						case 0xff:
						{
							if(!(filv[7]&0x1))
							{
								dsb=0;
							}
							else if(!(filv[7]&0x2))
							{
								dsb=1;
							}
							else if(!(filv[7]&0x4))
							{
								dsb=2;
							}
							break;
						}
						case 0xfe:
						{
							dsb=3;
							break;
						}
						case 0xfd:
						{
							dsb=4;
							break;
						}
						case 0xfb:
						{
							dsb=5;
							break;
						}
						case 0xf7:
						{
							dsb=6;
							break;
						}
						case 0xef:
						{
							dsb=7;
							break;
						}
						case 0xdf:
						{
							dsb=8;
							break;
						}
						case 0xbf:
						{
							dsb=9;
							break;
						}
						case 0x7f:
						{
							dsb=10;
							break;
						}
						default:
						{
							break;
						}
					}
					if(dsb<100)
					{
						if(dsp74595dat2!=xdspdat[dsb])
						{
							xdspdat[dsb]=dsp74595dat2;
						}
					}
				}
				dsp74595dat=0;
			}
		}
	}
	dsp74595old=filv[dsp74595rd];
}

⌨️ 快捷键说明

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