|
STC89C52代碼在用數(shù)組判斷處無(wú)法判斷,再次跪求請(qǐng)各位大佬出山看看
自己調(diào)試過(guò)發(fā)現(xiàn)是判斷無(wú)效,也就是“keyword[y]==right[y]”無(wú)效,但是語(yǔ)言和邏輯上都沒(méi)有錯(cuò)呀,實(shí)在想不通,還請(qǐng)各位指點(diǎn)
主要單片機(jī)代碼如下:
- #include<reg52.h>
- #include<stdio.h>
- #include<OLED.h>
- #include <intrins.h>
- #define led P1
- sbit b1=P2^0;
- sbit b2=P3^3;
- sbit b3=P2^1;
- sbit b4=P2^2;
- sbit b5=P4^2;
- sbit b6=P4^3;
- sbit bee=P2^4;
- sbit b10=P1^0;
- unsigned int y;
- unsigned int right[6]={1,3,1,4,2,1};
- unsigned int keyword[6]={1,3,1,4,2,1};
- void delay(int ms)
- {
- int ii,jj;
- if (ms<1) ms=1;
- for(ii=0;ii<ms;ii++)
- for(jj=0;jj<500;jj++);
- }
- void start()
- {
- bee=0;
- delay(10);
- OLED_Init();
- OLED_CLS();
- OLED_Fill(0x00);
- OLED_P14x16Ch(25,1,0);
- OLED_P14x16Ch(39,1,1);
- OLED_P14x16Ch(53,1,2);
- OLED_P14x16Ch(67,1,3); //顯示密碼文字//
- OLED_P14x16Ch(81,1,4);
- }
- void beep()
- {
- delay(20);
- bee=1;
- delay(100);
- bee=0;
- }
- void data_input()
- {
- unsigned int i=0;
- unsigned char location[6]={36,46,56,66,76,86};
- start();
- while(1)
- {
- if(i<=5)
- {
- if(b1==0)
- {
- delay(20);
- while(!b1);
- beep();
- keyword[i]=1;
- OLED_P6x8Str(location[i],5,"1");
- i++;
- }
-
- if(b5==0)
- {
- delay(20);
- while(!b5);
- beep();
- keyword[i]=2;
- OLED_P6x8Str(location[i],5,"2");
- i++;
- }
-
- if(b2==0)
- {
- delay(20);
- while(!b2);
- beep();
- keyword[i]=3;
- OLED_P6x8Str(location[i],5,"3");
- i++;
- }
-
- if(b6==0)
- {
- delay(20);
- while(!b6);
- beep();
- keyword[i]=4;
- OLED_P6x8Str(location[i],5,"4");
- i++;
- }
- }
- if(b3==0&&i<=6)
- {
- delay(20);
- while(!b3);
- beep();
- i--;
- OLED_P6x8Str(location[i],5," ");
- }
- if(b4==0)
- {
- delay(20);
- while(!b4);
- beep();
- break;
- }
- }
- }
- void main()
- {
- unsigned int t;
- data_input();
- for(y=0;y<6;y++)
- {
- if(keyword[y]==right[y])
- {
- t++;
- }
- }
- while(1)
- {
- if(t==5)
- {
- bee=0;
- delay(10);
- OLED_Init();
- OLED_CLS();
- OLED_Fill(0x00);
- OLED_P14x16Ch(30,6,3);
- OLED_P14x16Ch(46,6,4);
- OLED_P14x16Ch(62,6,5);
- OLED_P14x16Ch(78,6,6);
- delay(20);
- bee=1;
- delay(10000);
- bee=0;
- }
- else
- {
- OLED_P14x16Ch(30,6,3);
- OLED_P14x16Ch(46,6,4);
- OLED_P14x16Ch(62,6,7);
- OLED_P14x16Ch(78,6,8);
- delay(20);
- bee=1;
- delay(1000);
- bee=0;
- led=0;
- delay(50000);
- while(1)
- {
- P0=0x00;
- delay(1000);
- P0=0xff;
- delay(1000);
- }
- }
- }
- }
復(fù)制代碼 |
|