历史上的今天
返回首页

历史上的今天

今天是:2024年11月27日(星期三)

正在发生

2019年11月27日 | 51单片机点阵8X8贪吃蛇设计(仿真 + 程序)

2019-11-27 来源:51hei

51单片机点阵8X8贪吃蛇设计(仿真 + 程序)闲来无聊制作的贪吃蛇8X8程序和仿真下面压缩包里都有,元器件都是平时最常用的,很好制作。

1.JPG

2.JPG



3.JPG
单片机程序源码:

#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;ireturn k;

}

/*****************

上下左右键位处理

*****************/

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{P2=mux(x[i]);P1=255-mux(y[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;ix[0]=4;y[0]=4;                                                //果子                            

n=3;                                                          //蛇长 n=-1

x[1]=1;y[1]=0;                                                //蛇头

x[2]=0;y[2]=0;                                                //蛇尾1

addx=0;addy=0;                                                //位移偏移

//k=1;

…………

…………




推荐阅读

史海拾趣

Agilent Technologies公司的发展小趣事
  1. 公司成立与拆分:Agilent Technologies是一家跨国科技公司,成立于1999年。它是惠普公司(Hewlett-Packard,HP)的分拆部门,旨在将惠普的测试与测量、半导体业务分离出来,形成独立的实体。这一举措旨在使惠普更专注于其核心业务,同时为Agilent提供更大的发展空间。

  2. 产品创新与多元化:Agilent Technologies以其广泛的产品组合而闻名,涵盖了测试与测量、生命科学、化学分析和电子产品等多个领域。该公司不断推出创新的产品和解决方案,满足客户在科研、制造和市场应用中的需求。例如,Agilent的测试与测量仪器被广泛应用于电子、通信、航空航天等行业,为客户提供精准的测试和分析。

  3. 全球化布局与市场拓展:作为一家全球性企业,Agilent Technologies在全球范围内设有研发、生产和销售网络。公司在美国、欧洲、亚洲等地都设有重要的研发中心和生产基地,以满足不同地区客户的需求。此外,Agilent通过收购和合作等方式扩大了其产品线和市场份额,进一步加强了其在全球电子行业的地位。

  4. 科研与创新投入:Agilent Technologies将大量资源投入到科研与创新领域,不断推动技术的发展和应用。公司与学术界、行业组织以及其他企业建立了紧密的合作关系,共同开展前沿技术研究和开发。Agilent的研究团队不断探索新的领域和解决方案,推动了科学技术的进步,为客户提供了更加先进和可靠的产品和服务。

  5. 社会责任与可持续发展:作为一家全球企业,Agilent Technologies注重社会责任和可持续发展。公司积极参与慈善事业和社区服务,支持教育、环保、健康等多个领域的项目和活动。此外,Agilent致力于推动绿色技术和环保生产,采取了一系列措施减少对环境的影响,提高资源利用效率,助力实现可持续发展目标。

安信可(Ai)公司的发展小趣事

2012年4月,深圳市安信可科技有限公司正式成立,标志着这家公司在电子行业的起点。成立之初,安信可便专注于物联网领域,致力于为客户提供高质量的模组产品。通过引入先进的科技和创新理念,安信可逐渐在物联网市场中崭露头角,为后续的发展奠定了坚实的基础。

格科微电子(GALAXYCORE)公司的发展小趣事

随着物联网技术的快速发展,安信可也迎来了技术升级的关键时刻。2014年9月,安信可成功引入ESP8266 SoC方案,这一技术升级为公司带来了更多的市场机会。到了2016年5月,安信可更是成功转型为一站式物联网模组解决方案提供商,为客户提供从模组到应用的全方位服务。

Elcos AG公司的发展小趣事

在电子科技日新月异的21世纪初,Elcos AG由一群志同道合的电子工程师创立。他们看到了电子元器件市场中的机遇,决定专注于研发和生产高性能的电子元器件。初始阶段,公司面临着资金紧张、技术挑战和市场认知度低的困境。然而,凭借对技术的执着和对市场的敏锐洞察,Elcos AG逐步攻克了技术难题,并通过与几家小型电子产品制造商的合作,打开了市场的大门。

Crouzet公司的发展小趣事

Crouzet一直致力于产品创新和技术研发。公司的产品线不断丰富,涵盖了自动控制元件、智能控制器、可编程逻辑控制器、触摸屏、测量传感器、模拟和数字电子元件等多种产品。这些产品广泛应用于汽车、化工、电力、机械、消费电子、空调和冷库、石油和天然气等多个行业,为客户提供了高效、可靠的自动化解决方案。

德欣(COV)公司的发展小趣事

面对电子行业的快速发展和市场竞争的加剧,德欣公司始终将技术创新作为发展的核心动力。公司不断加大研发投入,引进先进的生产设备和技术人才,加强与高校和科研机构的合作。通过不断的技术创新和产品升级,德欣公司在保持传统产品优势的同时,也成功拓展了新的业务领域,实现了产业升级和可持续发展。

问答坊 | AI 解惑

请教一下专业英语

3.Requirements analysis, product/functions review是审查吗?, identification of issues是问题识别吗, system risk analysis, reliability analysis 8.Support, maintain and document functionality支持,维护且以文档记录(产品)功能 :就 ...…

查看全部问答>

关于wince下实现AD采集的问题

    我想在wince下实现AD数据采集,思路是通过调用ceddk.dll中的函数读写ADC寄存器实现ADC。我简单地做了个试验,第一步,我把ADCDAT0寄存器的物理的物理地址0x5800000C通过MmMapIoSpace转变成虚拟地址0x00160000;第二步,我通过read_re ...…

查看全部问答>

关于如何学习嵌入式 高手 们进啊

大家好,我是一名大三的学生,学的是嵌入式方向的,但我们现在才学嵌入式操作系统,都TMD还是理论,学了等于没学,就上学期还学了个汇编,现在一学期都快过完了,感觉什么关于嵌入式方面的都没学到,如果靠下学期再来学点东西,以后出去就别想混了 ...…

查看全部问答>

请教:读取CEdit的内容写入txt文件是乱码

功能是读取edit控件中显示的内容,将内容存储到txt文件中 现在文件可以创建,也可以写入,就是打开txt文件显示乱码。 请教明白人 谢谢 void CDATASTOREDlg::OnSave() {     UpdateData(TRUE);     SYSTEMTIME Time;  ...…

查看全部问答>

stm32ucosii如何使用串口中断在接收数据?

哪位大侠帮我解答下,不胜感激,小弟刚开始在STM32上折腾uCOS II.Micrium的代码已经跑上了,但中断还迷糊..............1)stm32 ucos ii 如何使用串口(如uart2)中断在接收数据?2)串口中断在哪开?然后用void US ...…

查看全部问答>

关于msp430f2132的脉冲捕获(2)

从网上找到一个例子,但不能进入中断,请老师们帮助分析. #include "msp430x21x2.h" unsigned int start,end,width; unsigned int start2,end2,width2; unsigned char overflow; float number; float number2; float fre; fl ...…

查看全部问答>

DS18B20初始化失败

麻烦大家帮我看下,  我的DS18B20初始化失败。   我用protues仿真,用一盏小灯做指示, 程序读不出数据,逐步检测发现程序卡在DS18B20初始化的初始化部分。 可是我去查看了datasheet也没能查出原因来··。   麻烦 ...…

查看全部问答>

AVR单片机定时0

//ICC-AVR application builder : 2013-7-18 下午 08:03:54 // Target : M128 // Crystal: 16.000Mhz #include #include typedef unsigned char uchar; uchar i; void port_init(void) { PORTA = 0xff; DDRA  = 0xff; PORTE ...…

查看全部问答>

求购EXP430G2 launchpad口袋实验平台扩展板

如题,求购求购EXP430G2 launchpad口袋实验平台扩展板,即带有128段LCD的那块 或者还有什么其他方法可以获得,知道的请说下,谢谢! 东西如下图: …

查看全部问答>

【Nucleo心得】+(九)BlueNRG的应用程序命令接口ACI解读

BlueNRG的应用程序命令接口ACI解读 1、应用程序命令接口概述BlueNRG定位于BLE网络协处理器(BLE Network Co-Processor),也就是为系统的应用程序(Application)增加BLE通讯功能。BlueNRG通过SPI接口与Application通讯,其中Application通过SPI ...…

查看全部问答>