资源简介
基于C51单片机实现简单点阵五子棋Keil程序与protues电路仿真图
代码片段和文件信息
#include
#include
sbit SD=P2^4;
sbit STCK=P2^5;
sbit SHCK=P2^6;
sbit K2=P1^0; //左移
sbit K1=P1^1; //右移
sbit K3=P1^2; //上移
sbit K4=P1^3; //下移
sbit K5=P1^4; //确定
unsigned char player;
unsigned char x=0y=0k=0;
unsigned char player1lie[8]={ 0 };
unsigned char player2lie[8]={ 0 };
unsigned char code lie[]={0x800x400x200x100x080x040x020x01};
unsigned char code hang[]={0x7f0xbf0xdf0xef0xf70xfb0xfd0xfe};
unsigned char code zimoP1[]={0xE10x410x410x4F0x490x490x690x4F};
unsigned char code zimoP2[]={0xE10x210x210xE10x8F0x890x890xEF};
unsigned char code zimo[]={0x810x420x240x180x180x240x420x81};
unsigned char nowplayer;
unsigned char player1=1;
unsigned char player2=2;
void delay1ms(unsigned int i)
{
unsigned char j;
while(i--)
for(j=0;j<115;j++)
;
}
void shuru(unsigned char dat)
{
unsigned char i;
for(i=0;i<8;i++)
{
SHCK=0;
SD=dat&0x80;
dat<<=1;
SHCK=1;
}
}
void shuchu()
{
STCK=0;
STCK=1;
}
void player2win()
{
unsigned char i;
while(1)
{
for(i=0;i<8;i++)
{
shuru(zimoP2[i]);
shuru(hang[i]);
shuchu();
}
}
}
//2胜显示
void player1win()
{
unsigned char i;
while(1)
{
for(i=0;i<8;i++)
{
shuru(zimoP1[i]);
shuru(hang[i]);
shuchu();
}
}
}
//1胜显示
void pinju()
{
unsigned char i;
while(1)
{
for(i=0;i<8;i++)
{
shuru(zimo[i]);
shuru(hang[i]);
shuchu();
}
}
}
//平局显示
void pingju()
{
if(k>=32)
pinju();
}
void checkplayer1()
{
unsigned char imn=0k1=0;
for(i=0;i<8;i++)
{
player=0x1f;
for(m=0;m<4;m++)
{
if((player&player1lie[i])==player)
player1win();
else
player=player<<1;
}
}
//左右判断
for(i=0;i<8;i++)
{
for(m=0;m<8;m++)
{
if(player1lie[m]&lie[i])
{
k1++;
if(k1>=5)
player1win();
}
else k1=0;
}
} //上下判断
for(i=0;i<4;i++)
{
for(m=0;m<8;m++)
{
if((player1lie[0+m]>>(m+i))&0x01)
k1++;
else
{
if(k1>=5)
player1win();
k1=0;
continue;
}
}
}
for(i=1;i<4;i++)
{
for(m=0;m<8;m++)
{
if((player1lie[7-m]>>(7-i-m))&0x01)
k1++;
else
{ if(k1>=5)
player1win();
k1=0;
continue;
}
}
}
//斜向判断
}
//判断2胜
void checkplayer2()
{
unsigned char imn=0k1=0;
for(i=0;i<8;i++)
{
player=0x1f;
for(m=0;m<4;m++)
{
if((player&player2lie[i])==player)
player2win();
else
player=player<<1;
}
}
//左右判断
for(i=0;i<8;i++)
{
for(m=0;m<8;m++)
{
if(player2lie[m]&lie[i])
{
k1++;
if(k1>=5)
player2win();
}
else k1=0;
}
} //上下判断
for(i=0;i<4;i++)
{
for(m=0;m<8;m++)
{
if((player2lie[0+m]>>(m+i))&0x01)
k1++;
else
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-06-18 19:55 仿真程序\
文件 11803 2017-06-18 19:54 仿真程序\main
文件 14703 2017-06-18 19:54 仿真程序\main.LST
文件 19343 2017-06-18 19:54 仿真程序\main.M51
文件 14011 2017-06-18 19:54 仿真程序\main.OBJ
文件 4701 2017-06-18 19:54 仿真程序\main.c
文件 3188 2017-06-18 19:54 仿真程序\main.hex
文件 25 2017-06-18 19:54 仿真程序\main.lnp
文件 176 2017-06-18 19:55 仿真程序\main.plg
文件 55204 2017-06-18 19:55 仿真程序\main.uvopt
文件 13224 2017-06-18 19:54 仿真程序\main.uvproj
文件 55204 2017-06-18 19:54 仿真程序\main_uvopt.bak
文件 0 2017-06-18 19:53 仿真程序\新建文本文档.txt
目录 0 2017-06-19 10:16 点阵五子棋电路图\
文件 87271 2017-06-18 19:58 点阵五子棋电路图\Last Loaded dianlu.DBK
文件 91475 2017-06-18 19:58 点阵五子棋电路图\dianlu.DSN
文件 742 2017-06-19 10:16 点阵五子棋电路图\dianlu.PWI
- 上一篇:TA操作介绍
- 下一篇:中南财经政法大学校园网客户端
相关资源
- 干电池剩余电量百分比算法函数
- 数字温度计用51单片机程序
- 51单片机利用8266wifi获取网络时间,亲
- 51单片机频率计程序
- Protues 8.6安装包+安装教程
- 基于51单片机和热敏电阻数字温度计
- 单片机课程设计报告书
- 基于stc89c51的密码锁
- 单片机数码管显示温度
- 基于51单片机的只能台灯
- max31856驱动程序官方文件
- 汇编语言单片机5路抢答器代码
- AT89C52单片机学习开发板Proteus仿真图
- 51单片机 LCD12864程序显示文字或者图片
- 基于单片机的老人跌倒检测装置
- 单片机孵化环境温度湿度监控系统设
- 51单片机mpu6050读取六轴原始数据并L
- 应用MSP430单片机的pwm直流电动机调速
- DS2782 美信电量计芯片 IIC STM32/STM8/5
- pic单片机spi双机通信
- 基于C51单片机的8×8-LED点阵屏汉字显示
- 音乐频谱显示参考源代码.rar
- 红外温度测温成功mxl90614
- 基于51单片机电子音乐门铃设计
- 51单片机读写SD卡+播放视频
- AT89C51单片机实现的强大交通灯控制汇
- 基于51单片机的无线病床呼叫系统设计
- 基于单片机的语音录放系统设计
- 基于51单片机的花样流水灯(汇编程序
- keil uvision4完整破解版
评论
共有 条评论