利用51单片机+hc595芯片配合在led点阵上玩贪吃蛇 第三篇“相关决策函数”
我们需要的决策函数有哪些:
1.改变方向的函数
改变方向示例中只采用了两个按键,因为贪吃蛇是不断朝某一方向运动的,那么相对于蛇运动的方向来看,其实只要两个可以改变的方式:要么向左,要么向右,没可能蛇头反转穿过蛇身运动的。
因此既然我只用这两个按键,那么刚好能使用外部中断,当按下按键时,进入外部中断0或外部中断1
进而根据逻辑判断,改变flag_x和flag_y的值,改变蛇的运动方向。
逻辑判断:
贪吃蛇在平面上运动,将平面分为上下左右,假设当蛇向平面方向上的左运动,那么相对于这个运动方向的左手边即是平面方向的下,右手边即是平面方向上的上
以此类推,只需要两个按键即可操作好蛇的运动方向
1.1外部中断配置;
void EX_INIT()
{
IT0=1;
EX0=1;
IT1=1;
EX1=1;
EA =1;
}中断服务函数:
void EX1_SER(void) interrupt 0
{
if(flag_y1) //up
{flag_x=-1; //left
flag_y=0;}
else if(flag_y-1) //down
{flag_x=1; //right