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

📄 main.c

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

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

BYTE DBUF;
BYTE TEMP;

BYTE code K0TAB[]={ 0xFE,0xFD,0xFB,0xF7,       
					0xEF,0xDF,0xBF,0x7F};

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


void DELAY()
{
	BYTE i=0x02;
	 
	do
	{
		BYTE j=0xF8;
		do
		{}while(--j);
	}while(--i);
}


void DISP(BYTE in)
{
	BYTE num=8;

	DBUF=in;

	TEMP=SEGTAB[DBUF];
	ACC=TEMP;

	do
	{
		#pragma asm
			RLC A
		#pragma endasm

		DIN=CY;
		CLK=0;
		CLK=1;
	}while(--num);	
}


BYTE KEY()
{
	BYTE key_i;
	BYTE key_j;
	BYTE temp;

	while(1)
	{
		do
		{
			do
			{
				P1=0xFF;
			}while(P1==0xFF);
			DELAY();

			temp=P1;
		}while(temp==0xFF);
				 		
		key_i=8;
		key_j=0;
	
		do
		{
			if(temp==K0TAB[key_j])
			{
				do
				{}while(P1!=0xFF);
				DELAY();
				return key_j;
			}
		
			key_j++;
		}while(--key_i);
	}
}


main()
{
	DBUF=16;

	while(1)
	{
		DISP(KEY());
	}

}

⌨️ 快捷键说明

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