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

📄 main_trans.c

📁 MT8880单片机控制的测试程序
💻 C
字号:
#include<REG51.H>
typedef unsigned char uchar;

sbit  RW	= 	P1^0;                  
sbit  CS0 	= 	P1^1;                  
sbit  RS  	= 	P1^2;                 
sbit  FI2	= 	P1^3;                  
sbit  D0   	= 	P1^4;                 
sbit  D1    = 	P1^5;                 
sbit  D2    = 	P1^6;
sbit  D3    = 	P1^7;
sbit  TEST 	= 	P3^7;

uchar st , buff;

char Read_Status();
char Read_Data();
void Write_Control(uchar);
void Write_Data(uchar);
void delay();
void Ins_delay();
void Serial_Init();



void extern0_ISR() interrupt 0{}    /* not used */

void timer0_ISR () interrupt 1{}    /* not used */

void extern1_ISR() interrupt 2
{
	Read_Status();
	st = 0;
} 

void timer1_ISR () interrupt 3{}    /* not used */



void serial_ISR () interrupt 4
{
	if(RI)
		{   
			RI = 0;
			buff = SBUF;  
		}
	else
			TI = 0;
} 
      
main()
{
	buff = 0xFF;
	st = 1;
	delay(); 

	Serial_Init();
    
	IT1 = 1;
    EX1 = 1;
	TI = 1;

	Read_Status();
	Write_Control(0x00);
	Write_Control(0xD0);
	Write_Control(0x00);
	Read_Status();

	while(1)
	{
		if(buff != 0xFF)
			{
				buff *= 16;
				
				Write_Data(buff);
				buff = 0xFF;

				/*delay();
				TEST = 1;
				st = Read_Status();
				while(!(st & 0x20))
				{
					delay();
					st = Read_Status();
				}
				TEST = 0;
				*/
			}
		delay();
	} 	
}

char Read_Status()
{
	char ReSt;

	P1 = 0xF5;

	FI2 = 1;
	Ins_delay();
	ReSt = P1;
	FI2 = 0;

	CS0 = 1;

	ReSt &= 0xF0;
	return ReSt;
}
char Read_Data()
{
	char ReSt;

	P1 = 0xF1;

	FI2 = 1;
	Ins_delay();
	ReSt = P1;
	FI2 = 0;

	CS0 = 1;

	ReSt &= 0xF0;
	return ReSt;
}

void Write_Control(uchar WC)
{
	WC &= 0xF0;
	WC |= 0x04;
	P1 = WC;
	Ins_delay();
	FI2 = 1;
	Ins_delay();
	FI2 = 0;
	Ins_delay();

	P1 = 0xF7;
}

void Write_Data(uchar WC)
{
	WC &= 0xF0;
	WC |= 0x00;
	P1 = WC;
	Ins_delay();
	FI2 = 1;
	Ins_delay();
	FI2 = 0;
	Ins_delay();
	
	P1 = 0xF7;
}

void delay()
{
	int i = 0;
	for(i = 0; i < 100;)
		i++;
	for(i = 0; i < 100;)
		i++;
}

void Ins_delay()
{
	uchar i;
	i = 0;
	for(; i < 10; i++)
	;
}
void Serial_Init()
{
	PCON = 0;
	SCON = 0xD0;
	TMOD = 0x20;
	TH1 = 0xFD;
	TL1 = 0xFD;
	EA = 1;
	ES = 1;
	TR1 = 1;  //T1 Running flag
}

⌨️ 快捷键说明

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