📄 main.c
字号:
//========================================================================
// 工程名称:Prj_MzLH06_EditDemo
// 作 者: xinqiang Zhang(小丑) (email: xinqiang@Mzdesign.com.cn)
// 联系方式:QQ 644272644
// 版权所有:北京铭正同创科技有限公司 www.mzdesign.com.cn
// 适应芯片: LPC21XX/LPC22XX(本例为LPC2292)
// 编程环境: Keil uVision 3
// 实现功能: MzLH06模块的Edit控件(数字编辑控件)功能演示
//
// 系统要求: PC with CPU 233MHz,128MB RAM,
// Keil uVision3(or later)
// 组成文件:
// Startup.s ----ARM7 LPC2292的启动文件,自动生成的,不必要修改
// target.c ----系统初始化,该文件中的代码会初始化存储器、PLL等一些必要东西// target.h ----可修改该文件的一些定义,以改变系统的基本配置
// type.h ----一些定义,与系统无关
// main.c ----主程序文件
// LCD_Dis.c
// LCD_Dis.h
// ----MzLH06模块的基本驱动程序
//
// Key_Service.c ----键盘服务程序
//
// 硬件连接:
// LCD CS ---Port1.16
// LCD SCK ---Port1.17
// LCD_MISO ---Port1.18
// LCD MOSI ---Port1.19
// LCD BY ---Port1.20
// LCD RD ---Port1.21
// 端口定义请参考LCD_Config.h文件中的定义
//
// LCD 3.3V供电~~~(建议)
//
// 键盘接入请参考该例程的电路示意图
// Key1 ---Port1.22
// Key2 ---Port1.23
// Key3 ---Port1.24
// Key4 ---Port1.25
// 键盘的另外一端接地,端口最好接上拉电阻
//
// 本例所演示的MzLH06模块的Edit控件(数字编辑控件)功能,使用了MzLH06模块的指令/数据
// 写入以及数据读出的功能,所以,LCD的MISO、RD引脚需要接入MCU的端口;而LCD模块的复位引脚
// 可以不接,模块内部自有复位的电路.
// 本例程仅提供参考,并没有演示该模块的Edit控件的所有功能,建议用户详细阅读模块的编
// 程手册;而例程中使用的键盘程序为简单的范例程序,用户可以参考,或者根据自己的需要自行
// 设计更合理的代码。
//
// 当前版本: V1.00
// 日期: 2008-11-16
//
// 参考文件:
// 维护记录:
//-------------------------------------------------------------------
// Version 2008-11-16-V10 Modified By Xinqiang Zhang(小丑)
//
//========================================================================
#include "Target.h"
#include "LCD_Dis.h"
#include "Key_Service.h"
int main(void)
{
unsigned char Key_Dat=0;
int iTemp1=0,iTemp2=0,iTemp3=0;
TargetInit(); //调用系统配置的初始化代码,初始化Flash加速、系统时钟等
Key_Initial();
LCD_Init();
SetBackLight(0); //设置背光的亮度等级为0
// SetBackLightStep(5);
ClrScreen(); //清屏
CreateEdit(101,10,10,60,20); //创建一个Edit控件,ID=101 x_s=10 y_s=10 width=60 hight=20
InitEdit(101,0,2387,1,0,6); //初始化ID号为101的Edit控件
//index_type=0 选择修改模式
//Var=2378 初始化的Edit的数值
//font=1 Edit控件的ASCII字符型号选择 1为8X16的ASCII字符
//tiny=0 Edit控件为无外框
//Stringlen=6 Edit控件最多为6位十进制位
CreateEdit(102,10,40,60,20); //创建一个Edit控件,ID=101 x_s=10 y_s=10 width=60 hight=20
InitEdit(102,0,2387,1,1,6); //初始化ID号为101的Edit控件
//index_type=0 选择修改模式
//Var=2378 初始化的Edit的数值
//font=1 Edit控件的ASCII字符型号选择 1为8X16的ASCII字符
//tiny=0 Edit控件为无外框
//Stringlen=6 Edit控件最多为6位十进制位
CreateEdit(103,10,70,60,20); //创建一个Edit控件,ID=101 x_s=10 y_s=10 width=60 hight=20
InitEdit(103,0,2387,1,2,6); //初始化ID号为101的Edit控件
//index_type=0 选择修改模式
//Var=2378 初始化的Edit的数值
//font=1 Edit控件的ASCII字符型号选择 1为8X16的ASCII字符
//tiny=0 Edit控件为无外框
//Stringlen=6 Edit控件最多为6位十进制位
ActiveEdit(101,1); //设置ID号为101的Edit控件为活动的
ActiveEdit(102,1); //设置ID号为101的Edit控件为活动的
ActiveEdit(103,1); //设置ID号为101的Edit控件为活动的
//以上代码设置了三个Edit控件Active,但实际上只能有一个ID号的控制处于活动状态,以最后一个设置Active状态
//的控件为当前Active的控件,之所以前面将它们都设置Active,是因为设置Active之后控件会重绘其自身的显示
SetBackLightAuto(100); //设置背光缓慢打开,至最亮
while(1)
{
KeyScan_Service();
Key_Dat = Key_Get();
if(Key_Dat)
{
switch(Key_Dat)
{
case 1: //按键1按下时,送“上”操作按键消息至控件
SendMessageEdit(GUI_SCANCODE_UP);
break;
case 2: //按键2按下时,送“下”操作按键消息至控件
SendMessageEdit(GUI_SCANCODE_DOWN);
break;
case 3: //按键3按下时,送“TAB”操作按键消息至控件,会使得Active状态在各控件间切换
SendMessageEdit(GUI_SCANCODE_TAB);
break;
case 4: //按键1按下时,送“右移动”操作按键消息至控件
SendMessageEdit(GUI_SCANCODE_RIGHT);
break;
case 5: //按键1长按下时,读出各控件当前的数值
iTemp1 = GetValEdit(101);
iTemp2 = GetValEdit(102);
iTemp3 = GetValEdit(103);
iTemp1 = iTemp1; //以下代码仅仅是为了让编译器不产生警告,没办法,定义了数据没有使用会有警告的
iTemp2 = iTemp2;
iTemp3 = iTemp3;
break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -