main.c

来自「《Proteus在MCS-51&ARM7系统中的应用百例》逆向之 Chapter」· C语言 代码 · 共 120 行

C
120
字号
#include <reg51.h>

typedef unsigned char BYTE;

BYTE RS_CNT	 _at_ 0x31;
BYTE DSP_CNT _at_ 0x34;


void DELAY()
{
	BYTE i=10;
		
	do	
	{	
		BYTE j=20;
		do
		{	
			BYTE k=248;
			do
			{
			}while(--k);
		}while(--j);
	}while(--i);
}


main()
{
	BYTE temp;
	RS_CNT =0x00;
	DSP_CNT=0x00;
	

	while(1)
	{
		switch(DSP_CNT)
		{
			case 0:	{
						P0 =0x00;
						temp=0x01;

						do
						{
							P3=temp;
							DELAY();
							ACC=temp;
							#pragma asm
								RL A
							#pragma endasm
							temp=ACC;
							RS_CNT++;
						}while(RS_CNT!=24);
						DSP_CNT++;
					   	RS_CNT=0x00;
					}
					break;
	
			case 1:	{
						P0 =0x00;
						temp=0x80;

						do
						{
							P3=temp;
							DELAY();
							ACC=temp;
							#pragma asm
								RR A
							#pragma endasm
							temp=ACC;
							RS_CNT++;
						}while(RS_CNT!=24);
						DSP_CNT++;
						RS_CNT=0x00;
					}
					break;

			case 2:	{
						P3 =0xFF;
						temp=0x7F;

						do
						{
							P0=temp;
							DELAY();
							ACC=temp;
							#pragma asm
								RR A
							#pragma endasm
							temp=ACC;
							RS_CNT++;
						}while(RS_CNT!=24);
						DSP_CNT++;
						RS_CNT=0x00;
					}
					break;

			case 3:	{
						P3 =0xFF;
						temp=0xFE;

						do
						{
							P0=temp;
							DELAY();
							ACC=temp;
							#pragma asm
								RL A
							#pragma endasm
							temp=ACC;
							RS_CNT++;
						}while(RS_CNT!=24);
						DSP_CNT=0x00;
						RS_CNT =0x00;
					}
					break;
		}	
	}
	
}

⌨️ 快捷键说明

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