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

📄 main.c

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

BYTE DBUF0[4];
BYTE TEMP[4];

sbit DIN=P3^0;
sbit CLK=P3^1;
sbit P33=P3^3;

BYTE code SEGTAB[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,
        			0x7D,0x07,0x7F,0x6F,0x77,0x7C,
        			0x58,0x5E,0x79,0x71,0x00,0x40};


void DELAY()
{
	BYTE i=0xAF;
	 
	do
	{	 
		BYTE j=0xFF;
		do
		{
			_nop_();
			_nop_();
			_nop_();
		}while(--j);
	}while(--i);
}

void DISP1()
{
	BYTE data *p=DBUF0;
	BYTE data *q=TEMP+4;
	BYTE num=5;

	do
	{
		*q=SEGTAB[*p];
		p++;
		q--;	
	}while(--num);

	p=TEMP;
	num=5;
		
	do
	{
		BYTE num2=8;
		ACC=*p;
		do
		{
			#pragma asm
				RLC 	A			
				MOV 	DIN,C
			#pragma endasm

			CLK=0;
			CLK=1;
					
		}while(--num2);
		p++;
	}while(--num);
}

main()
{				 
	while(1)
	{
		BYTE data *point=DBUF0;
		BYTE xdata *x_point;
		BYTE temp;

		*point++=0x0A;
		*point++=0x0D;
		*point++=0x10;

		x_point=0xFEF3;
		*x_point=0;
		while(!P33);
		temp=*x_point;
		P1=temp;

		*point=_crol_(temp,4)&0x0F;
		point++;
		*point=temp&0x0F;
		DISP1();
		DELAY();
	}	
}

⌨️ 快捷键说明

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