📄 main.c
字号:
//========================================================================
// 工程名称:Prj_MzLH06_EditDemo
// 作 者: xinqiang Zhang(小丑) (email: xinqiang@Mzdesign.com.cn)
// 联系方式:QQ 644272644
// 版权所有:北京铭正同创科技有限公司 www.mzdesign.com.cn
// 适应芯片: MCS-51 (本例选择AT89S52)
// 编程环境: Keil uVision 3
// 实现功能: MzLH06模块的Edit控件(数字编辑控件)功能演示
//
// 系统要求: PC with CPU 233MHz,128MB RAM,
// Keil uVision3(or later)
// 组成文件:
// Startup.s ----51的启动文件,自动生成的,不必要修改
//
// main.c ----主程序文件
// LCD_Dis.c
// LCD_Dis.h
// ----MzLH06模块的基本驱动程序
//
// Key_Service.c ----键盘服务程序
//
// 硬件连接:
// LCD CS ---P1.0
// LCD SCK ---P1.1
// LCD_MISO ---P1.2
// LCD MOSI ---P1.3
// LCD RD(Ready) ---P1.5
// 端口定义请参考LCD_Config.h文件中的定义
//
// LCD 视实际模块而定
//
// 键盘接入请参考该例程的电路示意图
// Key1 ---P0.1
// Key2 ---P0.2
// Key3 ---P0.3
// Key4 ---P0.4
// 键盘的另外一端接地,端口最好接上拉电阻
//
// 本例所演示的MzLH06模块的Edit控件(数字编辑控件)功能,使用了MzLH06模块的指令/数据
// 写入以及数据读出的功能,所以,LCD的MISO、RD引脚需要接入MCU的端口;而LCD模块的复位引脚
// 可以不接,模块内部自有复位的电路;而MCS51速度较慢,本例亦将对模块写数据前检测busy信号的
// 代码屏蔽,所以本例仅需要连接3根端口线
// 本例程仅提供参考,并没有演示该模块的Edit控件的所有功能,建议用户详细阅读模块的编
// 程手册;而例程中使用的键盘程序为简单的范例程序,用户可以参考,或者根据自己的需要自行
// 设计更合理的代码。
//
// 当前版本: V1.00
// 日期: 2008-11-16
//
// 参考文件:
// 维护记录:
//-------------------------------------------------------------------
// Version 2008-11-16-V10 Modified By Xinqiang Zhang(小丑)
//
//========================================================================
#include "LCD_Dis.h"
#include "Key_Service.h"
int main(void)
{
unsigned char Key_Dat;//=0;
int iTemp1=0,iTemp2=0,iTemp3=0;
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); //设置背光缓慢打开,至最亮
FontSet(0,1);
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);
//将Edit 控件中当前的数值读出另外显示,但此处不能显示负数
ShowShort(2,100,(unsigned short)iTemp1,0);
ShowShort(42,100,(unsigned short)iTemp2,0);
ShowShort(82,100,(unsigned short)iTemp3,0);
break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -