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

📄 main.c

📁 《Proteus在MCS-51&ARM7系统中的应用百例》逆向之 Chapter 6 《Proteus在MCS-51&ARM7系统中的应用百例》MCS-51例子的C语言版本。
💻 C
字号:
#include <reg51.h>
#include <intrins.h>

typedef unsigned char BYTE;

sbit P32=P3^2;

BYTE count;			//软件计数器
BYTE code TAB[]={	0xFF,0xFF,						
					0xDF,0xFF,
					0xBF,0xFF,													
					0x01,0xFF,
					0xBF,0xFF,
					0xDF,0xFF,
					0xFF,0xFF};

BYTE temp[16];

void INTS_T0() interrupt 1
{
	BYTE line;
	BYTE data *point=temp;
	BYTE num,temp;

	EA=0;

	if(--count==0)
	{
		count=5;
		line=8;
		
		do
		{
			num=2;
			CY=0;
			
			temp=*(point+1);
			ACC=temp;
			temp++;
			#pragma asm
				RLC A
			#pragma endasm

			do
			{
				ACC=*point;
				
				#pragma asm
					RLC A
				#pragma endasm	
				
				*point=ACC;
				point++;
			}while(--num);
		}while(--line);
	}

	TMOD=0x01;
	TL0=0xFF;
	TH0=0x3C;
	ET0=1;
	ET1=0;
	EA=1;
	TR0=1;
}

main()
{	
	BYTE i=0;
	BYTE num=16;
	BYTE offset;
	BYTE row;
   	BYTE line;
	
	EA=0;

	do
	{
		temp[i]=TAB[i];
		i++;
	}while(--num);
	 	
	TMOD=0x01;
	TL0=0xFF;
	TH0=0x3C;
	count=5;
	ET0=1;
	ET1=0;
	EA=1;
	TR0=1;
	SCON=0x00;
	P32=0;
	row=0x80;

	while(1)
	{
		line=0x08;
		offset=0x00;

		do
		{
			num=2;
			row=_cror_(row,1);
			SBUF=row;
			while(!TI);
			TI=0;

			do
			{
				SBUF=temp[offset];
				while(!TI);
				TI=0;
				offset++;
			}while(--num);

			P32=1;
			P32=0;
		}while(--line);
	}

	while(1);
}

⌨️ 快捷键说明

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