徐海学院 信息工程大三下 技能考核 结课论文.docx

上传人:b****6 文档编号:15973151 上传时间:2023-07-09 格式:DOCX 页数:23 大小:2.67MB
下载 相关 举报
徐海学院 信息工程大三下 技能考核 结课论文.docx_第1页
第1页 / 共23页
徐海学院 信息工程大三下 技能考核 结课论文.docx_第2页
第2页 / 共23页
徐海学院 信息工程大三下 技能考核 结课论文.docx_第3页
第3页 / 共23页
徐海学院 信息工程大三下 技能考核 结课论文.docx_第4页
第4页 / 共23页
徐海学院 信息工程大三下 技能考核 结课论文.docx_第5页
第5页 / 共23页
徐海学院 信息工程大三下 技能考核 结课论文.docx_第6页
第6页 / 共23页
徐海学院 信息工程大三下 技能考核 结课论文.docx_第7页
第7页 / 共23页
徐海学院 信息工程大三下 技能考核 结课论文.docx_第8页
第8页 / 共23页
徐海学院 信息工程大三下 技能考核 结课论文.docx_第9页
第9页 / 共23页
徐海学院 信息工程大三下 技能考核 结课论文.docx_第10页
第10页 / 共23页
徐海学院 信息工程大三下 技能考核 结课论文.docx_第11页
第11页 / 共23页
徐海学院 信息工程大三下 技能考核 结课论文.docx_第12页
第12页 / 共23页
徐海学院 信息工程大三下 技能考核 结课论文.docx_第13页
第13页 / 共23页
徐海学院 信息工程大三下 技能考核 结课论文.docx_第14页
第14页 / 共23页
徐海学院 信息工程大三下 技能考核 结课论文.docx_第15页
第15页 / 共23页
徐海学院 信息工程大三下 技能考核 结课论文.docx_第16页
第16页 / 共23页
徐海学院 信息工程大三下 技能考核 结课论文.docx_第17页
第17页 / 共23页
徐海学院 信息工程大三下 技能考核 结课论文.docx_第18页
第18页 / 共23页
徐海学院 信息工程大三下 技能考核 结课论文.docx_第19页
第19页 / 共23页
徐海学院 信息工程大三下 技能考核 结课论文.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

徐海学院 信息工程大三下 技能考核 结课论文.docx

《徐海学院 信息工程大三下 技能考核 结课论文.docx》由会员分享,可在线阅读,更多相关《徐海学院 信息工程大三下 技能考核 结课论文.docx(23页珍藏版)》请在冰点文库上搜索。

徐海学院 信息工程大三下 技能考核 结课论文.docx

徐海学院信息工程大三下技能考核结课论文

中国矿业大学徐海学院

技能考核培训

姓名:

欢乐的小周学号:

221208XX

专业:

 信息工程 

题目:

基于8051单片机和LabVIEW的简单游戏设计

专题:

指导教师:

有朋

设计地点:

电工电子实验室时间:

 

2015年6月

目录

第一章系统设计概述3

1.1系统设计框图3

1.2功能描述3

1.38051单片机开发板(发送)概述3

1.48051单片机开发板(接收)概述4

1.5LabVIEW设计4

第二章硬件部分5

2.1 MCS-51单片机内部结构5

2.2MCS—51单片机引脚功能9

2.3NRF模块12

2.4 下位机程序设计14

第三章软件部分17

3.1 界面17

3.1.1开始界面17

3.1.2 开始游戏界面17

3.1.3 提示界面18

3.2 程序19

3.2.1 项目及其依赖项目19

3.2.2 main.vi程序设计19

3.2.3 game.vi 程序设计20

参考文献22

第一章系统设计概述

1.1系统设计框图

本设计下位机利用上学期课程内的51单片机开发板,并在开发板上增加了nRF2401射频收发模块。

上位机部分主要利用NI公司的LabVIEW软件。

系统示意图如下:

1.2功能描述

51开发板(发送方)按按钮12,通过nrf模块发送无线控制信号到另一块51开发板(接收方),接收方收到后,通过串口发送数据到上位机,上位机实现小鸟的跳跃。

1.38051单片机开发板(发送)概述

发送部分主要用到的是开发板的按键和nrf2401发送模块,结构示意框图如下:

 

1.48051单片机开发板(接收)概述

接收部分主要用到的是开发板的nrf2401发送模块和串口,结构示意框图如下

1.5LabVIEW设计

LabVIEW用到的版本为2014和8.6.用到的模块有VISA模块。

LabVIEW2014:

LabVIEW8.6

 

第二章硬件部分

2.1 MCS-51单片机内部结构

MCS—51是美国Intel公司的8位高档单片机系列,是在MCS—48系列基础上发展而来的,也是我国目前应用最广的一种单片机。

在这个系列里,有多种型号,因此各自特点也不相同。

另外,51系列单片机在指令系统、硬件结构等方面与52系列的单片机可以完全的兼容。

51系列的单片机执行速率快,功耗低,在系统、在应用可编程,不占用用户的资源。

从制作工艺来看,MCS—51系列分为HMOS和CMOS两类。

CMOS器件的特点是电流小、功耗低,但对电平要求较高(高电平>4.5V,低电平<0.45V),HMOS对电平要求较低(高电平>2.0V,低电平<0.8V),但功耗相对较大。

综合各方面因素,根据本系统设计的实际要求,选择由ATMEL公司生产的高性能、低功耗的CMOS8位单片机AT89C51作为本设计使用的单片机[7]。

8051单片机内部包含了微型计算机所必需的功能部件,各功能部件相互独立集成在同一块芯片上,其结构如图,我们将对各功能部件详细加以介绍。

MCS-51结构框图

CPU结构

CPU是一个二进制8位的中央处理单元,它对数据的处理是按字节进行的。

8051内部的CPU是由运算器、控制器和专用寄存器组三部分电路组成的。

1,运算器

运算器由一个加法器、两个8位暂存器和一个处理器组成。

8051单片机内部的运算器功能很强大,它可以进行加、减、乘、除运算,还可以进行与、非、异或等逻辑计算,与此同时还具备数据传送、移位、程序转移等功能。

8051运算器为用户提供了丰富的指令系统和执行速度,大部分指令的执行时间为1μS,乘法指令时间可达4μS。

2,控制器

控制器由定时控制逻辑、指令寄存器和振荡器等电路组成。

定时控制逻辑电路用于对指令寄存器中的指令代码进行译码。

指令寄存器IR用于存放从程序寄存器中取出的指令码。

振荡器OSC是控制器的心脏,为控制器提供时钟脉冲。

3,专用寄存器组

此部分用来显示当前要执行的工作:

内存地址,存放操作数和指示指令操作后的状态等。

此寄存器是所有计算机的中央处理器CPU不可缺少的组成部分,因机器型号不同对应计算机的寄存器型号也不同。

另外,专用寄存器组由六部分构成,以下是对每部分的简单介绍。

①程序计数器PC

PC是二进制16位的程序地址寄存器,用于存放下一条需要执行的指令的内存地址,可以自动加一。

8051程序计数器PC由16个触发器组成,编码范围从0000H到FFFFH,寻址范围为64K。

②累加器A

累加器A是一个二进制8位寄存器,专门用于存放运算结果。

在CPU执行运算前,一般存放两个操作数中的一个。

③通用寄存器B

通用寄存器是为乘法和除法运算而设置的,它是二进制8位寄存器,包含8位触发器。

通用寄存器在乘法和除法运算前,存放乘数和除数,在运算完成后存放积的高八位或是余数。

④程序状态字PSW

程序状态字是8位的寄存器。

它的各位状态一般在指令执行过程中生成,用户也可以根据自己需要改变,PSW标志位定义见表

 

PSW标志位定义

PSW0

PSW1

PSW2

PSW3

PSW4

PSW5

PSW6

PSW7

P

OV

RS0

RS1

F0

AC

Cy

奇偶标志位

溢出标志位

寄存器选择位

用户标志位

辅助进位

进位标志位

⑤堆栈指针SP

堆栈指针是一个8位寄存器,可以自动加一、减一,用于存放栈顶地址。

⑥数据指针DPTR

数据指针是16位的寄存器,是8位寄存器DPH和DPL拼成。

DPH是数据指针的高八位,DPL是数据指针的低八位。

数据指针用来存放片内ROM地址、片外ROM、片外RAM地址。

存储器结构

MCS—51系列单片机有片内、片外之分,还有ROM、RAM之分。

它的片内存储器集中在芯片内部,片外存储器是外接专用存储器芯片,51只是提供地址和控制地址。

1,存储器地址分配

存储器的地址分配有三个地址空间:

ROM存储器地址空间(片外ROM、片内ROM),地址范围从0000H到FFFFH;片内RAM地址空间,地址范围从00H到FFH;片外RAM地址空间,地址范围从0000H到FFFFH,MCS-51系列单片机内存示意图见图。

MCS-51单片机内存结构示意图

2,片内ROM

8051含有4KB的ROM,地址范围从0000H到0FFFH,它可以外接外部ROM,片内片外之和≤64KB。

其中4KB片内ROM和片外ROM都可以使用,但是不可以同时使用,另外60KB为片外ROM专用。

3,片外RAM

片外RAM是在片内RAM容量较小时可以外接的,然而外接容量不可以超过64KB。

4,片内RAM

片内RAM有256个存储单元,地址范围从00H到FFH,片内RAM的低128字节为00H到7FH,高128字节为80H到FFH。

根据功能的不同,片内RAM的低128字节可以分为:

工作寄存器区、位寻址区、便栈区。

5,特殊功能寄存器SFR

特殊功能寄存器指特殊用途的寄存器的集合。

8051的SFP有21个,每个占用一个RAM,地址范围从80H到FFH。

I/O端口

51单片机想实现控制和信息交换则必须经过I/O端口。

端口由串行I/O端口和并行I/O端口组成,它们存在很大不同。

串行I/O端口一次只能传送一位二进制的信息,而并行I/O端口一次传送一组二进制的信息。

1,并行I/O端口

8051单片机内部有P0、P1、P2、P3四个并行I/O端口。

四个端口功能上差异很大,例如,P0用于输出片外存储器低八位地址码,也可以读写数据。

P1用于通用I/O口,为中央处理器CPU传输用户数据。

输出片外存储器高八位地址码时,我们可以选用P2引脚等。

2,串行I/O端口

串行I/O端口不仅可以把中央处理器的八位并行数据转换为串行数据,从而逐位发送出去,或是把接受到的数据变成八位并行数据再反送给中央处理器。

在上文中提到的“P3还有第二功能”,8051的串行发送和接收就在这里用到了它的第二功能,P3口第二功能分配详见表3.3。

起到串行数据接收口的作用的是P3.0引脚“

”;起到串行数据发送端口作用的是P3.1引脚“

”;P3.2引脚为外中断0输入“

”;P3.3引脚为外中断1输入“

”;P3.4为计数器0计数输入“

”;P3.5为计数器1计数输入“

”;外部RAM写选通信号“

”是P3.6;外部RAM读选通信号“

”是P3.7。

P3口各位的第二功能

P3口各位的第二功能

P3口的位

第二功能

注释

P3.0

串行数据接收口

P3.1

串行数据发送口

P3.2

外中断0输入

P3.3

外中断1输入

P3.4

计数器0计数输入

P3.5

计数器1计数输入

P3.6

外部RAM写选通信号

P3.7

外部RAM读选通信号

 

定时器、计数器

8051单片机含有的定时器和计数器都属于16位,分别命名为T0和T1。

TH0为T0的高八位,TL0为T0的低八位。

同样,TH1为T1的高八位,TL1为T1的低八位。

有定时器、计数器两种工作模式的是T0和T1。

中断系统

外部中断源两个和内部中断源三个都属于8051单片机,其中内部中断源包括定时器中断源、计数器中断源和串行口中断源。

2.2MCS—51单片机引脚功能

MCS—51系列单片机中,它们是相互兼容的,芯片因引脚的位置安排不同略有差异[11]。

MCS—51系列单片机有两种封装双列直插式和方形封装,本文设计我们采用最常用的双列直插式单片机,因为在硬件焊接上较容易。

8051单片机有40条引脚,整体看来可以分为三类包括端口线、电源线和控制线,详细引脚示意图见图

MCS-51封装和引脚分配

1,端口线

共有32条。

P0.7~P0.0:

P0.7为最高位,P0.0为最低位。

P0的八个引脚在带片外存储器和不带片外存储器的情况下功能是不同的。

在不带片外存储器的情况下,P0.7到P0.0为中央处理器CPU输入输出数据,增强了数据传输的准确性;当带片外存储器时,当中央处理器访问片外存储器时,它们首先传送片外存储器的低八位,然后再传送中央处理器对片外存储器的读写数据。

P1.7~P1.0:

P1.7为最高位,P1.0为最低位。

P1的八个端口功能与P0的大致相似,主要用于数据的传输。

P2.7~P2.0:

P2.7为最高位,P2.0为最低位。

P2的第一功能与P1、P0相似,作为通用I/O端口使用。

P3.7~P3.0:

P3.7为最高位,P3.0为最低位。

P3的第一功能与P2、P1、P0相似,作为通用I/O端口使用。

2,电源线

共有两条:

VCC为+5V电压线,VSS为接地线。

3,控制线

共有6条。

引脚:

地址锁存允许/编程线。

配合P0口引脚,用于输出片外存储器的高八位。

引脚:

允许访问片外存储器/编程电源线。

管理8051是使用片内ROM还是片外ROM。

详细来说:

为1,8051使用片内ROM;

为0,8051使用片外ROM。

引脚:

片外ROM选通线。

在访问片外ROM的指令MOVC时,8051单片机会在

引脚上自动产生一个负脉冲,用于片外ROM芯片的选通。

在其他状态下,

引脚均为高电平封锁状态。

引脚:

复位/备用电源线。

此引脚将8051单片机处于初始化状态,复位后的P0口至P3口均置于高电平,这时程序计数器和特殊功能寄存器将全部清零。

引脚:

片内震荡电路输入线。

外接的是12MHz的石英晶振,使内部振荡器按照石英晶振的频率频率进行振荡,从而就可以产生时钟信号,构成时钟信号电路。

为信号输入端,电路采用自激振荡工作方式。

当晶体震动时,在

引脚上输出3V正弦波,可以使51单片机的自激震荡频率与晶体的频率相同。

单片机的最小系统是指,利用单片机的最小配置系统即单片机能工作的系统。

对于80C51单片机,因为芯片自带有了程序存储器,所以只要此单片机外接时钟电路和复位电路就可以构成单片机的最小系统。

本设计的单片机最小系统如图所示。

单片机最小系统

 

2.3NRF模块

nRF24.L01是一款新型单片射频收发器件,工作于2.4GHz~2.5GHzISM频段。

内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。

nRF24L01功耗低,在以-6dBm的功率发射时,工作电流也只有9mA;接收时,工作电流只有12.3mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便

原理:

发射数据时,首先将nRF24L01配置为发射模式:

接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10μs,延迟130μs后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。

如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TXFIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TXFIFO中数据保留以便再次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。

最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。

接收数据时,首先将nRF24L01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。

当接收方检测到有效的地址和CRC时,就将数据包存储在RXFIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。

若此时自动应答开启,接收方则同时进入发射状态回传应答信号。

最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。

nRF24L01的封装及引脚排列如图所示。

各引脚功能如下:

CE:

使能发射或接收;

CSN,SCK,MOSI,MISO:

SPI引脚端,微处理器可通过此引脚配置nRF24L01:

IRQ:

中断标志位;

VDD:

电源输入端;

VSS:

电源地:

XC2,XC1:

晶体振荡器引脚;

VDD_PA:

为功率放大器供电,输出为1.8V;

ANT1,ANT2:

天线接口;

IREF:

参考电流输入。

引脚

名称

引脚功能

描述

1

CE

数字输入

RX或TX模式选择

2

CSN

数字输入

SPI片选信号

3

SCK

数字输入

SPI时钟

4

MOSI

数字输入

从SPI数据输入脚

5

MISO

数字输出

从SPI数据输出脚

6

IRQ

数字输出

可屏蔽中断脚

7

VDD

电源

电源(+3V)

8

VSS

电源

接地(0V)

9

XC2

模拟输出

晶体振荡器2脚

10

XC1

模拟输入

晶体振荡器1脚/外部时钟输入脚

11

VDD-PA

电源输出

给RF的功率放大器提供的+1.8V电源

12

ANT1

天线

天线接口1

13

ANT2

天线

天线接口2

14

VSS

电源

接地(0V)

15

VDD

电源

电源(+3V)

16

IREP

模拟输入

参考电流

17

VSS

电源

接地(0V)

18

VDD

电源

电源(+3V)

19

DVDD

电源输出

去耦电路电源正极端

20

VSS

电源

接地(0V)

2.4 下位机程序设计

发送板程序流程图如下:

发送板

 

接收板程序流程图如下:

 

第三章软件部分

3.1 界面

3.1.1开始界面

在这个界面中实现串口的选择、游戏玩家ID和进入游戏。

3.1.2 开始游戏界面

在这个界面中游戏已经开始,小鸟会不停下降,玩家用发送板控制小鸟上升,接收板相当于无线游戏手柄。

 

3.1.3 提示界面

出界(触地)提醒:

撞墙提醒:

游戏通关:

 

3.2 程序

3.2.1 项目及其依赖项目

mian.vi为启动VI实现对不同的VI的调用,

3.2.2 main.vi程序设计

在本VI中主要实现对game.vi的调用(开始游戏按钮按下时)。

3.2.3 game.vi 程序设计

本VI(进程),包含两个while循环(线程),其中一条线程检测前面板的操作和控制前面板对象,另一条进程检测串口。

循环1部分程序如图:

本循环中主要是通过控制小鸟的位置属性实现它的下降与跳跃;通过“墙”的边界属性来判断小鸟是否撞墙;通过小鸟的位置属性检测是否出界或通过。

循环2部分程序如下:

检测串口,收到数据改变小鸟的的位置。

参考文献

[1]阮奇桢.我和LabVIEW.北京:

北京航空航天大学出版社,2012.8

[2]陈树学,刘萱.LabVIEW宝典.北京:

电子工业出版社,2011.3

[3]郑辉著.冒号课堂.北京:

电子工业出版社,2009.10

[4]黄松岭,吴静.虚拟仪器设计基础教程.北京:

清华大学出版社,2008.10

[5]冯占领.数字电压表及数字多用表检测技术.北京:

中国计量出版社,2003.4

[6]美国Fluke公司著;汪铁华译.校准——理论与实践.北京:

中国计量出版社,2001.1

[8]DavidJ.Ritter.LabVIEWGUI:

essentialtechniques.NewYork:

McGraw-Hill,2001.10

[9]布鲁姆(美),刘章.LabVIEW编程样式.北京:

电子工业出版社,2009.6

[10]Johnson,G.W,Jennings,R(美).LabVIEW图形编程.北京:

北京大学出版社,

DanieleM,ClaudioN,CarloO,DarioP,AndreaT(1992)Digitaltime-of-flightmeasurementforultrasonicsensors.IEEETransInstrumMeas41:

93–97

 

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2