#include <stdio.h>#include <STC15F2K60S2.H>sbit key1 = P1^4; //加sbit key2 = P1^5; //减sbit key3 = P1^6; //乘sbit key4 = P1^7; //除int a,b,c;void delay(int num){ int x,y; for(x = 0;x<num;x ) { for(y = 0;y<100;y ); }}/* 加 */int set_add(){ if(key1 == 0) { delay(10); if(key1 == 0) { while(key1 == 0); delay(10); c = a+b; } } return c;}/* 减 */int set_subtract(){
if(key2 == 0) {
delay(10); if(key2 == 0) {
while(key2 == 0); delay(10); c = a-b; } } return c;}/* 乘 */int set_multiply(){
if(key3 == 0) {
delay(10); if(key3 == 0) {
while(key3 == 0); delay(10); c = a*b; } } return c;}/* 除 */int set_devide(){
if(key4 == 0) {
delay(10); if(key4 == 0) {
while(key4 == 0); delay(10); if(b != 0) {
c = a/b; //先确定b!=0 } else {
printf("输入的参数有错误,请重新输入!"); } } } return c;}void main(){
while(1) {
set_add(); set_subtract(); set_multiply(); set_devide(); }}
问题1:触摸按键很快的轻点才有反应问题2:经常触摸不到问题3:触摸这个按钮实现了另一个按钮的功能解决方案:把每个按钮的功能函数下面的第一个delay(10)改为delay(1000),然后把按钮之间的距离拉大一点,然后就稳定了。