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

📄 main.c

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

BYTE VALUEH;
BYTE VALUEL;
BYTE DVALUE0;
BYTE DVALUE1;
BYTE DVALUE2;
BYTE DVALUE3;
BYTE DVALUE4;
BYTE CNT;
sbit KEY=P3^7; 

sbit P20=P2^0;
sbit P21=P2^1;
sbit P22=P2^2;
sbit P23=P2^3;
sbit P24=P2^4;
sbit P25=P2^5;
sbit P26=P2^6;
sbit P27=P2^7;

BYTE code TABLE[]={	0x3F,0x06,0x5B,0x4F,0x66,
					0x6D,0x7D,0x07,0x7F,0x6F};

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


void HTOD()
{

}

void DISP()
{
	P2=0xFF;

	P20=0;
	P0=TABLE[DVALUE4];
	DELAY();
	P20=1;

	P21=0;
	P0=TABLE[DVALUE3];
	DELAY();
	P21=1;

	P22=0;
	P0=TABLE[DVALUE2];
	DELAY();
	P22=1;

	P23=0;
	P0=TABLE[DVALUE1];
	DELAY();
	P23=1;

	P24=0;
	P0=TABLE[DVALUE0];
	DELAY();
	P24=1;
}

void INT_T0()	interrupt 1
{
	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
	CNT++;
	if(CNT==20)
	{
		CNT=0x00;
		TR0=0;
		TR1=0;
		VALUEL=TL1;
		VALUEH=TH1;
		HTOD();
	}
} 

main()
{
	while(1)
	{
		VALUEH=0x00;
		VALUEL=0x00;
		DVALUE0=0x00;
		DVALUE1=0x00;
		DVALUE2=0x00;
		DVALUE3=0x00;
		DVALUE4=0x00;
		CNT=0x00;
		TMOD=0x51;
		TH0=(65536-50000)/256;
		TL0=(65536-50000)%256;
		TH1=0x00;
		TL1=0x00;
		IE =0x8A;
	
		while(KEY);
		DELAY();
		while(KEY);
		TR0=1;
		TR1=1;
	
		do
		{
			DISP();
		}while(!KEY);
	}
	
}

⌨️ 快捷键说明

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