📄 main.c
字号:
#include <msp430x16x.h>
#include "display.h"
void Init_Port();
void Delay(unsigned int i); //延时子程序
int KeyProcess(void);
long int tempp=0;
void d0_3_1(void);
void d0_3_2(void);
void d0_3_3(void);
void d1_2_1(void);
void d1_2_2(void);
void d2(void);
void d3(void);
void d4(void);
//zhi:显示数值 hang:显示行数 fab:反显
/*void displayy(long int zhi,char hang,char fab)
{
unsigned char temp1,temp2,temp3,temp4,temp5;
long int temp;
temp = zhi;
temp5= (temp/10000)%10;
temp4= (temp/1000)%10;
temp3= (temp/100)%10;
temp2= (temp/10)%10;
temp1= temp%10;
WriteChinese(0, hang ,0, fab); //"电"
WriteChinese(16, hang ,1, fab);//"压"
WriteAbc(32, hang ,10, fab); //":"
WriteAbc(41, hang ,temp5, fab);//"0"
WriteAbc(50, hang ,temp4, fab);//"0"
WriteAbc(59, hang ,11, fab); //"."
WriteAbc(68, hang ,temp3, fab);//"0"
WriteAbc(77, hang ,temp2, fab);//"0"
WriteAbc(86, hang ,temp1, fab);//"0"
WriteAbc(95, hang ,12, fab); //"V"
}*/
//******************************************************************************
#define SIZE_OF_KEYBD_MENU 10 //菜单长度
#define uchar unsigned char
uchar KeyFuncIndex=0;
void (*KeyFuncPtr)(); //按键功能指针
typedef struct
{
uchar KeyStateIndex; //当前状态索引号
uchar KeyDnState; //按下"向下"键时转向的状态索引号
uchar KeyUpState; //按下"向上"键时转向的状态索引号
uchar KeyCrState; //按下"回车"键时转向的状态索引号
uchar KeyQuxiao; //按下"取消"键时转向的状态索引号
void (*CurrentOperate)(); //当前状态应该执行的功能操作
} KbdTabStruct;
KbdTabStruct const KeyTab[SIZE_OF_KEYBD_MENU]=
{
//序-下-上-确-返------------------
{ 0, 1, 2, 3, 0,(*d0_3_1)},//顶层 "数据读取"
{ 1, 2, 0, 0, 1,(*d0_3_2)},//顶层 "功能设置"
{ 2, 0, 1, 7, 2,(*d0_3_3)},//顶层 "版本信息"
{ 3, 4, 4, 5, 0,(*d1_2_1)},//第二层>>d0_3_1的展开 "电压读取"
{ 4, 3, 3, 6, 0,(*d1_2_2)},//第二层>>d0_3_1的展开 "电流读取"
{ 5, 5, 5, 5, 3,(*d2)},//第三层>>d1_2_1的展开 "ABC电压"
{ 6, 6, 6, 6, 4,(*d3)},//第三层>>d1_2_2的展开 "ABC电流"
{ 7, 7, 7, 2, 7,(*d4)}//第三层>>d0_3_3的展开 "版本信息"
};
//******************************************************************************
void d0_3(uchar sel)
{
ClearSree(0);//清屏
//----------lie-hang-xv-fx-----
WriteChinese(32, 0 ,0, 0); //"数"
WriteChinese(48, 0 ,1, 0);//"据"
WriteChinese(64, 0 ,2, 0);//"读"
WriteChinese(80, 0 ,3, 0);//"取"
WriteChinese(32, 2 ,13, 0); //"功"
WriteChinese(48, 2 ,14, 0);//"能"
WriteChinese(64, 2 ,15, 0);//"设"
WriteChinese(80, 2 ,16, 0);//"置"
WriteChinese(32, 4 ,17, 0); //"版"
WriteChinese(48, 4 ,18, 0);//"本"
WriteChinese(64, 4 ,19, 0);//"信"
WriteChinese(80, 4 ,20, 0);//"息"
WriteChinese(0, 6 ,9, 0); //"确"
WriteChinese(16, 6 ,10, 0);//"认"
WriteChinese(56, 6 ,21, 0);//"箭头"
switch(sel)
{
case 1:
WriteChinese(32, 0 ,0, 1); //"数"
WriteChinese(48, 0 ,1, 1);//"据"
WriteChinese(64, 0 ,2, 1);//"读"
WriteChinese(80, 0 ,3, 1);//"取"
WriteChinese(0, 6 ,9, 0); //"确"
WriteChinese(16, 6 ,10, 0);//"认"
WriteChinese(56, 6 ,21, 0);//"箭头"
break;
case 2:
WriteChinese(32, 2 ,13, 1); //"功"
WriteChinese(48, 2 ,14, 1);//"能"
WriteChinese(64, 2 ,15, 1);//"设"
WriteChinese(80, 2 ,16, 1);//"置"
WriteChinese(0, 6 ,9, 0); //"确"
WriteChinese(16, 6 ,10, 0);//"认"
WriteChinese(56, 6 ,21, 0);//"箭头"
break;
case 3:
WriteChinese(32, 4 ,17, 1); //"版"
WriteChinese(48, 4 ,18, 1);//"本"
WriteChinese(64, 4 ,19, 1);//"信"
WriteChinese(80, 4 ,20, 1);//"息"
WriteChinese(0, 6 ,9, 0); //"确"
WriteChinese(16, 6 ,10, 0);//"认"
WriteChinese(56, 6 ,21, 0);//"箭头"
break;
}
}
void d0_3_1(void)
{
d0_3(1);//读取数据反显
}
void d0_3_2(void)
{
d0_3(2);//功能设置反显
}
void d0_3_3(void)
{
d0_3(3);//版本信息反显
}
//==============================================================================
void d1_2(uchar sel)
{
ClearSree(0);//清屏
WriteChinese(32, 0 ,5, 0); //"电"
WriteChinese(48, 0 ,6, 0);//"压"
WriteChinese(64, 0 ,2, 0);//"读"
WriteChinese(80, 0 ,3, 0);//"取"
WriteChinese(32, 2 ,5, 0); //"电"
WriteChinese(48, 2 ,7, 0);//"流"
WriteChinese(64, 2 ,2, 0);//"读"
WriteChinese(80, 2 ,3, 0);//"取"
WriteChinese(0, 6 ,9, 0);//"确"
WriteChinese(16, 6 ,10, 0);//"认"
WriteChinese(96, 6 ,11, 0); //"取"
WriteChinese(112, 6 ,12, 0);//"消"
WriteChinese(56, 6 ,21, 0);//"箭头"
switch(sel)
{
case 1:
WriteChinese(32, 0 ,5, 1); //"电"
WriteChinese(48, 0 ,6, 1);//"压"
WriteChinese(64, 0 ,2, 1);//"读"
WriteChinese(80, 0 ,3, 1);//"取"
WriteChinese(0, 6 ,9, 0); //"确"
WriteChinese(16, 6 ,10, 0);//"认"
WriteChinese(96, 6 ,11, 0); //"取"
WriteChinese(112, 6 ,12, 0);//"消"
WriteChinese(56, 6 ,21, 0);//"箭头"
break;
case 2:
WriteChinese(32, 2 ,5, 1);//"电"
WriteChinese(48, 2 ,7, 1);//"流"
WriteChinese(64, 2 ,2, 1);//"读"
WriteChinese(80, 2 ,3, 1);//"取"
WriteChinese(0, 6 ,9, 0); //"确"
WriteChinese(16, 6 ,10, 0);//"认"
WriteChinese(96, 6 ,11, 0); //"取"
WriteChinese(112, 6 ,12, 0);//"消"
WriteChinese(56, 6 ,21, 0);//"箭头"
break;
default:
break;
}
}
void d1_2_1(void)
{
d1_2(1);//反显电压读取
}
void d1_2_2(void)
{
d1_2(2);//反显电流读取
}
//==============================================================================
void d2(void)
{
ClearSree(0);//清屏
unsigned char temp1,temp2,temp3,temp4,temp5;
long int temp;
temp = tempp;
temp5= (temp/10000)%10;
temp4= (temp/1000)%10;
temp3= (temp/100)%10;
temp2= (temp/10)%10;
temp1= temp%10;
WriteAbc(0, 0 ,12, 0);//"A"
WriteChinese(16, 0 ,4, 0);//"相"
WriteChinese(32, 0 ,5, 0);//"电"
WriteChinese(48, 0 ,6, 0);//"压"
WriteAbc(64, 0 ,10, 0);//":"
WriteAbc(65, 0 ,temp5, 0); //"0"
WriteAbc(75, 0 ,temp4, 0); //"0"
WriteAbc(84, 0 ,11,0); //"."
WriteAbc(93, 0 ,temp3, 0); //"0"
WriteAbc(102, 0 ,temp2, 0);//"0"
WriteAbc(111, 0 ,temp1, 0);//"0"
WriteAbc(120, 0 ,32, 0);//"V"
WriteAbc(0, 2 ,13, 0);//"B"
WriteChinese(16, 2 ,4, 0);//"相"
WriteChinese(32, 2 ,5, 0);//"电"
WriteChinese(48, 2 ,6, 0);//"压"
WriteAbc(64, 2 ,10, 0);//":"
WriteAbc(120, 2 ,32, 0);//"V"
WriteAbc(0, 4 ,14, 0);//"C"
WriteChinese(16, 4 ,4, 0);//"相"
WriteChinese(32, 4 ,5, 0);//"电"
WriteChinese(48, 4 ,6, 0);//"压"
WriteAbc(64, 4 ,10, 0);//":"
WriteAbc(120, 4 ,32, 0);//"V"
WriteChinese(96, 6 ,11, 0); //"取"
WriteChinese(112, 6 ,12, 0);//"消"
}
//==============================================================================
void d3(void)
{
ClearSree(0);//清屏
WriteAbc(0, 0 ,12, 0); //"A"
WriteChinese(16, 0 ,4, 0); //"相"
WriteChinese(32, 0 ,5, 0); //"电"
WriteChinese(48, 0 ,7, 0); //"流"
WriteAbc(64, 0 ,10, 0); //":"
WriteAbc(120, 0 ,12, 0); //"A"
WriteAbc(0, 2 ,13, 0); //"B"
WriteChinese(16, 2 ,4, 0); //"相"
WriteChinese(32, 2 ,5, 0); //"电"
WriteChinese(48, 2 ,7, 0); //"流"
WriteAbc(64, 2 ,10, 0); //":"
WriteAbc(120, 2 ,12, 0); //"A"
WriteAbc(0, 4 ,14, 0); //"C"
WriteChinese(16, 4 ,4, 0); //"相"
WriteChinese(32, 4 ,5, 0); //"电"
WriteChinese(48, 4 ,7, 0); //"流"
WriteAbc(64, 4 ,10, 0); //":"
WriteAbc(120, 4 ,12, 0); //"A"
WriteChinese(96, 6 ,11, 0); //"取"
WriteChinese(112, 6 ,12, 0);//"消"
}
//******************************************************************************
void d4(void)
{
ClearSree(0);//清屏
WriteChinese(32, 0 ,17, 0); //"版"
WriteChinese(48, 0 ,18, 0);//"本"
WriteChinese(64, 0 ,19, 0);//"信"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -