📄 guess1.c
字号:
unsigned char ACC @0x05;
unsigned char _TMR0 @0x0d;
unsigned char _TMR0C @0x0e;
unsigned char _INTC @0x0b;
unsigned char _pa @0x12;
unsigned char _pac @0x13;
unsigned char _pc @0x16;
unsigned char _pcc @0x17;
#define _LCD_DATA _pa
#define _LCD_DATA_CTRL _pac
#define _LCD_CTRL _pc
#define _LCD_CTRL_CTRL _pcc
#define _RS _16_0
#define _RW _16_1
#define _E _16_2
#define _LCD_CTRL_RS _17_0
#define _LCD_CTRL_RW _17_1
#define _LCD_CTRL_E _17_2
#define _BUSY_TEST _12_7
#pragma vector timer0 @ 0x8
const unsigned char row_1[17]={0x4c,0x43,0x44,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x21,0x21,0x20,0x20,0x20,0x20,0x00};
const unsigned char row_2[17]={0x54,0x65,0x73,0x74,0x20,0x4f,0x4b,0x20,0x21,0x21,0x20,0x20,0x20,0x20,0x20,0x20,0x00};
const unsigned char page1_1[17]={0x57,0x65,0x6c,0x63,0x6f,0x6d,0x65,0x20,0x54,0x68,0x65,0x20,0x47,0x61,0x6d,0x65,0x00};
const unsigned char page2_1[17]={0x4b,0x65,0x79,0x69,0x6e,0x20,0x34,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x20,0x20,0x00};
const unsigned char page3_1[9]={0x59,0x6f,0x75,0x20,0x4c,0x6f,0x73,0x65,0x00};
const unsigned char page3_2[8]={0x41,0x6e,0x73,0x77,0x65,0x72,0x3a,0x00};
const unsigned char page4_1[9]={0x59,0x6f,0x75,0x20,0x57,0x69,0x6e,0x21,0x00};
const unsigned char time[4]={0x74,0x69,0x6d,0x65};
unsigned char ACCregister;
unsigned char number;
unsigned long int i;
unsigned int j,k,l,A,B,time1;
int guess[4],ans[4];
void delay()
{
for(i=0;i<20000;i++);
}
void initial()
{
write_instruction(0x01);
write_instruction(0x06);
write_instruction(0x0f);
write_instruction(0x38);
delay();
}
void write_LCDDATA()
{
busy();
_LCD_CTRL=0x01;
_LCD_DATA=ACCregister;
_E=1;
_E=0;
}
void busy()
{
_LCD_DATA_CTRL=0x80;
_LCD_CTRL=0x02;
_E=1;
while(_BUSY_TEST == 1);
_LCD_DATA_CTRL=0x00;
}
void write_instruction(char c)
{
busy();
_LCD_DATA=0x00;
_LCD_CTRL=0x00;
_LCD_DATA=c;
_E=1;
_E=0;
}
void main()
{
_LCD_DATA_CTRL=0x00;
_LCD_DATA=0x00;
_LCD_CTRL_CTRL=0x00;
initial();
//display_1
write_instruction(0x80);
k=0;
for(;;)
{
l=page1_1[k];
if(!(l == 0x00))
{
ACCregister=page1_1[k];
write_LCDDATA();
k=k+1;
}
else
{
break;
}
}
do
{
number=check_key();
}while(number != 0x3c);
while(number == 0x3c)
{
number=check_key();
}
//page2
do
{
k=0;
_TMR0=0x00;
_TMR0C=0x90;
_INTC=0x05;
do
{
for(j=0;j<4;j++)//////////////////////
{
ans[j]=(_TMR0%10);
}//////////////////////////
for(i=0;i<3;i++)
{
for(j=i+1;j<4;j++)
{
if(ans[i]==ans[j])
{k=1;}
}
}
}while(k);
_TMR0C=0x80;
for(time1=0;time1<10;time1++)
{
write_instruction(0x01);
write_instruction(0x80);
k=0,A=0,B=0;
for(;;)
{
l=page2_1[k];
if(!(l == 0x00))
{
ACCregister=page2_1[k];
write_LCDDATA();
k=k+1;
}
else
{
break;
}
}
k=0;
write_instruction(0xc0);
for(j=0;j<4;j++)
{
l=scan();
ACCregister=l;
write_LCDDATA();
guess[j]=(0x0f & l);
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(ans[i] == guess[j])
{
if(i == j)
{
A++;
}
else
{
B++;
}
}
}
}
ACCregister=0x20;
write_LCDDATA();
ACCregister=0x20;
write_LCDDATA();
ACCregister=A+0x30;
write_LCDDATA();
ACCregister=0x41;
write_LCDDATA();
ACCregister=B+0x30;
write_LCDDATA();
ACCregister=0x42;
write_LCDDATA();
ACCregister=0x20;
write_LCDDATA();
ACCregister=time1+0x30;
write_LCDDATA();
for(i=0;i<4;i++)
{
ACCregister=time[i];
write_LCDDATA();
}
do
{
number=check_key();
}while(number != 0x3d);
while(number == 0x3d)
{
number=check_key();
}
if(A == 4)
{
write_instruction(0x01);
write_instruction(0x80);
k=0;
for(;;)
{
l=page4_1[k];
if(!(l == 0x00))
{
ACCregister=page4_1[k];
write_LCDDATA();
k=k+1;
}
else
{
break;
}
}
break;
}
write_instruction(0x01);
write_instruction(0x80);
k=0;
for(;;)
{
l=page3_1[k];
if(!(l == 0x00))
{
ACCregister=page3_1[k];
write_LCDDATA();
k=k+1;
}
else
{
break;
}
}
}
do
{
number=check_key();
}while(number != 0x3c);
while(number == 0x3c)
{
number=check_key();
}
}while(number != 0x3c);
}
void timer0()
{
//for(i=j;i<100;i++);
_TMR0=0x00;
_TMR0C=0x90;
_INTC=0x05;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -