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

📄 main.c

📁 《Proteus在MCS-51&ARM7系统中的应用百例》逆向之 Chapter 4 《Proteus在MCS-51&ARM7系统中的应用百例》MCS-51例子的C语言版本。
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -