📄 computerterminal.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 + -