51单片机点阵8X8贪吃蛇设计(仿真 + 程序)闲来无聊制作的贪吃蛇8X8程序和仿真下面压缩包里都有,元器件都是平时最常用的,很好制作。
单片机程序源码:
#include #define uchar unsigned char #define SNAKE 20 //最大长度 #define TIME 50 //显示延时时间 #define SPEED 71 //速度控制 //define keyenable 1 sbit keyenable=P0^0; //方向使能 sbit keyx=P0^1; //左右 sbit keyy=P0^2; //上下 */ //sbit up=P0^0; sbit up=P3^1; //down sbit down=P3^2; sbit right=P3^3; sbit left=P3^4; uchar x[SNAKE+1]; uchar y[SNAKE+1]; uchar time,n,i,e; //延时时间,当前蛇长,通用循环变量,当前速度 char addx,addy; //位移偏移量 /******************** 延时程序 *********************/ void delay(char MS) { char us,usn; while(MS!=0) { usn = 0; while(usn!=0) { us=0xff; while (us!=0){us--;}; usn--; } MS--; } } /******************************************* 判断碰撞 *******************************************/ bit knock() {bit k; k=0; if(x[1]>7||y[1]>7)k=1; //撞墙 for(i=2;i } /***************** 上下左右键位处理 *****************/ void turnkey()// interrupt 0 using 2 {//up=1; if(keyenable) { if(left){addy=0;if(addx!=1)addx=-1; else addx=1;} if(right){addy=0;if(addx!=-1)addx=1; else addx=-1;} if(up){addx=0;if(addy!=-1)addy=1; else addy=-1;} if(down){addx=0;if(addy!=1)addy=-1; else addy=1;} /*if(keyy) {addy=0; //左右 if(keyx)if(addx==-1)addx=-1; else addx=1; //左 else if(addx==1)addx=1; else addx=-1; //右 } else {addx=0; //上下 if(keyx)if(addy==1)addy=1; else addy=-1; //下 else if(addy==-1)addy=-1; else addy=1; //上 } */ } } /***************** 乘方程序 *****************/ uchar mux(uchar temp) { if(temp==7)return 128; if(temp==6)return 64; if(temp==5)return 32; if(temp==4)return 16; if(temp==3)return 8; if(temp==2)return 4; if(temp==1)return 2; if(temp==0)return 1; return 0; } /***************** 显示时钟 显示程序 *****************/ void timer0(uchar k) {while(k--) {for(i=0;i turnkey(); //上下左右键位处理 delay(TIME); //显示延迟 P2=0x00;P1=0xff; }} } /***************** 主程序 *****************/ void main(void) {e=SPEED; P0=0x00; P1=0xff; P2=0x00; P3=0x00; while(1) {//if(keyenable==1){P1=0x00;P2=0xff;}else{P1=0xff;P2=0x00;} for(i=3;i n=3; //蛇长 n=-1 x[1]=1;y[1]=0; //蛇头 x[2]=0;y[2]=0; //蛇尾1 addx=0;addy=0; //位移偏移 //k=1; ………… …………
上一篇:单片机8位LED数码管的静态显示课程设计说明书与仿真
下一篇:AT89C51单片机对直流电动机的驱动仿真加汇编语言源程序
推荐阅读最新更新时间:2024-11-05 20:10
设计资源 培训 开发板 精华推荐
- BPC292封装的SPC58 C,E,G和N线的微型插座模块
- 面向MPL3115A2压力/高度传感器的传感器工具箱开发平台
- DER-868 - 采用PowiGaN技术的InnoSwitch3-EP的60 W电源
- VESC – 本杰明开源的无刷电机驱动(原理图、PCB、固件、工具软件等)
- 使用 Infineon Technologies AG 的 OM8502SF 的参考设计
- 【常熟理工】A题放大器线性研究
- 低成本玩转直列40%键盘,47键拼接版(CH552G主控)一丐到底
- 16x16LED点阵显示模块
- MCIMX8M-AUD: i.MX 8音频板
- 使用 NXP Semiconductors 的 PCIMX25VM 的参考设计