资源简介
基于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操作介绍
- 下一篇:中南财经政法大学校园网客户端
相关资源
- 单片机音乐倒数定时器的设计
- STC15F
- 51单片机通信采样proteus仿真方波转化
- 51 单片机 红外避障小车 大集合136
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
评论
共有 条评论