徐海学院 信息工程大三下 技能考核 结课论文.docx
- 文档编号:15973151
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:23
- 大小:2.67MB
徐海学院 信息工程大三下 技能考核 结课论文.docx
《徐海学院 信息工程大三下 技能考核 结课论文.docx》由会员分享,可在线阅读,更多相关《徐海学院 信息工程大三下 技能考核 结课论文.docx(23页珍藏版)》请在冰点文库上搜索。
徐海学院信息工程大三下技能考核结课论文
中国矿业大学徐海学院
技能考核培训
姓名:
欢乐的小周学号:
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 徐海学院 信息工程大三下 技能考核 结课论文 学院 信息 工程 大三 技能 考核 论文