收藏 分享(赏)

单片机打地鼠代码.doc

上传人:HR专家 文档编号:7483266 上传时间:2019-05-19 格式:DOC 页数:14 大小:34.50KB
下载 相关 举报
单片机打地鼠代码.doc_第1页
第1页 / 共14页
单片机打地鼠代码.doc_第2页
第2页 / 共14页
单片机打地鼠代码.doc_第3页
第3页 / 共14页
单片机打地鼠代码.doc_第4页
第4页 / 共14页
单片机打地鼠代码.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、单片机打地鼠代码/*单片机为 at89s52,显示用 12864 液晶显示屏。黄书敏2012.5*/#include#include#include#define uchar unsigned char#define uint unsigned int#include “stdlib.h“#define FSOC 12000000L / 晶振频率#define TIMS1 (65536-FSOC/12/1000*5) / 每 5ms 溢出#define TIMS0 (65536-200) /计数器每中断 200 次溢出一次/全局变量/uchar score = 0; /分数uint top =

2、 0; /最高分uchar level = 1; / 关数uchar life = 3; / 生命数uchar pos = 0 ; /地鼠/地雷位置uchar prepos = 0; /上一只地鼠/地雷位置uchar flag = 0; /地鼠 or 地雷标志位 uint count; /计时器uchar remtime = 33 ; /每局剩余秒数 30ssbit triger = P33 ; /单片机 P33 口接 P34 口/函数声明/void DelayUs2x(uint t);void DelayMs(uint t);void delay_50us(uint t);void dela

3、y_1s(uint t);void delay_0_5s(uint t);void CheckBusy(void);void write_12864com(uchar com);void write_12864date(uchar date) ;void initinal(void) ;void ClrScreen();void Set_Cursor(uchar x, uchar y) ;void writeCGRAM(uchar pos,uchar code *pic) ;void displayCGRAM(uchar x,uchar y,uchar pos) ;void LCD_PutSt

4、ring(unsigned char x,unsigned char y,unsigned char code *s) ;void LCD_PutGraphic(unsigned char code *img); /显示满屏图片void showpic(uchar x,uchar y,uchar code *pic);void show_welcome() ;void show_life(uchar life) ;void show_level(uchar level) ;void show_time(uchar time) ;void show_score(uint score) ;void

5、 IniScreen() ;void show_mouse(uchar pos); /在指定位置显示老鼠void show_strike(uchar pos) ; /在指定位置显示锤子void show_bomb(uchar pos); /在指定位置显示炸弹void show_squre(uchar pos); /在指定位置显示方框void show_level_up(uchar level,uint score);void show_gameover(uint score);void show_congratulation(uint score);void show_win_newrecor

6、d(uint score, uint top);void show_lose_newrecord (uint score,uint top) ;/void Timers_Init() ; void Timer1reset() ;void Timer0reset() ;void Timer0_ISR() ; /中断处理函数void Timer1_ISR() ;void close_timers() ;void delay_ms(uint t);unsigned char Key_Scan() ;uint long_delay (uchar s) ;uint StarAGame() ;void l

7、evel_going() ;unsigned char end() ;/12864 显示屏函数是队友写的,未经允许不做公开/定时器/void Timers_Init() /配置 Timer1 为计时器,timer0 为计数器,timer1 每 5ms 送出一个 interrupt 3 , 使count+,timer0+TMOD = 0x15;TH0 = TIMS08;TL0 = TIMS0;ET0 = 1; /打开定时器 0 中断TH1 = TIMS18;TL1 = TIMS1; ET1 = 1; /打开定时器 1 中断EA = 1; /打开总中断IT0 = 0;triger = 1 ; vo

8、id Timer0reset() TR0 = 1 ; /timer0 允许记时 remtime = 33 ;void Timer1reset()TR1 = 1 ; /timer1 允许计时count = 0 ;void Timer0_ISR() interrupt 1 / 用于每局 30s 计时remtime- ; /时间减一秒show_time(remtime-3); /打印时间TH0 = TIMS08;TL0 = TIMS0; void Timer1_ISR() interrupt 3 /用于每只老鼠时间计时,具体时间依关数不同。triger = 0;triger = 1;count+;T

9、H1 = TIMS18;TL1 = TIMS1; void close_timers()TR0 = 0;TR1 = 0; /矩阵键盘/void delay_ms(uint t)uint i;for(;t0;t-)i = 120;while (i-) ;unsigned char Key_Scan()unsigned char X=0,Y=0,key=255;P1 = 0x0f;if(P1!=0x0f)delay_ms(10); /消抖if(P1!=0x0f)X = P1;P1 = 0xf0;Y = P1;key = X|Y;switch(key)case 0xee: key=12; break

10、; /对键值赋值case 0xde: key=8; break;case 0xbe: key=4; break;case 0x7e: key=0; break;case 0xed: key=13; break;case 0xdd: key=9; break;case 0xbd: key=5; break;case 0x7d: key=1; break;case 0xeb: key=14; break;case 0xdb: key=10; break;case 0xbb: key=6;break;case 0x7b: key=2;break;case 0xe7: key=15;break;cas

11、e 0xd7: key=13;break;case 0xb7: key=7;break;case 0x77: key=3;break;default: key = 255;break;while(P1!=0xf0);return key;/游戏进行时/uint long_delay (uchar s) /延时函数uchar i,j;while(s-)for(i=0;i3) show_life(life);show_score(score);delay_ms(500-8*level);if (life 0) prepos = pos;pos = rand()%16; flag = rand()%

12、7; creat_a_mouse();else close_timers() ;return; close_timers();return ;unsigned char end()if(level0;) /扫描键盘一分钟,等待选择是退出还是再来一局。unsigned char temp; Timer0reset() ;temp = Key_Scan() ;if (temp=8 ClrScreen();show_level_up(level,score) ;delay_1s(8);level_going() ;if (end()=1)close_timers() ;continue;else close_timers() ;ClrScreen();break;elseClrScreen(); break;while(1);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报