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

📄 computerterminal.c

📁 用GCC编写ATMEG128应用软件源代码
💻 C
字号:
/***********************************************************/
/*														   */
/*文 件 名:Computerterminal.c							   */
/*功    能:液晶终端机主系统文件                           */
/*当前版本:V1.0										   */
/*作    者:白广斌									       */
/*														   */
/*授    权:										       */
/*														   */
/*开始日期:2007.10.01								       */
/*完成日期:2007.10.14								       */
/*      	                                               */
/***********************************************************/
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/wdt.h>
#include <avr/eeprom.h>
#include <avr/pgmspace.h>
#include <Computerterminal.h>

#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long int

/*********************************************/
//函数名称:void IO_config(void)
//函数功能:I/O端口配置函数
//输入参数:无
//输出参数:无
//返 回 值:无
/*********************************************/
void IO_config(void)
{
	PORTA = 0x00;
    DDRA  = 0x00;
    PORTB = 0x00;
    DDRB  = 0xF0;
    PORTC = 0x00; //m103 output only
    DDRC  = 0xFF;
    PORTD = 0x00;
    DDRD  = 0xF0;
    PORTE = 0xFF;
    DDRE  = 0x00;
    PORTF = 0x00;
    DDRF  = 0x00;
    PORTG = 0x00;
    DDRG  = 0x00;
}


/*********************************************/
//函数名称:void Memory_config(void)
//函数功能:存储器配置函数
//输入参数:无
//输出参数:无
//返 回 值:无
/*********************************************/
void Memory_config(void)
{
    XDIV  = 0x00; //xtal divider
	MCUCR = 0xc0; //使能外部(RAM)存储器接口
	XMCRA = 0x0e;
	XMCRB = 0x87; //释放端口PC做普通I/O口使用
}

/*********************************************/
//函数名称:SY_YJ_Out(void)
//函数功能:预警语音输出函数
//输入参数:无
//输出参数:无
//返 回 值:无
/*********************************************/
void SY_YJ_Out(void)
{
    switch(YJ_Type)  //1:井喷,2:井漏,3:井涌
	{
	    case 1:    //井喷语音预警启动
		{
		    SY_Out++;
			if(SY_Out<YUYINON)
			{
			    SY1_JD(1);
			}
			else
			{
			    SY1_JD(0);  
				if(SY_Out>YUYINOFF){SY_Out=0;}
			}
			break;
		}
		case 2:   //井漏语音预警启动
		{
		    SY_Out++;
			if(SY_Out<YUYINON)
			{
			    SY1_JD(1);//2
			}
			else
			{
			    SY1_JD(0); //2 
				if(SY_Out>YUYINOFF){SY_Out=0;}
			}
			break;
		}
		case 3:   //井涌语音预警启动
		{
		    SY_Out++;
			if(SY_Out<YUYINON)
			{
			    SY1_JD(1);//3
			}
			else
			{
			    SY1_JD(0);  //3
				if(SY_Out>YUYINOFF){SY_Out=0;}
			}
			break;
		}
		default:        //正常状态,无预警
		{
		    SY_Out=0;   //语音预警提示计数器  清零
			SY1_JD(0);
	        SY2_JD(0);
	        SY3_JD(0);
			break;
		}
	}
}

/*********************************************/
//函数名称:main(void)
//函数功能:系统主函数
//返 回 值:无
/*********************************************/
int main(void)
{
	IO_config();
	SY1_JD(0);
	SY2_JD(0);
	SY3_JD(0);
	uart0_init();
    uart1_init();
	LCD_Initial();
	Memory_config();
	StartDs12c887();
	On_Pic();
	eeprom_busy_wait();
	AddrNuber=eeprom_read_byte(&ADDR);
	SREG|=0x80;  //全局中断允许
	wdt_enable(WDTO_1S);//使能看门狗,并配置看门狗溢出时间为1s
	wdt_reset();//喂狗
	while(1)
	{
		wdt_reset();//喂狗
		if(MenuNumber==0)
		{
		    Surveillance();
		}
		else
		{
		    SY_Out=YUYINON;   //在菜单操作中关闭语音预警提示
		}
		YDT();
//		Serial0_Send_out(cn);
        Serial0_Data_Processing(); //串口0接收数据处理函数
		key_Input_Processing();
		Run_Cn++;
		if(Run_Cn>250)
		{
		    BPL=0;    //泵排量
		    CKYW=0;   //出口液位
		    CKLL=0;   //出口流量
		    CKLS=0;   //出口流速
		    LLC_S=0;  //流量差(升/秒)
		    LLPL=0;   //理论排量(升/秒)
		    LJLL=0;   //累计流量
		    LJSJ=0;   //累计时间
			BXL_1=0;   //泵效率
			BXL_2=0;

		    Start_Month=0;   //起始  月
		    Start_Date=0;    //起始  日
		    Start_HH=0;      //起始  小时
		    Start_MM=0;      //起始  分钟
			
			YJ_Type=0;       //恢复正常
			
			Run_Cn=0;
		}
		
		Updat_Cn++;
		if((Updat_Cn>1000)&&(MenuNumber==0)){Updat_Cn=0;Pic_Screen(0,0);}  //更新显示界面
		
		SY_YJ_Out();      //预警语音输出函数
	}	
}

⌨️ 快捷键说明

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