📄 main.c
字号:
/***********************************************
程序功能:扫描4X4键盘并将键值在1602液晶上显示
------------------------------------------------
跳线设置:将跳线座J3上的短路帽拔下
------------------------------------------------
测试说明:按动K1~K16按键,观察液晶显示
************************************************/
#include <msp430x24x.h>
#include "Keypad.c"
#include "FM12864.c"
unsigned char txt[]={"我们"};
//引用外部变量的声明
extern unsigned char key_val;
extern unsigned char key_Flag;
uchar disbuf[]={0,0,0,0};
//存放健值
void savekey()
{disbuf[3]=disbuf[2];
disbuf[2]=disbuf[1];
disbuf[1]=disbuf[0];}
//显示函数
void display()
{
Disp_HZ(0x90,disbuf,2);
}
// 清除键程序
void clearbuf()
{ uint i;
for(i=0;i<4;i++)
disbuf[i]=0;
display();
}
//步进值为加1的调整程序
void add1mA()
{
disbuf[0]++;
if(disbuf[0]==10)
{
disbuf[0]=0;disbuf[1]++;
if(disbuf[1]==10)
{
disbuf[1]=0;disbuf[2]++;
if(disbuf[2]==10)
{disbuf[2]=0;disbuf[3]++;
if(disbuf[3]==10)
{disbuf[3]=0;}
}
}
}
}
//步进值为减1mA的调整程序
void sub1mA()
{
disbuf[0]--;
if(disbuf[0]==-1)
{
disbuf[0]=9;disbuf[1]--;
if(disbuf[1]==-1)
{
disbuf[1]=9;disbuf[2]--;
if(disbuf[2]==-1)
{disbuf[2]=9;disbuf[3]--;
if(disbuf[3]==0)
{disbuf[3]=0;}
}
}
}
display();
}
//步进值为加10mA的调整程序
void add10mA()
{
disbuf[1]++;
if(disbuf[1]==10)
{
disbuf[1]=0;disbuf[2]++;
if(disbuf[2]==10)
{
disbuf[2]=0;disbuf[3]++;
if(disbuf[3]==10)
{disbuf[3]=0;}
}
}
display();
}
//步进值为减10mA的调整程序
void sub10mA()
{
disbuf[1]--;
if(disbuf[1]==-1)
{
disbuf[1]=9;disbuf[2]--;
if(disbuf[2]==-1)
{
disbuf[2]=9;disbuf[3]--;
if(disbuf[3]==0)
{disbuf[3]=0;}
}
}
display();
}
/********************主函数********************/
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
Init_Keypad(); //初始化键盘端口
LCDInit();
LCDWriteAddr(0x30);
Disp_HZ(0x80,txt,2);
display();
while(1)
{
Key_Event();
if(key_Flag == 1)
{
key_Flag = 0;
if(key_val<10){savekey();disbuf[0]=key_val;display();}
else switch (key_val)
{case 10: clearbuf();display();break;
//case 11: comfirm(); display();break;
case 12: add1mA(); display();break;
case 13: sub1mA(); display();break;
case 14: add10mA();display();break;
case 15: sub10mA();display();break;
default: break;}
//显示十位
//temp = key_val / 10;
//if(temp)
// Disp1Char(6,1,0x30+temp); //数字的ASCII码值等于其本身数值加上0x30
// else
// Disp1Char(6,1,0x20); //0x20是空格对应的ASCII码
//显示个位
// temp = key_val % 10;
//Disp1Char(7,1,0x30+temp);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -