基于msc51单片机实现的四位4乘4矩阵键盘计算器的c语言程序及其protues电路和仿真_课程设计报告(编辑修改稿)内容摘要:
1,temp2,number1,number2,number3,number4,a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4,way,k,k1,waytest,result_test。 unsigned int Result。 result1,result2,result3,result4,E_test。 unsigned char key。 void main() { while(1) { key_scan()。 key_free()。 key_deal()。 } 哈尔滨工业大学(威海)课程设计报告 } //新的显示函数 void display() { display1(number1)。 delay(6)。 display2(number2)。 delay(6)。 display3(number3)。 delay(6)。 display4(number4)。 delay(6)。 } void display1(unsigned int number1) { P2= weitable[3]。 P1=numbertable[number1]。 } void display2(unsigned int number2) { P2= weitable[2]。 P1=numbertable[number2]。 } void display3(unsigned int number3) { P2= weitable[1]。 P1=numbertable[number3]。 } void display4(unsigned int number4) { P2= weitable[0]。 P1=numbertable[number4]。 } //结果显示程序 void display_result() { display1(result1)。 delay(6)。 display2(result2)。 哈尔滨工业大学(威海)课程设计报告 delay(6)。 display3(result3)。 delay(6)。 display4(result4)。 delay(6)。 } //定义延时程序 void delay(unsigned int time) { unsigned int i,j。 for(i=time。 i0。 i) { for(j=112。 j0。 j)。 }。 } //按键扫描子程序 unsigned char key_scan() { P0=0x0f。 //对所有行置高电平,列全为低电平 //P0=0xff。 temp1=P0。 if(temp1!=0x0f) //如果有按键按下 { //put_offleds()。 //delay(3)。 temp1=P0。 //延时消抖 if(temp1!=0x0f) { P0=0xf0。 //翻转扫描列状态 //P0=0xff。 temp2=P0。 if(temp1==0x0e) //若第一行有按键按下 { k=0。 //键盘按下动作标记 switch(temp2) { 哈尔滨工业大学(威海)课程设计报告 case 0xe0: //第一列有人按下 key=7。 break。 case 0xd0: //第二列有人按下 key=8。 break。 case 0xb0: //若第三列有人按下 key=9。 break。 case 0x70: //若第四列有人按下 key=39。 /39。 break。 } } else if (temp1==0x0d) //若第二行有按键按下 { k=0。 //键盘按下动作标记 switch(temp2) { case 0xe0: //第一列有人按下 key=4。 break。 case 0xd0: //第二列有人按下 key=5。 break。 case 0xb0: //若第三列有人按下 key=6。 break。 case 0x70: //若第四列有人按下 key=39。 *39。 break。 } } else if(temp1==0x0b) //若第三行有按。基于msc51单片机实现的四位4乘4矩阵键盘计算器的c语言程序及其protues电路和仿真_课程设计报告(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。