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

📄 hardwarec.c

📁 利用51和1602液晶屏读写EEPROM的内容,可以查看,修改,也可以发给PC的超级终端作为文件保存下来.
💻 C
字号:
#include "externh.h"

#define Timer0Run(var)	{TR0 =var?1:0;}

#define CPUFREQ		11059200
#define SAMPLEFREQ		32
#define SAMPLETIME	(CPUFREQ/6/SAMPLEFREQ)  
#define UARTBAUDRATE 9600

KEY Key;

volatile U8 DelayCount;
void Timer0Init(void)
{
	TMOD |=0x01;
	TH0	=-(SAMPLETIME/256);
	TL0 =-(SAMPLETIME%256);
	ET0=1;
}
void timer0(void) interrupt 1 using 2
{
	TH0	=-(SAMPLETIME/256);
	TL0 =-(SAMPLETIME%256);
	g.Flag.Timer32ms=1;
	if(DelayCount) DelayCount--;
}
void SystemInit(void)
{
	P0=0xff;
	P1=0xff;
	P2=0xff;
	P3=0xff;
	P4=0xff;
	Timer0Init();
	Timer0Run(1);
	Rs232Init();
	ET1=0;
}
void Rs232Init() 
{
 
   TCON &= 0x3F;                     /* clear run & interrupt flags        */
   TMOD &= 0x0F;                     /* flush existing Timer 1 setup       */
   TMOD |= 0x20;                     /* flush existing Timer 1 setup       */

   SCON = 0x50;                     /* flush existing Timer 1 setup        */
   PCON |= 0x00;                       
   TH1 = TL1 = (unsigned char)( 256-((CPUFREQ/12)/32)/UARTBAUDRATE);  //设置波特率发生器定时器
   TR1 = 1;                        /* start the timer                    */
   TI  = 1;
   
}
void GetKey(void)
{
	Key.hz=Key.Code;
	Key.Code=0;
}
void gSet(U8 ch)
{
	g.State=ch;
	g.Flag.Disp=1;
}
U8 KeyScan0(void)
{
	ClrBit(P3,COLUM);
	if(!ChkBit(P3,6)) return('#');
	if(!ChkBit(P3,7)) return('0');
	if(!ChkBit(P4,1)) return('*');
	if(!ChkBit(P2,5)) return('9');
	if(!ChkBit(P2,6)) return('8');
	if(!ChkBit(P2,7)) return('7');
	if(!ChkBit(P2,2)) return('2');
	if(!ChkBit(P2,3)) return('3');
	if(!ChkBit(P2,4)) return('4');
	if(!ChkBit(P4,0)) return('5');
	if(!ChkBit(P2,0)) return('6');
	if(!ChkBit(P2,1)) return('1');
	return (0);
}
void Delay(U8 ms)
{//短
	DelayCount=ms;
	while(DelayCount);
}
void PutCh(U8 i)
{
	SBUF=i;
	while(TI==0);
	TI=0;
}
void KeyScan(void)
{
	if(KeyScan0()){
		switch(Key.State){
			case 0:
				Key.State++;
				break;
			case 1:
				Key.State++;
				Key.Code=KeyScan0();
				break;
			default:
				break;
		}
	}else{
		Key.State=0;
		Key.Code=0;
	}
}

⌨️ 快捷键说明

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