📄 lcd
字号:
//设置器程序 2004-7-13
//LCM为 8行*128列 (1-8)*(0-127)T6963
//#pragma CD SB OE DB SM
//#pragma OT(9,size)
#include "C:\keil\C51\INC\reg52.h"
#include "C:\keil\C51\INC\setjmp.h"
#include "C:\keil\C51\INC\stdio.h"
#include "C:\keil\C51\INC\string.h"
#include "C:\keil\C51\INC\intrins.h"
#include "C:\keil\C51\INC\ctype.h"
#include "C:\keil\C51\INC\math.h"
#include "C:\keil\C51\INC\stdlib.h"
#include "C:\keil\C51\INC\absacc.h"
#include "C:\keil\C51\INC\float.h"
#include "hzk.h"
#include "hpc800.h"
main()
{
unsigned char kkey=0;
init_sys();
kkey=0;
do{
kkey=key_scan();
}
while(kkey==0);
clscr();
updown_key=1;
sub_menu_lock=0;
for(;;)
{
if(sub_menu_lock==0) //子菜单无效,主菜单有效
{
menu_sel(updown_key);
key=key_scan();
if(key==KEY_DOWN) //下箭头
{
updown_key=updown_key+1;
if(updown_key>4)
{
updown_key=1;
}
}
else if(key==KEY_UP) //上箭头
{
if(updown_key==0)
{
updown_key=1;
}
else
{
updown_key=updown_key-1;
}
if(updown_key==0)
{
updown_key=4;
}
}
else if(((key==KEY_1)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(updown_key==1)) //选择子菜单1
{
clscr();
sub_menu1_updown_key=1;
sub_menu_lock=1;
sub_menu1_flag=1;
sub_menu2_flag=0;
sub_menu3_flag=0;
sub_menu4_flag=0;
}
else if(((key==KEY_2)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(updown_key==2)) //选择子菜单2
{
clscr();
sub_menu2_updown_key=1;
sub_menu_lock=1;
sub_menu1_flag=0;
sub_menu2_flag=1;
sub_menu3_flag=0;
sub_menu4_flag=0;
}
else if(((key==KEY_3)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(updown_key==3)) //选择子菜单3
{
clscr();
sub_menu3_updown_key=1;
sub_menu_lock=1;
sub_menu1_flag=0;
sub_menu2_flag=0;
sub_menu3_flag=1;
sub_menu4_flag=0;
}
else if(((key==KEY_4)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(updown_key==4)) //选择子菜单4
{
clscr();
sub_menu4_updown_key=1;
sub_menu_lock=1;
sub_menu1_flag=0;
sub_menu2_flag=0;
sub_menu3_flag=0;
sub_menu4_flag=1;
}
}
if(sub_menu_lock==1) //子菜单有效
{
if(sub_menu1_flag==1) //子菜单1有效
{
sub_menu1_sel(sub_menu1_updown_key);
key=key_scan();
if(key==KEY_DOWN)
{
sub_menu1_updown_key=sub_menu1_updown_key+1;
if(sub_menu1_updown_key>10)
{
sub_menu1_updown_key=1;
}
}
else if(key==KEY_UP)
{
if(sub_menu1_updown_key==0)
{
sub_menu1_updown_key=1;
}
else
{
sub_menu1_updown_key=sub_menu1_updown_key-1;
}
if(sub_menu1_updown_key==0)
{
sub_menu1_updown_key=10;
}
}
else if(((key==KEY_1)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu1_updown_key==1)) //选择子菜单1的子菜单1
{
set_terminal_addr(0); //设终端地址
}
else if(((key==KEY_2)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu1_updown_key==2)) //选择子菜单1的子菜单2
{
read_terminal_addr(0); //读终端地址
}
else if(((key==KEY_3)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu1_updown_key==3)) //选择子菜单1的子菜单3
{
read_terminal_status(); //读终端状态
}
else if(((key==KEY_4)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu1_updown_key==4)) //选择子菜单1的子菜单4
{
set_channel_addr(); //设通道地址
}
else if(((key==KEY_5)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu1_updown_key==5)) //选择子菜单1的子菜单5
{
read_channel_addr(); //读通道地址
}
else if(((key==KEY_6)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu1_updown_key==6)) //选择子菜单1的子菜单6
{
set_channel_mask(); //屏蔽所有通道
}
else if(((key==KEY_7)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu1_updown_key==7)) //选择子菜单1的子菜单7
{
set_trouble_mask(); //设故障屏蔽
}
else if(((key==KEY_8)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu1_updown_key==8)) //选择子菜单1的子菜单8
{
set_init_value(); //设置初始值
}
else if(((key==KEY_9)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu1_updown_key==9)) //选择子菜单1的子菜单9
{
read_init_value(); //读取初始值
}
else if(((key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu1_updown_key==10)) //选择子菜单1的子菜单10
{
read_sum_value(); //读取累计值
}
else if((key==KEY_CANCLE)|(key==KEY_LEFT)) //回到主菜单按键
{
clscr();
sub_menu_lock=0;
}
}
else if(sub_menu2_flag==1) //子菜单2有效
{
sub_menu2_sel(sub_menu2_updown_key);
key=key_scan();
if(key==KEY_DOWN)
{
sub_menu2_updown_key=sub_menu2_updown_key+1;
if(sub_menu2_updown_key>9)
{
sub_menu2_updown_key=1;
}
}
else if(key==KEY_UP)
{
if(sub_menu2_updown_key==0)
{
sub_menu2_updown_key=1;
}
else
{
sub_menu2_updown_key=sub_menu2_updown_key-1;
}
if(sub_menu2_updown_key==0)
{
sub_menu2_updown_key=9;
}
}
else if(((key==KEY_1)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu2_updown_key==1)) //选择子菜单2的子菜单1
{
round_check_terminal(); //巡检终端
}
else if(((key==KEY_2)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu2_updown_key==2)) //选择子菜单2的子菜单2
{
sent_simulate_pulse(); //发送脉冲
}
else if(((key==KEY_3)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu2_updown_key==3)) //选择子菜单2的子菜单3
{
sent_high_pulse(); //发高电平
}
else if(((key==KEY_4)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu2_updown_key==4)) //选择子菜单2的子菜单4
{
sent_low_pulse(); //发低电平
}
else if(((key==KEY_5)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu2_updown_key==5)) //选择子菜单2的子菜单5
{
sent_cut_pulse(); //断路电平
}
else if(((key==KEY_6)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu2_updown_key==6)) //选择子菜单2的子菜单6
{
sent_short_pulse(); //短路电平
}
else if(((key==KEY_7)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu2_updown_key==7)) //选择子菜单2的子菜单7
{
open_switch_command(); //打开开关
}
else if(((key==KEY_8)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu2_updown_key==8)) //选择子菜单2的子菜单8
{
close_switch_command(); //关闭开关
}
else if(((key==KEY_9)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu2_updown_key==9)) //选择子菜单2的子菜单9
{
read_channel_status(); //通道状态
}
else if((key==KEY_CANCLE)|(key==KEY_LEFT)) //回到主菜单按键
{
clscr();
sub_menu_lock=0;
}
}
else if(sub_menu3_flag==1) //子菜单3有效
{
sub_menu3_sel(sub_menu3_updown_key);
key=key_scan();
if(key==KEY_DOWN)
{
sub_menu3_updown_key=sub_menu3_updown_key+1;
if(sub_menu3_updown_key>10)
{
sub_menu3_updown_key=1;
}
}
else if(key==KEY_UP)
{
if(sub_menu3_updown_key==0)
{
sub_menu3_updown_key=1;
}
else
{
sub_menu3_updown_key=sub_menu3_updown_key-1;
}
if(sub_menu3_updown_key==0)
{
sub_menu3_updown_key=10;
}
}
else if(((key==KEY_1)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu3_updown_key==1)) //选择子菜单3的子菜单1
{
collect_data_all(); //全部数据采集
}
else if(((key==KEY_2)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu3_updown_key==2)) //选择子菜单3的子菜单2
{
query_data_all(); //全部数据查询
}
else if(((key==KEY_3)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu3_updown_key==3)) //选择子菜单3的子菜单3
{
query_coll_data(); //按集中器查询
}
else if(((key==KEY_4)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu3_updown_key==4)) //选择子菜单3的子菜单4
{
set_pulse_value(); //设置脉冲常数
}
else if(((key==KEY_5)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu3_updown_key==5)) //选择子菜单3的子菜单5
{
read_pulse_value(); //读取脉冲常数
}
else if(((key==KEY_6)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu3_updown_key==6)) //选择子菜单3的子菜单6
{
set_collector_addr(); //设集中器地址
}
else if(((key==KEY_7)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu3_updown_key==7)) //选择子菜单3的子菜单7
{
read_collector_addr(); //读集中器地址
}
else if(((key==KEY_8)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu3_updown_key==8)) //选择子菜单3的子菜单8
{
set_coll_it_addr(); //设置终端数量
}
else if(((key==KEY_9)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu3_updown_key==9)) //选择子菜单3的子菜单9
{
data_upload(); //抄表数据上载
}
else if(((key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu3_updown_key==10)) //选择子菜单3的子菜单10
{
clear_all_data(); //清空全部数据
}
else if((key==KEY_CANCLE)|(key==KEY_LEFT)) //回到主菜单按键
{
clscr();
sub_menu_lock=0;
colle_startup_flag=0;
}
}
else if(sub_menu4_flag==1) //子菜单4有效
{
sub_menu4_sel(sub_menu4_updown_key);
key=key_scan();
if(key==KEY_DOWN)
{
sub_menu4_updown_key=sub_menu4_updown_key+1;
if(sub_menu4_updown_key>5)
{
sub_menu4_updown_key=1;
}
}
else if(key==KEY_UP)
{
if(sub_menu4_updown_key==0)
{
sub_menu4_updown_key=1;
}
else
{
sub_menu4_updown_key=sub_menu4_updown_key-1;
}
if(sub_menu4_updown_key==0)
{
sub_menu4_updown_key=5;
}
}
else if(((key==KEY_1)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu4_updown_key==1)) //选择子菜单4的子菜单1
{
sys_status(); //系统状态
}
else if(((key==KEY_2)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu4_updown_key==2)) //选择子菜单4的子菜单2
{
set_comport(); //通讯设置
}
else if(((key==KEY_3)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu4_updown_key==3)) //选择子菜单4的子菜单3
{
set_timer(); //设置时间
}
else if(((key==KEY_4)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu4_updown_key==4)) //选择子菜单4的子菜单4
{
set_password(); //设置密码
}
else if(((key==KEY_5)|(key==KEY_RIGHT)|(key==KEY_ENTER))&&(sub_menu4_updown_key==5)) //选择子菜单4的子菜单5
{
set_logo_start(); //开机界面
}
else if((key==KEY_CANCLE)|(key==KEY_LEFT)) //回到主菜单按键
{
clscr();
sub_menu_lock=0;
}
}
}
}
}
void wcode(unsigned char cod)
{
//clr_wdt();
PB=PB&0xef; //chip select
_nop_();
PA=cod;
_nop_();
PB=PB|0x80; //CODE SELECT
PB=PB&0xdf; ///WR active low
PB=PB|0x20; ///WR active high
PB=PB|0x10; //chip deselect
}
void wdata(unsigned char dat)
{
//clr_wdt();
PB=PB&0xef; //chip select
PB=PB&0x7f; //data select
PB=PB&0xdf; //WR active low
_nop_();
PA=dat;
_nop_();
PB=PB|0x20; ///WR active high
PB=PB|0x10; //chip deselect
}
void setb(unsigned char dot)
{
wcode(0xf8|dot);
}
/*void clrb(unsigned char dot)
{
wcode(0xf0|dot);
}
*/
void setxy(unsigned char x,unsigned char y)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -