历史上的今天
返回首页

历史上的今天

今天是:2024年10月21日(星期一)

正在发生

2019年10月21日 | 单片机LCD12864链表实现贪吃蛇源码

2019-10-21 来源:51hei

单片机源程序如下:

#include

#include

#include

#define uchar unsigned char

#define uint unsigned int

#define Random(x) (rand()%x)

#define dgrade 11

#define igrade 15

#define up 9                                   

#define down 13                                  

#define left 12                                   

#define right 14                                   

#define passscore 50

#define N 25

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};


sbit dula=P2^6;

sbit wela=P2^7; 


uchar code score0[]={"score"};

uchar code speed0[]={"speed"};

uchar score = 0,speed = 5;

uchar temp,key=16;


struct Snake

{

        uchar x[N];

        uchar y[N];

        uchar node;

        uchar direction;

        uchar life;

}snake;

struct Food

{

        uchar x;

        uchar y;

        uint exist;

}food;


void delay(uint t)

{  

        uint i,j;

        for(i=0;i                for(j=0;j<10;j++);    

}

//矩阵键盘

void ReadKey()

{

        P3 = 0xfe;

        temp = P3;

        temp = temp & 0xf0;

        if(temp != 0xf0)

        {

                delay(100);

                if(temp != 0xf0)

                {

                        temp = P3;

                        switch(temp)

                        {

                                case 0xee:

                                           key = 0;

                                     break;

                                case 0xde:

                                           key = 1;

                                     break;

                                case 0xbe:

                                           key = 2;

                                     break;

                                case 0x7e:

                                           key = 3;

                                     break;

                        }

                        while(temp != 0xf0)

                        {

                                temp = P3;

                                temp = temp & 0xf0;

                        }

                }

        }

        P3 = 0xfd;

        temp = P3;

        temp = temp & 0xf0;

        if(temp != 0xf0)

        {

                delay(100);

                if(temp != 0xf0)

                {

                        temp = P3;

                        switch(temp)

                        {

                                case 0xed:

                                           key = 4;

                                     break;

                                case 0xdd:

                                           key = 5;

                                     break;

                                case 0xbd:

                                           key = 6;

                                     break;

                                case 0x7d:

                                           key = 7;

                                     break;

                        }

                        while(temp != 0xf0)

                        {

                                temp = P3;

                                temp = temp & 0xf0;

                        }

                }

        }

        P3 = 0xfb;

        temp = P3;

        temp = temp & 0xf0;

        if(temp != 0xf0)

        {

                delay(100);

                if(temp != 0xf0)

                {

                        temp = P3;

                        switch(temp)

                        {

                                case 0xeb:

                                           key = 8;

                                     break;

                                case 0xdb:

                                           key = 9;

                                     break;

                                case 0xbb:

                                           key = 10;

                                     break;

                                case 0x7b:

                                           key = 11;

                                     break;

推荐阅读

史海拾趣

ARCOLECTRICSWITCHES公司的发展小趣事

在市场竞争日益激烈的情况下,ARCOLECTRIC SWITCHES公司始终坚持质量至上的原则。公司建立了完善的质量管理体系,从原材料采购到生产加工、产品检验等各个环节都严格把关,确保产品质量符合客户要求。同时,公司不断创新升级产品,推出更加智能化、节能环保的新型开关产品,满足市场不断变化的需求。

EDAL公司的发展小趣事

EDAL公司成立于XXXX年,由一群富有远见和创新精神的电子工程师创立。公司初期专注于电子设计自动化(EDA)工具的研发,致力于提升集成电路设计的效率和质量。EDAL公司凭借其独特的算法和高效的设计工具,在EDA领域崭露头角,吸引了众多客户的关注。

DZUS公司的发展小趣事

为了提高产品质量和客户满意度,DZUS公司决定建立质量管理体系。公司引进了先进的生产设备和检测设备,并制定了严格的生产流程和检验标准。此外,公司还加强了员工培训和技能提升工作,确保每一个员工都能熟练掌握操作技能和产品质量要求。这些措施的实施使DZUS公司的产品质量得到了显著提升,并赢得了客户的广泛赞誉。

Epitex Inc公司的发展小趣事

Epitex非常重视企业文化的建设和团队精神的培育。他们倡导“创新、协作、务实、共赢”的价值观,鼓励员工积极创新、勇于挑战。同时,Epitex还注重员工关怀和福利待遇的提升,为员工提供良好的工作环境和发展空间。

在团队建设方面,Epitex注重培养员工的团队协作能力和沟通能力。他们定期组织团队活动和培训项目,增强团队的凝聚力和向心力。这种积极向上的企业文化和高效的团队协作为Epitex的持续发展提供了有力保障。

康龙(CONCRAFT)公司的发展小趣事

作为一家有社会责任感的企业,康龙公司始终关注环境保护和可持续发展。公司积极采用环保材料和生产工艺,减少生产过程中的污染和浪费。同时,康龙还积极参与社会公益事业和慈善活动,回馈社会。这些举措不仅提升了公司的品牌形象和社会声誉,也为公司的长远发展注入了正能量。

Antenna Factor公司的发展小趣事

Antenna Factor公司始终注重产品质量和客户体验。他们建立了严格的质量管理体系,从原材料采购到产品生产的每一个环节都进行严格的把控。同时,公司还加强了对售后服务的管理和改进,确保客户在使用过程中能够得到及时、有效的支持。这些举措使得Antenna Factor公司的产品质量和品牌形象得到了显著提升。

问答坊 | AI 解惑

【藏书阁】公用仪表基础教程

目录 第1 章 电子仪表的优点 1.1 可靠性和耐用性 ..............................................................................................3 1.2 高精度 .......................................................................... ...…

查看全部问答>

TX-1C 51单片机学习板

TX-1C 51单片机学习板 具体介绍:http://www.yheda.com/Shop/mcu/MCU/200809/102.html一.51系列单片机实验板 (串口或者USB口直接下载程序)本实验板使用的是STC公司生产的STC89C52RC单片机,它是一款性价比非常高的单片机,它完全兼容ATMEL公司的5 ...…

查看全部问答>

怎样做驱动程序的安装文件

我手上有个设备的驱动,一个inf 文件,一个sys文件,我想把驱动打包为一个EXE文件,执行安装后,当设备连接时,不需要手动查找驱动的目录就可以自动安装驱动文件,请问该怎样打包,最好是用VS2008自带的打包工具。高手给指点下,谢谢了。…

查看全部问答>

300分求牛人帮我把一个VC小游戏移植到EVC

自己移..上百个错误。. 求牛人留下E-MAIL.…

查看全部问答>

求助:关于VHDL频率计计数器分档处记数的问题

本人新来社区,希望大家给予帮助。       问题是:现在用VHDL设计数字频率计,计数器在每个分档处该如何记数?请高手指教,如有程序更好,谢谢!…

查看全部问答>

GetWindowLong()return 0

函数不能成功返回要求的32位值 hCharEvent = (HANDLE)GetWindowLong( hWnd, TEST_CHAR_EVENT ); 程序就这么一句,TEST_CHAR_EVENT 值为0,hWnd有值,不是空的。 请问可能哪里还有问题?导致失败…

查看全部问答>

吐血共享!终于完成了STM32的头文件。下一步就是~~

下一步就是使用这个头文件写初始化的函数库了!希望可以与STM32的库同时使用,这样对初学者来说可以更好理解STM32的结构。//   希望的使用方法://   STM32_Gpioa_Regs->crh.bit.MODE8=1;//    ...…

查看全部问答>

高频信号用什么芯片放大较好

请问频率在40MHZ左右的高频信号用什么芯片放大好点呢?…

查看全部问答>

Raw os 内核状态机篇

现在有很多操作系统的内部任务状态机制不全,直接导致了bug的产生,具体名字就不指明了。 Raw os  的内部任务状态非常健全,以下结构体定义了任务的状态机制。 enum RAW_TASK_STATUS {     RAW_RDY = 0,     RA ...…

查看全部问答>

求救大神啊,双闭环直流电机调速转速环数字PID调节器

救救小弟吧,给个双闭环直流电机调速转速环数字PID调节器仿真图和程序啊,感激不尽…

查看全部问答>