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

📄 main.c

📁 C8051F120平台下LCD240128显示字符,中文的C程序,编译通过并实际使用!
💻 C
字号:
#include <C8051F120.h>
#include <RealTime.h>
#include <Delay.h>
#include <BC7281.h>
#include <LCD.h>
#include <absacc.h>
#include <string.h>

BYTE idata rd[10];
BYTE idata value[3];
BYTE idata r,s;

void Oscillator_Init()
{
	char SFRPAGE_SAVE=SFRPAGE;
    SFRPAGE   = CONFIG_PAGE;
    OSCXCN    = 0x67;
	Delay_ms(2);
    while ((OSCXCN & 0x80) == 0);
	CLKSEL    = 0x01;
    OSCICN    = 0x00;
    SFRPAGE   = SFRPAGE_SAVE;
}

void Port_Init()
{
	char SFRPAGE_SAVE=SFRPAGE;
    SFRPAGE   = CONFIG_PAGE;
	XBR0=0x07;
	XBR1=0x00;
	XBR2=0x00;
	P0MDOUT=0xFF;
	//P0=0x00;
	P1MDOUT=0xFF;
	//P1MDIN=0xFF;
	//P1=0x00;
	P2MDOUT=0xFF;
	//P2=0x00;
	P3MDOUT=0xFF;
	//P3=0x00;
	P4MDOUT=0xFF;
	//P4=0x00;
	P5MDOUT=0xff;
	//P5=0x00;
	P6MDOUT=0xFF;
	//P6=0x00;
	P7MDOUT=0xFF;
	//P7=0x00;
	XBR2=XBR2 | 0x40;  //打开交叉开关
    SFRPAGE   = SFRPAGE_SAVE;
}

void EMI_Init()
{
	char  SFRPAGE_SAVE=SFRPAGE;
    SFRPAGE = EMI0_PAGE;
	EMI0CF=0X2B;
	EMI0TC=0xE7;
	//EMI0CN=0x10;
	SFRPAGE = EMI0_PAGE;
    SFRPAGE = SFRPAGE_SAVE;
}

void DisableWD()
{
	EA=0;
	WDTCN=0xDE;
	WDTCN=0xAD;
	EA=1;
}

void EnableWD()
{
	EA=0;
	WDTCN=0xA5;
	EA=1;
}


void IntToStr(BYTE t) 
{
BYTE idata a[3]; 
BYTE idata i,length; 
BYTE idata x=0;
x=t;
t=(t>>4)*6;
t=x-t;
x=t;
for(i=0;i<2;i++)
{
   value[i]=' ';
}
i=0;
while(t/10) 			//将计数值转换为数码管段码值
       	{ 
            a[i]=t%10; 
            t=t/10; 
            i++; 
           } 
    a[i]=t;	 
    length=i+1;                                                     
	for(i=0; i<length; i++)         //转成ASCII码              	
	{
	  if(x<10)
	  	{
			value[i]='0';
			value[i+1]=a[length-i-1]+'0';
		}
	  else
	  	{value[i]=a[length-i-1]+'0';}	
    }

}

void main(void)
{
	char SFRPAGE_SAVE=SFRPAGE;
    SFRPAGE  = SMB0_PAGE;
	Oscillator_Init();
	Port_Init();
	//P2=0x00;
	//P2=0xFF;
	DisableWD();
	EMI_Init();
	Init_LCD();
 	Clear_Screen();
	Display_Image(10,1);
	Display_String(5,5,"HEP-C8051F120");
	Display_hz(18,5,"实验平台");
	Display_String(8,6,"2008");
	Display_hz(12,6,"年");
	Display_hz(16,6,"月");
	Display_hz(20,6,"日");
	Display_String(14,7,":");
	SMB0_Init();
	EA=1;
	SI=0;


	//PCF8563_TimeInit();
	Set7281(0x12,0x80);
	Set7281(0x10,0xDB);
	Set7281(0x11,0xA0);
	Set7281(0x05,0xBF);
	//Set7281(0x02,0xBF);
	while(1)
	{
	SMB0_ReadPCF8563(rd,0,9);
	//Write7281(1,rd[2]&0x0F);
	//Write7281(2,(rd[2]&0xF0)/16);
	Delay_ms(50);
	Write7281(4,rd[3]&0x0F);
	Delay_ms(50);
    Write7281(5,(rd[3]&0xF0)/16);
	Delay_ms(50);
	Write7281(7,rd[4]&0x0F);
	Delay_ms(50);
	Write7281(8,(rd[4]&0xF0)/16);
	Delay_ms(50);
	IntToStr(rd[7]);
	Display_String(14,6,value);
	Delay_ms(50);
	IntToStr(rd[5]);
	Display_String(18,6,value);
	Delay_ms(50);
	IntToStr(rd[4]);
	Display_String(12,7,value);
	Delay_ms(50);
	IntToStr(rd[3]);
	Display_String(15,7,value);
	Delay_ms(50); 
	XBYTE[0x57FF]=0xFE;
	Delay_ms(300);	
	XBYTE[0x57FF]=0xFD;
	Delay_ms(300);	
	XBYTE[0x57FF]=0xFB;
	Delay_ms(300);
	XBYTE[0x57FF]=0xF7;
	Delay_ms(300);
	XBYTE[0x57FF]=0xEF;
	Delay_ms(300); 
	XBYTE[0x57FF]=0xDF;
	Delay_ms(300); 
	XBYTE[0x57FF]=0xBF;
	Delay_ms(300); 
	XBYTE[0x57FF]=0x7F;
	Delay_ms(300);
	XBYTE[0x5FFF]=0xFE;
	Delay_ms(300);
	XBYTE[0x5FFF]=0xFD;
	Delay_ms(300);
	XBYTE[0x5FFF]=0xFB;
	Delay_ms(300);
	XBYTE[0x5FFF]=0xF7;
	Delay_ms(300);
	XBYTE[0x5FFF]=0xEF;
	Delay_ms(300);
	XBYTE[0x5FFF]=0xDF;
	Delay_ms(300);
	XBYTE[0x5FFF]=0xBF;
	Delay_ms(300);
	XBYTE[0x57FF]=0x00;
	Delay_ms(300);
	XBYTE[0x5FFF]=0x00;
	Delay_ms(500);
	}
	//rd=GetKey();
	SFRPAGE   = SFRPAGE_SAVE;
}

⌨️ 快捷键说明

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