msp430单片机实现猜数字游戏.docx
- 文档编号:1839548
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:6
- 大小:23.95KB
msp430单片机实现猜数字游戏.docx
《msp430单片机实现猜数字游戏.docx》由会员分享,可在线阅读,更多相关《msp430单片机实现猜数字游戏.docx(6页珍藏版)》请在冰豆网上搜索。
msp430单片机实现猜数字游戏
设计任务:
1.先以一组四位数字为原版;
2.游戏参与者依次输入所猜测的四位数字,单片机根据所说入的四位数字,进行提示xAyb,x为数字位置都正确的个数,y为数字正确位置不正确的个数;
3.设置按键显示正确结果。
设计方案:
根据第一个实验设计进行改变,在其基础上添加比较compare()子函数,运行时调用次子函数进行比较。
之后显示结果。
设计目的:
体验单片机的趣味性。
程序代码:
#include
#defineucharunsignedchar
#defineuintunsignedint
unsignedcharleddata[27]{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x8f,0xbf,0x89,0xb9,0xff,0x86,0xaf,0xcf,0xc7,0x91,0x8c};
unsignedchartime[8]={0,10,0,11,0,0,0,0};//初始数码管
unsignedchargetkey(void);
unsignedintqiushu();
longcompare();
voidqingping(void);
voidfenjie();
voiddelay(unsignedintasdf)
{
for(uintasd=0;asd voidmain(void) { ucharflag=0,i=9; WDTCTL=WDTPW+WDTHOLD;/关/闭看门狗 P5DIR|=BIT7; P5OUT&=~BIT7; P4DIR=0xff; P2DIR=0xff; P1DIR=0x0F; P1OUT=0xff; while (1) {longp,q,r; i=getkey(); if(i<10) { time[4]=time[5]; time[5]=time[6]; time[6]=time[7]; time[7]=i; } else{ switch(i) { case12: time[4]=yuanshu[0];//显示原数time[5]=yuanshu[1]; time[6]=yuanshu[2]; time[7]=yuanshu[3]; break; case13: time[0]=17; p=qiushu(); qingping(); flag=13; break; case14: time[0]=18;p=qiushu();qingping(); flag=14; break; case15: time[0]=19;p=qiushu();qingping(); flag=15; break; 显示sillypig case10: time[0]=5;//time[1]=1;time[2]=24;time[3]=24;time[4]=25;time[5]=26;time[6]=1;time[7]=9;break; case11: {q=compare();// 调用compare函数 p=q/10%10; r=q%10; time[0]=p;time[2]=r;break;if((r>9999)||(r<0)){qingping();time[5]=21;time[6]=21;time[7]=22;}elsefenjie(r);}break; }} for(ucharj=0;j<=7;j++)//显示 { P4OUT=0x80>>j; P2OUT=leddata[time[j]]; delay(200); } }//endofmain 添加比较compare()子函数 longcompare()// { uchari,j,a=0,b=0,x,s; for(i=4;i<=7;i++) { if(yuanshu[i-4]==time[i]) a++; } for(i=0;i<=4;i++) { for(j=4;j<=7;j++) if(yuanshu[i]==time[j])b++; s=b-a; x=a*10+s;return(x); } unsignedintqiushu()//转化成相应的十进制整数{unsignedinty; y=time[2]*100000+time[3]*10000+time[4]*1000+time[5]*100+time[6]*10+time[7]; returny; } voidqingping(void)//清除屏幕{unsignedinta; for(a=7;a>1;a--) time[a]=0; } voidfenjie(longr)// 提取十进制整数各位数值,并显示 { time[7]=r%10; time[6]=r/10%10; time[5]=r/100%10;time[4]=r/1000%10;time[3]=r/10000%10; time[2]=r/100000%10; } longfactorial(longa) { longx,i; x=a;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- msp430 单片机 实现 数字 游戏