基于stm32的简易计算器设计毕业设计论文内容摘要:
pos_temp[4][2]。 //存放4个调试点的坐标值X和Y的数组 u8 t=0。 //记录数组的行 u16 d1,d2。 u32 tem1,tem2。 float fac。 u16 outtime=0。 t=0。 Lcd_Clear_All(WHITE)。 //清屏 Tp_Draw_Adjustpoint(20, 20, amp。 Adjust_pen)。 Lcd_Display_String(100, 120, (char *)Click The Adjust Point To Adjust Touch Pad., amp。 Adjust_pen)。 = 0。 //消除触发信号 // = 0。 //xfac用来标记是否校准过,所以校准之前必须清掉!以免错误 while(1) //如果连续10秒钟没有按下,则自动退出 { Tp_Scan(touchpad_add)。 //扫描物理坐标 if(Adjust_flag == 1) //可以进行测试操作,即按键满足了(按下抬起)的操作 { outtime=0。 Adjust_flag=0。 //测试标志位清0 pos_temp[t][0]=。 pos_temp[t][1]=。 //记录测试点的坐标 t++。 switch(t) { case 1: //得到了第1个测试点 Tp_Draw_Adjustpoint(20,20,amp。 Clear_adjust_pen)。 //清除点1 Tp_Draw_Adjustpoint(460,20,amp。 Adjust_pen)。 //画点2 break。 case 2: //得到了第2个测试点 Tp_Draw_Adjustpoint(460,20,amp。 Clear_adjust_pen)。 //清除点2 Tp_Draw_Adjustpoint(20,300,amp。 Adjust_pen)。 //画点3 break。 case 3: //得到了第3个测试点 Tp_Draw_Adjustpoint(20,300,amp。 Clear_adjust_pen)。 //清除3 Tp_Draw_Adjustpoint(460,300,amp。 Adjust_pen)。 //画点4 break。 case 4: //4个测试点的坐标值已经全部获取 //对边相等 tem1=abs(pos_temp[0][0]pos_temp[1][0])。 //x1x2 tem2=abs(pos_temp[0][1]pos_temp[1][1])。 //y1y2 tem1*=tem1。 tem2*=tem2。 d1=sqrt(tem1+tem2)。 //得到1,2的距离 tem1=abs(pos_temp[2][0]pos_temp[3][0])。 //x3x4 tem2=abs(pos_temp[2][1]pos_temp[3][1])。 //y3y4 tem1*=tem1。 tem2*=tem2。 d2=sqrt(tem1+tem2)。 //得到3,4的距离 fac=(float)d1/d2。 if(fac||fac||d1==0||d2==0) //不合格 { t=0。 //一定注意要清0,重新开始调试 Tp_Draw_Adjustpoint(460,300,amp。 Clear_adjust_pen)。 //清除点4 Tp_Draw_Adjustpoint(20,20,amp。 Adjust_pen)。 //画点1 continue。 //直接跳出本次while循环,重新开始调试 } tem1=abs(pos_temp[0][0]pos_temp[2][0])。 //x1x3 tem2=abs(pos_temp[0][1]pos_temp[2][1])。 //y1y3 tem1*=tem1。 tem2*=tem2。 d1=sqrt(tem1+tem2)。 //得到1,3的距离 tem1=abs(pos_temp[1][0]pos_temp[3][0])。 //x2x4 tem2=abs(pos_temp[1][1]pos_temp[3][1])。 //y2y4 tem1*=tem1。 tem2*=tem2。 d2=sqrt(tem1+tem2)。 //得到2,4的距离 fac=(float)d1/d2。 if(fac||fac)//不合格 { t=0。 //一定注意要清0,重新开始调试 Tp_Draw_Adjustpoint(460,300,amp。 Clear_adjust_pen)。 //清除点4 Tp_Draw_Adjustpoint(20,20,amp。 Adjust_pen)。 //画点1 continue。 //直接跳出本次while循环,重新开始调试 }//正确了 //对角线相等 tem1=abs(pos_temp[1][0]pos_temp[2][0])。 //x1x3 tem2=abs(pos_temp[1][1]pos_temp[2][1])。 //y1y3 tem1*=tem1。 tem2*=tem2。 d1=sqrt(tem1+tem2)。 //得到1,4的距离 tem1=abs(pos_temp[0][0]pos_temp[3][0])。 //x2x4 tem2=abs(pos_temp[0][1]pos_temp[3][1])。 //y2y4 tem1*=tem1。 tem2*=tem2。 d2=sqrt(tem1+tem2)。 //得到2,3的距离 fac=(float)d1/d2。 if(fac||fac)//不合格 { t=0。 //一定注意要清0,重新开始调试 Tp_Draw_Adjustpoint(460,300,amp。 Clear_adjust_pen)。 //清除点4 Tp_Draw_Adjustpoint(20,20,amp。 Adjust_pen)。 //画点1 continue。 //直接跳出本次while循环,重新开始调试 }//正确了 =(float)(48040)/(pos_temp[1][0]pos_temp[0][0])。 //得到xfacx方向的触摸地址与屏幕地址的比例系数 printf(%f\r\n,)。 //打印xfac =(*(pos_temp[1][0]+pos_temp[0][0]))/2。 //得到xoff printf(%d\r\n,)。 //打印xoff =(float)(32040)/(pos_temp[2][1]pos_temp[0][1])。 //得到yfacy方向的触摸地址与屏幕地址的比例系数 printf(%f\r\n,)。 //打印yfac =(*(pos_temp[2][1]+pos_temp[0][1]))/2。 //得到yoff printf(%d\r\n,)。 //打印yoff if(abs()2||abs()2)//触屏和预设的相反了. { t=0。 Lcd_Clear_All(WHITE)。 Lcd_Display_String(100,120, (char *)Adjust Failed, Try Again!, amp。 Adjust_pen)。 Tp_Draw_Adjustpoint(460,300,amp。 Clear_adjust_pen)。 //清除点4 Tp_Draw_Adjustpoint(20,20,amp。 Adjust_pen)。 //画点1 = (==P_DIR_HOR)? P_DIR_VER:P_DIR_HOR。 //修改触屏类型. if() //X,Y方向与屏幕相反 { = 0x90。 = 0xD0。 }else //X,Y方向与屏幕相同 { = 0xD0。 = 0x90。 } continue。 } Lcd_Clear_All(WHITE)。 //清屏 Lcd_Display_String(100,120, (char*)Adjust OK!, amp。 Adjust_pen)。 _delay_ms(1000)。 Lcd_Clear_All(WHITE)。 //清屏 return 0。 //校正完成 } } _delay_ms(10)。 outtime++。 if(outtime1000) { Lcd_Clear_All(WHITE)。 //清屏 Lcd_Display_String(100, 120, (char*)Adjust timeout., amp。 Adjust_pen)。 _delay_ms(1000)。 Lcd_Clear_All(WHITE)。 //清屏 break。 } } return 0。 }include /*定义缓冲区*/struct{ u8 buffer[50]。 u8 size。 }cal。 u8 show_flag=0。 /*屏幕参数*/extern TOUCH_PAD_PARAM Tpad_param。 //键盘u8 table[16]={39。 739。 ,39。 439。 ,39。 139。 ,39。 039。 , 39。 839。 ,39。 539。 ,39。 239。 ,39。 .39。 , 39。 939。 ,39。 639。 ,39。 339。 ,39。 =39。 , 39。 /39。 ,39。 *39。 ,39。 39。 ,39。 +39。 }。 //笔的属性static LCD_PEN pen = { RED, WHITE, P_S32, P_SET_NOBRUSH, P_DIR_HOR }。 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: Cal_Clear_All * Description:清显示框函数 * Input: color 颜色 * Output: NULL * Return: NULL * Others: NULL * * * * * * * * * * * * * * * * * * * * * * * * * * * * */static void Cal_Clear_All(u16 color){ int。基于stm32的简易计算器设计毕业设计论文
相关推荐
1、高中物理资源下载平台世昌的博客 (二十五)带电粒子在复合场中的运动(45 分钟100 分)一、选择题(本题共 8 小题,每小题 8 分,共 64 分。 多选题已在题号后标出)属板 M、N 正对着平行放置,且板面垂直于纸面,在两板之间接有电阻 R。 在极板间有垂直于纸面向里的匀强磁场。 当等离子束(分别带有等量正、负电荷的离子束)从左向右进入极板时,下列说法中正确的是()的电势高于 M
来回报的风险。 六.投资方的条件和愿望 山西 X 投资有限公司的上级集团,是山西省煤炭产业中知名的企业,多年来有稳定的主业产出,并希望投资其它项目而有助于长期持续发展。 山西 X 投资有限公司的上级集团,已经在多年前有志于旅游业投入和贡献,经过几年投入和经营、管理的山西旅游点 – 绵山,已经在山西乃至全国成为一个集历史名胜和人文景观结合的知名景点和旅游开发的成功案例。 绵山,山古水活,古迹众多
点,可要求澄清。 要求澄清应按投标邀请中载明的地址 ,以书面形式(原件形式)送达招标代理机构。 招标代理机构将视情况在投标截止时间 15 个日历日(如至原定截止时间不足 15 个日历日,则需延长开标时间)前将不标明查 询来源的书面答复发给所有投标人,并在采购信息发布的媒体上发布更正公告。 该澄清内容为招标文件的组成部分。 投标人在投标截止时间 5 天前未提出疑义的 ,视为认同本招标文件中所有条款
数: 0. 4 5 0. 1 5 0. 4 5 0. 1 51 1 1 1K 0 . 8 ( ) 0 . 8 ( ) 0 . 5 5 1d d 6 4 . 6 9 6 4 . 6 9 故,桥墩局部冲刷深度: 0 . 6 n0b 1 0 0001. 6 0. 58339。 h K K B ( 39。 ) ( )39。 7 .6 56 1 .6 93 1 0 .5 51 1.
我们强调工程开工前必须有施工组织设计,否则不得开工,但有相当多的工程虽然编制了施工组织设计,但实际执行却不如人意,甚至有的根本无法实施。 许多年来,施工组织设计的编制往往是由个别人编写,在很大程度上造成与材料、机械、劳动力等部门的脱节,使施工组织设计开始就先天不足,到项目实施过程中,由于编制者与实施者的分离,无法起到指导作用的施工组织设计只能束之高阁。
构,适用于机械化、工厂化施工。 采用双柱式桥墩是桥梁建筑中采用较多的一种形式,它具有施工方便、造 价低和美观等特点。 简支梁桥主梁轻巧,既能充分满足桥下净空需要,又有利于降低桥头引道填土工程量。 钢筋混凝土简支梁桥属于单孔静定结构,它受力明确,构造简单。 钢筋混凝土简支梁桥经济合理的常用跨径在 20m以下。 大于 20m时,一般采用预应力混凝土结构。 为增加单片主梁的稳定性,并减轻它的吊装重量