|
爱科技、爱创意、爱折腾、爱极致,我们都是技术控
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <reg51.h>
#include <intrins.h>
#include "LCD1602.h"
#define ucher unsigned char
#define uint unsigned int
uchar code FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
uchar code FFW[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};
sbit K1 = P3^2;
int Xe=-8;
int Ye=6;
int Ym=0;
int Xm=0;
unit XOY;
uint ZF;
int r;
int N=64;
int M=5;
int MM=0;
int cstep;
int abs(int x);
void delay(uint t)
void XZstep();
void YZstep();
void XFstep();
void YFstep();
int pdxoy(int x,int y);
void InitLCD()
{
LCDReset();
InputMode(0x06);
DispControl(0x0c);
FunctionSet(0x38);
}
main()
{
int Fm=0;
cstep=abs(Xe)+abs(Ye);
InitLCD();
XOY=pdxoy(Xe,Ye);
while(1)
{
DispCharacter(0,1,'D');
DispCharacter(0,2,'I');
DispCharacter(0,3,'R');
DispCharacter(0,4,':');
if(K1==0)
{
while(cstep!=0)
{
if(Fm>=0)
{
if((XOY==1) || (XOY==4))
{
ZF=1;
}
else
{
ZF=2;
}
Fm=Fm-abs(Ye);
}
else
{
if((XOY==1) || (XOY==2))
{
ZF=3;
}
else
{
ZF=4;
}
Fm=Fm+abs(Xe);
}
switch(ZF)
{
case 1: {
YZstep();
if(M==16 || M==17)
{
DispCharacter(1,MM++,'X');
}
else
{
DispCharacter(0,M++,'X');
}
}break;
case 2: {
YFstep();
if(M>=16)
{
DispCharacter(1,MM++,'-');
DispCharacter(1,MM++,'X');
}
else
{
DispCharacter(0,M++,'-');
DispCharacter(0,M++,'X');
}
}break;
case 3: {
XZstep();
if(M==16 || M==17)
{
DispCharacter(1,MM++,'Y');
}
else
{
DispCharacter(0,M++,'Y');
}
}break;
case 4: {
XFstep();
if(M==16 || M==17)
{
DispCharacter(1,MM++,'-');
DispCharacter(1,MM++,'Y');
}
else
{
DispCharacter(0,M++,'-');
DispCharacter(0,M++,'Y');
}
}break;
}
delay(200);
cstep--; |
|