课程设计—模拟计算器设计

2018-11-12 13:37

void MainTask1(void *pdata) { pdata=pdata; BSP_Init(); //硬件初始化 GUI_Init(); //GUI初始化 GUI_SetBkColor(GUI_BLACK); //设置彩屏背景颜色为黑色 GUI_Clear(); GUI_TOUCH_Calibrate(0,0,320,296,3854); GUI_TOUCH_Calibrate(1,0,240,249,3906); //屏幕校准 // GUI_CURSOR_Show(); //显示光标 WidgetCreate(); //建立控件 GUI_Exec(); //显示控件 for(;;) { KeyCallback(edit); //响应控件 } }

/*任务二:专门为触屏和控件的更新而建立的任务*/ void Task1(void *pdata) { pdata=pdata; for(;;) { WM_Exec(); //更新窗口 GUI_TOUCH_Exec(); //更新触屏 OSTimeDly(10); } }

b)、计算器图形界面的相关代码

/*GUI相关变量*/ EDIT_Handle edit;

BUTTON_Handle num0,num1,num2,num3,num4,num5,num6,num7,num8,num9;//数字

0~9,

BUTTON_Handle numPoint,numPlus,numSub,numMul,numDiv;//小数点,加号,减号,

除号,乘号

BUTTON_Handle clear,inverse,square,equal,about; //清除,倒数,平方,等于

/*图形界面函数*/

void WidgetCreate(void) { /*画计算器边框*/

6

GUI_SetPenSize(3); GUI_SetColor(GUI_RED); GUI_DrawLine(7,0,7,239); GUI_DrawLine(311,0,311,239); GUI_DrawLine(7,238,311,238); GUI_DrawLine(7,1,311,1);

//设置之前宽度为3个像素 //设置边框颜色为红色 //画边框

edit=EDIT_Create(15,5,225,50,'e',10,WM_CF_SHOW);//创建编辑框 EDIT_SetFont(edit,&GUI_Font32B_ASCII); //设置编辑框内容字体大小

num7=BUTTON_Create(15,60,50,35,'7',WM_CF_SHOW);//创建数字7的按钮 BUTTON_SetFont(num7,&GUI_Font24_ASCII); //设置字体24号 BUTTON_SetText(num7,\ //按钮上显示7 BUTTON_SetTextColor(num7,0,GUI_WHITE); //设置字体颜色 BUTTON_SetBkColor(num7,0,GUI_DARKBLUE); //设置按钮背景颜色 num4=BUTTON_Create(15,105,50,35,'4',WM_CF_SHOW);//创建数字4的按钮 BUTTON_SetFont(num4,&GUI_Font24_ASCII); BUTTON_SetText(num4,\

BUTTON_SetTextColor(num4,0,GUI_WHITE); BUTTON_SetBkColor(num4,0,GUI_DARKBLUE); num1=BUTTON_Create(15,150,50,35,'1',WM_CF_SHOW); //创建数字1的按钮 BUTTON_SetFont(num1,&GUI_Font24_ASCII); BUTTON_SetText(num1,\

BUTTON_SetTextColor(num1,0,GUI_WHITE); BUTTON_SetBkColor(num1,0,GUI_DARKBLUE);

num0=BUTTON_Create(15,195,110,35,'0',WM_CF_SHOW);//创建数字0的按钮 BUTTON_SetFont(num0,&GUI_Font24_ASCII); BUTTON_SetText(num0,\

BUTTON_SetTextColor(num0,0,GUI_WHITE); BUTTON_SetBkColor(num0,0,GUI_DARKBLUE);

num8=BUTTON_Create(74,60,50,35,'8',WM_CF_SHOW); //创建数字8的按钮 BUTTON_SetFont(num8,&GUI_Font24_ASCII); BUTTON_SetText(num8,\

BUTTON_SetTextColor(num8,0,GUI_WHITE); BUTTON_SetBkColor(num8,0,GUI_DARKBLUE);

num5=BUTTON_Create(74,105,50,35,'5',WM_CF_SHOW); //创建数字5的按钮 BUTTON_SetFont(num5,&GUI_Font24_ASCII); BUTTON_SetText(num5,\

BUTTON_SetTextColor(num5,0,GUI_WHITE); BUTTON_SetBkColor(num5,0,GUI_DARKBLUE);

num2=BUTTON_Create(74,150,50,35,'2',WM_CF_SHOW); //创建数字2的按钮 BUTTON_SetFont(num2,&GUI_Font24_ASCII); BUTTON_SetText(num2,\

BUTTON_SetTextColor(num2,0,GUI_WHITE);

7

按钮

BUTTON_SetBkColor(num2,0,GUI_DARKBLUE);

num9=BUTTON_Create(133,60,50,35,'9',WM_CF_SHOW); //创建数字9的按钮 BUTTON_SetFont(num9,&GUI_Font24_ASCII); BUTTON_SetText(num9,\

BUTTON_SetTextColor(num9,0,GUI_WHITE); BUTTON_SetBkColor(num9,0,GUI_DARKBLUE);

num6=BUTTON_Create(133,105,50,35,'6',WM_CF_SHOW);//创建数字6的按钮 BUTTON_SetFont(num6,&GUI_Font24_ASCII); BUTTON_SetText(num6,\

BUTTON_SetTextColor(num6,0,GUI_WHITE); BUTTON_SetBkColor(num6,0,GUI_DARKBLUE);

num3=BUTTON_Create(133,150,50,35,'3',WM_CF_SHOW); //创建数字3的按钮 BUTTON_SetFont(num3,&GUI_Font24_ASCII); BUTTON_SetText(num3,\

BUTTON_SetTextColor(num3,0,GUI_WHITE); BUTTON_SetBkColor(num3,0,GUI_DARKBLUE);

numPoint=BUTTON_Create(133,195,50,35,'.',WM_CF_SHOW);//创建小数点.的按BUTTON_SetFont(numPoint,&GUI_Font24_ASCII); BUTTON_SetText(numPoint,\

BUTTON_SetTextColor(numPoint,0,GUI_WHITE); BUTTON_SetBkColor(numPoint,0,GUI_DARKBLUE);

numDiv=BUTTON_Create(192,60,50,35,'/',WM_CF_SHOW);//创建除号/的按钮 BUTTON_SetFont(numDiv,&GUI_Font24_ASCII); BUTTON_SetText(numDiv,\

numMul=BUTTON_Create(192,105,50,35,'*',WM_CF_SHOW);//创建乘号*的按钮 BUTTON_SetFont(numMul,&GUI_Font24_ASCII); BUTTON_SetText(numMul,\

numSub=BUTTON_Create(192,150,50,35,'-',WM_CF_SHOW);//创建减号-的按钮 BUTTON_SetFont(numSub,&GUI_Font24_ASCII); BUTTON_SetText(numSub,\

numPlus=BUTTON_Create(192,195,50,35,'+',WM_CF_SHOW); //创建加好+的按BUTTON_SetFont(numPlus,&GUI_Font24_ASCII); BUTTON_SetText(numPlus,\

clear=BUTTON_Create(251,60,50,35,'c',WM_CF_SHOW); //创建清除键clear的BUTTON_SetFont(clear,&GUI_Font24_ASCII); BUTTON_SetText(clear,\

BUTTON_SetBkColor(clear,0,GUI_YELLOW);

8

的按钮

inverse=BUTTON_Create(251,105,50,35,'i',WM_CF_SHOW); //创建倒数1/X的按BUTTON_SetFont(inverse,&GUI_Font24_ASCII); BUTTON_SetText(inverse,\

square=BUTTON_Create(251,150,50,35,'s',WM_CF_SHOW);//创建平方X^2的按BUTTON_SetFont(square,&GUI_Font24_ASCII); BUTTON_SetText(square,\

equal=BUTTON_Create(251,195,50,35,'=',WM_CF_SHOW);//创建等号=的按钮 BUTTON_SetFont(equal,&GUI_Font24_ASCII); BUTTON_SetText(equal,\

BUTTON_SetBkColor(equal,0,GUI_YELLOW);

about=BUTTON_Create(249,20,57,30,'a',WM_CF_SHOW); //创建说明信息about

BUTTON_SetFont(about,&GUI_Font24_ASCII); BUTTON_SetText(about,\ BUTTON_SetBkColor(about,0,GUI_LIGHTGRAY); }

c)、按键响应代码

/*按钮响应函数*/

void KeyCallback(EDIT_Handle obj) { /*重画边框,因为控件在最上层,会把下层的图案覆盖掉*/ GUI_SetPenSize(3); GUI_SetColor(GUI_RED); GUI_DrawLine(7,0,7,239); GUI_DrawLine(311,0,311,239); GUI_DrawLine(7,238,311,238); GUI_DrawLine(7,1,311,1); switch (GUI_WaitKey()) { case '0': if(operaFlag==1) //如果是刚操作完运算

符号后的数,先把编辑框清掉

{ EDIT_SetText(obj,NULL); operaFlag=0; } EDIT_GetText(obj,editBuf,10); if((*editBuf!='0')) //保证不会出现001这

样的情况

{ EDIT_AddKey(obj,'0'); } break;

9

的情况

case '1': if(operaFlag==1) { EDIT_SetText(obj,NULL); operaFlag=0; } EDIT_GetText(obj,editBuf,10); if((*editBuf=='0')&&(*(editBuf+1)!='.'))//保证不会出现.123这样

{

EDIT_SetText(obj,NULL);

} EDIT_AddKey(obj,'1'); break; case '2': if(operaFlag==1) { EDIT_SetText(obj,NULL); operaFlag=0; } EDIT_GetText(obj,editBuf,10); if((*editBuf=='0')&&(*(editBuf+1)!='.')) { EDIT_SetText(obj,NULL); } EDIT_AddKey(obj,'2'); break; case '3': if(operaFlag==1) { EDIT_SetText(obj,NULL); operaFlag=0; } EDIT_GetText(obj,editBuf,10); if((*editBuf=='0')&&(*(editBuf+1)!='.')) { EDIT_SetText(obj,NULL); } EDIT_AddKey(obj,'3'); break; case '4': if(operaFlag==1) { EDIT_SetText(obj,NULL); operaFlag=0; } EDIT_GetText(obj,editBuf,10); if((*editBuf=='0')&&(*(editBuf+1)!='.')) { EDIT_SetText(obj,NULL); } EDIT_AddKey(obj,'4');

10


课程设计—模拟计算器设计.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:作业展示——报纸策划2

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: