VB和单片机串口通信实训报告Word格式文档下载.docx

上传人:b****6 文档编号:18346294 上传时间:2022-12-15 格式:DOCX 页数:15 大小:38.41KB
下载 相关 举报
VB和单片机串口通信实训报告Word格式文档下载.docx_第1页
第1页 / 共15页
VB和单片机串口通信实训报告Word格式文档下载.docx_第2页
第2页 / 共15页
VB和单片机串口通信实训报告Word格式文档下载.docx_第3页
第3页 / 共15页
VB和单片机串口通信实训报告Word格式文档下载.docx_第4页
第4页 / 共15页
VB和单片机串口通信实训报告Word格式文档下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

VB和单片机串口通信实训报告Word格式文档下载.docx

《VB和单片机串口通信实训报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《VB和单片机串口通信实训报告Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。

VB和单片机串口通信实训报告Word格式文档下载.docx

Label2.Caption=0

time=0

Picture1.SetFocus'

开始

Timer1.Enabled=True'

小球移动

Timer2.Enabled=True'

计时开始

p_life=3'

显示生命数3条

gameover.Visible=False'

隐藏游戏结束文本

Label6.Caption=2'

生命值减一

k=True

Command3.Enabled=True

DengJ=0

EndSub

'

结束按钮

PrivateSubCommand2_Click()

End

PrivateSubCommand3_Click()

IfCommand3.Caption="

暂停"

Then

p_status=0

Timer1.Enabled=False

Timer2.Enabled=False'

把定时器都关闭

Timer3.Enabled=False

Label8.Visible=True'

游戏暂停文本

Command1.Enabled=False

Command2.Enabled=False

Command3.Caption="

继续"

Else

Picture1.SetFocus

Timer1.Enabled=True

Timer2.Enabled=True

Timer3.Enabled=True

Label8.Visible=False

Command1.Enabled=True

Command2.Enabled=True

EndIf

PrivateSubForm_Load()

MSComm1.PortOpen=True

dangb.Left=3120'

挡板位置初始化

gameover.Visible=False

Timer2.Enabled=False

Label4.Caption="

"

Label6.Caption=3

Command3.Enabled=False

score=0

M=0

shape1.Left=dangb.Left+dangb.Width/2-200'

球位置初始化

shape1.Top=dangb.Top-shape1.Height

x=False

y=False

Fori=0To30'

检查砖块

bk(i).Visible=True

Nexti

Timer4.Enabled=False

Timer5.Enabled=False

PrivateSubMSComm1_OnComm()

ST=MSComm1.Input

IfST="

E"

Then'

游戏开始

IfDengJ=1Then

CallCommand1_Click

F"

游戏暂停

Ifp_status=1Then

N=N+1

IfN=2Then

N=0

G"

End

IfST=0Then

EndIf

A"

按下A左移

Timer4.Enabled=True

CallTimer4_Timer

C"

按下C右移

Timer5.Enabled=True

CallTimer5_Timer

H"

ThenM=M+1

I"

ThenM=M-1

IfM=1ThenOption1.Value=True:

Option3.Value=False:

Option2.Value=False

IfM=2ThenOption1.Value=False:

Option2.Value=True:

Option3.Value=False

IfM=3ThenOption3.Value=True:

Option2.Value=False:

Option1.Value=False

IfM>

3ThenM=3

IfM<

0ThenM=1

PrivateSubOption1_Click()

Timer1.Interval=150

Timer3.Interval=75

Command1.Enabled=True

DengJ=1

PrivateSubOption2_Click()

Timer1.Interval=100

Timer3.Interval=50

PrivateSubOption3_Click()

Timer1.Interval=50

Timer3.Interval=25

PrivateSubPicture1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)

key=KeyCode

SelectCaseKeyCode

Case37'

如果按下左,使板子向左移动

Ifdangb.Left<

=0Then

dangb.Left=0

dangb.Left=dangb.Left-300

Case39'

如果按下右,使板子向右移动

Ifdangb.Left>

=7935-dangb.WidthThen

dangb.Left=7935-dangb.Width

dangb.Left=dangb.Left+300

EndSelect

EndSub'

鼠标控制

PrivateSubPicture1_MouseMove(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)

Ifx<

0Then

x=0

Ifx>

7935Then

x=7935

dangb.Left=x-dangb.Width/2

PrivateSubTimer1_Timer()

Ifp_status=1Then

Ifx=FalseThen

shape1.Left=shape1.Left-200

shape1.Left=shape1.Left+200

EndIf

Ify=FalseThen

shape1.Top=shape1.Top-200

shape1.Top=shape1.Top+200

Ifshape1.Top+shape1.Height>

=dangb.TopAndshape1.Left<

=dangb.Left+dangb.WidthAndshape1.Left>

=dangb.Left-shape1.WidthTheny=False

'

碰到挡板反弹

Ifshape1.Top<

=0Theny=True

Ifshape1.Left<

0Thenx=True

Ifshape1.Left+400>

=Picture1.WidthThenx=False'

碰墙反弹,上左右三个方向

Ifshape1.Top+400>

=dangb.Top+dangb.HeightThen'

小球掉落至挡板下方

p_life=p_life-1

Label6.Caption=Val(Label6.Caption-1)

Callcheck_bricks

检查是否打到砖块

IfLabel6.Caption<

gameover.Visible=True

Label6.Caption="

MSComm1.PortOpen=False

EndSub

PrivateSubTimer2_Timer()'

计时程序

time=time+1

Label4.Caption=Str(time)+"

秒"

检查是否打到砖块

PrivateSubcheck_bricks()

Dimi%,d%,c%,flag%

31块砖头

Ifbk(i).Visible=TrueAndshape1.Left-200>

bk(i).LeftAndshape1.Left+200<

bk(i).Left+bk(i).WidthAnd_

shape1.Top<

bk(i).Top+bk(i).HeightThen

Ifk=TrueThen

Zhuank=1

G=i'

记录第几块砖头被打中

y=Noty

ExitFor

CallTimer3_Timer

砖块下落

PrivateSubTimer3_Timer()

IfZhuank=1Then

k=False

bk(G).Top=bk(G).Top+150

Callcheck'

检查砖块下落地方

PrivateSubcheck()

Dimc%

Ifbk(G).Top>

=dangb.Top+dangb.HeightThenbk(G).Visible=False'

砖块掉落时就消失

砖块掉落到挡板上时加分同时也消失掉

Ifbk(G).Visible=TrueAndbk(G).Top>

dangb.Top-bk(G).HeightAndbk(G).Left>

dangb.Left-bk(G).WidthAndbk(G).Left<

dangb.Left+dangb.WidthThen

bk(G).Visible=False

score=score+10

Label2.Caption=score

Ifbk(G).Visible=FalseThenk=True

检查是否还有砖块

flag=0

Ford=0To30

Ifbk(d).Visible=TrueThen

flag=1

Nextd

Ifflag=0Thenc=MsgBox("

你输了!

vbInformation,"

结果"

Ifi=1ThenEnd

PrivateSubTimer4_Timer()'

单片机左移

dangb.Left=dangb.Left-100

=0Thendangb.Left=0

PrivateSubTimer5_Timer()'

单片机右移

dangb.Left=dangb.Left+100

Ifdangb.Left>

=7935-dangb.WidthThendangb.Left=7935-dangb.Width

2、单片机程序代码

ORG0000H

LJMPMAIN

ORG0030H

MAIN:

MOVSP,#60H

MOVSCON,#50H;

8位异步通信

MOVPCON,#80H;

SMOD为1

MOVTMOD,#20H;

定时器1为模式2

3、MOVTH1,#0F4H;

装初始值

MOVTL1,#0F4H

SETBTR1

SCANING:

MOVP0,#00H

MOVP2,#0FFH

CLRP2.2;

扫描键盘

JNBP2.4,AN1

JNBP2.7,AN2

JNBP3.2,AN3

JNBP3.3,AN4

JNBP3.4,AN5

JNBP2.5,AN6

JNBP2.6,AN7

SJMPSCANING

AN1:

LCALLDELAY1

MOVSBUF,#041H;

发送A

PAN0:

JBCTI,GOON0

SJMPPAN0

GOON0:

MOVSBUF,#042H;

发送B

PAN1:

JBCTI,XWAIT

SJMPPAN1

AN2:

MOVSBUF,#043H;

发送C

PAN2:

JBCTI,GOON1

SJMPPAN2

GOON1:

JNBP2.7,AN2

MOVSBUF,#044H;

发送D

PAN3:

SJMPPAN3

AN3:

LCALLDELAY

MOVSBUF,#045H;

发送E

PAN4:

JNBTI,XWAIT

CLRTI

SJMPPAN4

AN4:

MOVSBUF,#046H;

发送F

PAN5:

SJMPPAN5

AN5:

MOVSBUF,#047H;

发送G

PAN6:

SJMPPAN6

AN6:

MOVSBUF,#048H;

发送H

PAN7:

SJMPPAN7

AN7:

MOVSBUF,#049H;

发送I

PAN8:

SJMPPAN8

XWAIT:

DELAY:

MOVR0,#20

LAY1:

MOVR1,#20

LAY2:

MOVR2,#200

DJNZR2,$

DJNZR1,LAY2

DJNZR0,LAY1

RET

DELAY1:

MOVR5,#20

D1:

MOVR6,#40

D2:

MOVR7,#10

DJNZR7,$

DJNZR6,D2

DJNZR5,D1

END

3、系统运行界面

4、小组自评

这次的弹球游戏设计的结果小组排名第四,自我感觉也比较满意。

在游戏刚设计好的初段,我们发现游戏运行出现混乱,查到的结果是vb代码发生错误,经过我们的精心研究和查阅相关的资料,错误被改了过来。

所以说这次的团体合作设计还是比较成功的,给我们自己打个85分。

五、设计心得

经过两周的实训,我们获益匪浅!

我们懂得了团队合作的重要性,懂得分工合作是尤为重要的,我们三个人,一人负责上网找资料,一人负责与同项目的小组交流,一人负责编程。

运行游戏时,游戏出现一点小小的问题,就是弹球弹的位置和单片机的按键不行!

弹球弹的位置我们估计是数组的问题,我们首先修改VB代码的数组,效果明显好了。

至于单片机的通信,我们试过,原来是单片机的问题,换了一个就可以通信了。

弹球的问题查了资料修改了还是不够完善,但至少还能运行,对初学者应该差不多了。

老师给了的要求都能达到,我们已经很兴奋了,之后给游戏加点修饰,弄好看一点,完成!

这次实训让我们对VB和单片机的基础知识得到了巩固,让我们学习到了新的知识。

我们在理论的基础上更深刻的掌握了单片机和VB的深层内容及实际生活中的应用,实训锻炼了自己动手能力和思维能力,还有在软件方面的编程能力,同时也暴露出一些平时学习上的问题,让我们深刻反思。

这些问题的发现将为我们以后的学习和工作找明道路,查漏补缺为进一步学习作好准备。

我们感谢这次实训!

附:

指导教师评语:

实习单位意见:

实习成绩:

指导老师签名:

年月日

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1