|
|
发表于 2015-9-7 21:46:29
|
显示全部楼层
邓维安 发表于 2015-8-25 12:00 
拿去!!!!
i
nt x=0;//初使化加数变量
为什么添加这个程序上边的对比程序不管用了
else
{
if (buttonState == LOW)
{
delay(10);
if (buttonState == LOW)//机械式延时去抖
j++;//按键后变量加1;
while(!digitalRead(addKey));//等待松开按键结束,按键弹起算一次有效值
}
液晶屏串口程序
int incomingByte = 0;
int ledpin = 8; //定义数字接口
unsigned char HEXFD1[9] = {0xA5, 0x5A, 0x06, 0x83, 0x00,0x00, 0x01,0x00, 0x01};
unsigned char HEXFD2[9] = {0xA5, 0x5A, 0x06, 0x83, 0x00,0x00, 0x01,0x00, 0x02};
unsigned char HEXFD3[9] = {0xA5, 0x5A, 0x06, 0x83, 0x00,0x00, 0x01,0x00, 0x03};
unsigned char HEXFD4[9] = {0xA5, 0x5A, 0x06, 0x83, 0x00,0x00, 0x01,0x00, 0x04};
unsigned char HEXFD5[9] = {0xA5, 0x5A, 0x06, 0x83, 0x00,0x00, 0x01,0x00, 0x05};
unsigned char HEXFD6[9] = {0xA5, 0x5A, 0x06, 0x83, 0x00,0x00, 0x01,0x00, 0x06};
unsigned char HEXFD7[9] = {0xA5, 0x5A, 0x06, 0x83, 0x00,0x00, 0x01,0x00, 0x07};
unsigned char HEXFD8[9] = {0xA5, 0x5A, 0x06, 0x83, 0x00,0x00, 0x01,0x00, 0x08};
unsigned char HEXFD9[9] = {0xA5, 0x5A, 0x06, 0x83, 0x00,0x00, 0x01,0x00, 0x09};
unsigned char HEXFD10[9] = {0xA5, 0x5A, 0x06, 0x83, 0x00,0x00, 0x01,0x00, 0x0A};
int j=0;//初使化加数变量
int addKey =4;//定义按键为第4引脚
int buttonState = 0; //初使化按键暂存值,为了和addKey类型保持一致用int;
unsigned char showNumber[10][8] ={
{0xA5,0x5A,0x05,0x82,0x00,0x10,0x00,0x01},
{0xA5,0x5A,0x05,0x82,0x00,0x10,0x00,0x02},
{0xA5,0x5A,0x05,0x82,0x00,0x10,0x00,0x03},
{0xA5,0x5A,0x05,0x82,0x00,0x10,0x00,0x04},
{0xA5,0x5A,0x05,0x82,0x00,0x10,0x00,0x05},
{0xA5,0x5A,0x05,0x82,0x00,0x10,0x00,0x06},
{0xA5,0x5A,0x05,0x82,0x00,0x10,0x00,0x07},
{0xA5,0x5A,0x05,0x82,0x00,0x10,0x00,0x08},
{0xA5,0x5A,0x05,0x82,0x00,0x10,0x00,0x09},
{0xA5,0x5A,0x05,0x82,0x00,0x10,0x00,0x0A}};
int x = 0;
int CheckSumX1 = 0;
int CheckSumX2 = 0;
int CheckSumX3 = 0;
int CheckSumX4 = 0;
int CheckSumX5 = 0;
int CheckSumX6 = 0;
int CheckSumX7 = 0;
int CheckSumX8 = 0;
int CheckSumX9 = 0;
int CheckSumX10 = 0;
void setup()
{
Serial.begin(9600);
pinMode(ledpin, OUTPUT);
pinMode(addKey,INPUT);
}
void loop()
{
// Serial.write(hexdata,7);
buttonState = digitalRead(addKey);//
if (Serial.available() > 0)
{
incomingByte = Serial.read();
Serial.print(incomingByte, HEX);
if (HEXFD1[x] == incomingByte) {
CheckSumX1++;
}
if (HEXFD2[x] == incomingByte) {
CheckSumX2++;
}
if (HEXFD3[x] == incomingByte) {
CheckSumX3++;
}
if (HEXFD4[x] == incomingByte) {
CheckSumX4++;
}
if (HEXFD5[x] == incomingByte) {
CheckSumX5++;
}
if (HEXFD6[x] == incomingByte) {
CheckSumX6++;
}
if (HEXFD7[x] == incomingByte) {
CheckSumX7++;
}
if (HEXFD8[x] == incomingByte) {
CheckSumX8++;
}
if (HEXFD9[x] == incomingByte) {
CheckSumX9++;
}
if (HEXFD10[x] == incomingByte) {
CheckSumX10++;
}
x++;
if (x == 9) {
if (CheckSumX5 == 9) {
digitalWrite(ledpin, HIGH); //点亮数字13 口LED。
delay(5000);
}
if (CheckSumX7 == 9) {
digitalWrite(ledpin, LOW); //熄灭数字13 口LED
delay(5000);
}
x = 0;
CheckSumX5 = 0;
CheckSumX7 = 0;
}
}
else
{
if (buttonState == LOW)
{
delay(10);
if (buttonState == LOW)//机械式延时去抖
j++;//按键后变量加1;
while(!digitalRead(addKey));//等待松开按键结束,按键弹起算一次有效值
}
switch(j)
{
case 1:
Serial.write(&showNumber[0][0],8);
break;
case 2:
Serial.write(&showNumber[1][0],8);
break;
case 3:
Serial.write(&showNumber[2][0],8);
break;
case 4:
Serial.write(&showNumber[3][0],8);
break;
case 5:
Serial.write(&showNumber[4][0],8);
break;
case 6:
Serial.write(&showNumber[5][0],8);
break;
case 7:
Serial.write(&showNumber[6][0],8);
break;
case 8:
Serial.write(&showNumber[7][0],8);
break;
case 9:
Serial.write(&showNumber[8][0],8);
break;
case 10:
Serial.write(&showNumber[9][0],8);
j=0;
break;
default:
break;
}
}
}
|
|