P89V51单片机实验板的软硬件设计
摘 要
本次实习以完成P89V51单片机实验板的软硬件设计为目的,主要完成内容包括:P89V51实验板原理图的绘制、硬件焊接、综合测试程序编写、发挥部分的贪吃蛇小游戏设计和乒乓球游戏机的设计以及LabVIEW上位机界面的设计。通过实践,很好地完成了系统的硬件部分,编程实现了系统板所有模块的同时工作和LCD贪吃蛇小游戏,利用51单片机的PWM输出口实现了示波器上的乒乓球游戏机,并在其和贪吃蛇游戏基础上实现特色创新功能,最后设计LabVIEW上位机实现AD波形显示以及其对单片机的控制。
关键词:P89V51单片机; PCB; C51编程; PWM; LabVIEW;
1
目 录
摘 要 ............................................................................................................................................ 1 目 录 ............................................................................................................................................ 2 1 实习任务及要求 ..................................................................................................................... 3
1.1 实习任务 ...................................................................................................................... 3
1.2 实习要求 ...................................................................................................................... 3
1.2.1 基本要求 .......................................................................................................... 3
1.2.2 发挥部分 .......................................................................................................... 3 2 系统硬件设计 ......................................................................................................................... 3
2.1 系统原理图和PCB ..................................................................................................... 3
2.2 硬件焊接调试 ............................................................................................................. 53 系统软件设计 ......................................................................................................................... 5
3.1 综合测试模块 ............................................................................................................. 5
3.2 贪吃蛇小游戏 ............................................................................................................. 5
3.3 乒乓球游戏机 ............................................................................................................. 6
3.4 特色与创新.................................................................................................................. 7
3.5 LabVIEW上位机 ......................................................................................................... 8 4 问题与解决方案 ..................................................................................................................... 8
5
心得体会
决胜全面小康心得体会学党史心得下载党史学习心得下载军训心得免费下载党史学习心得下载
与建议 ..................................................................................................................... 9
5.1 心得体会 ...................................................................................................................... 9
......................................................................................... 错误~未定义书签。 5.2 建议
参考文献 ....................................................................................................................................... 9
2
中国地质大学(北京)2013年本科实习报告
1 实习任务及要求
1.1 实习任务
学习P89V51单片机基础知识,实践PCB制板过程,并焊接调试51实验板硬件电路,在硬件基础上学习实践51单片机的C51语言编程,设计实现在示波器上打乒乓球,并应用LabVIEW实现上位机软件。
1.2 实习要求
1.2.1 基本要求
1、用Altium Designer软件绘制P89V51电路板,读懂P89V51实验板原理图;
2、焊接调试P89V51实验板,要求所有模块都能正常工作;
3、利用Keil uVision3调试工具,掌握单片机上的C语言编程;
4、编写实验板测试程序,要让尽可能多的模块同时工作(键盘、8个LED指示灯、蜂鸣
器、七段数码管、USB转UART串口、LCD显示、串行FLASH 24C08、温度传感器DS18B20、
24位AD转换器CS5550、DA转换器DAC0832);
5、设计LabVIEW界面,显示AD采集到的波形,通过PC机控制单片机系统运行。通过上
位机LabVIEW界面控制AD采样率,LCD显示,七段数码管,8个LED指示灯等等。 1.2.2 发挥部分
1. 设计一个示波器,在LCD上显示波形。尽可能完善提高示波器性能。
2. 设计俄罗斯方块游戏,能显示得分,可以调节游戏难度,可以用PC机键盘控制,也
可以用单片 机板上的矩阵键盘控制。俄罗斯方块必须显示在LCD上。
3. 设计贪吃蛇游戏,能显示得分,可以调节游戏难度,可以用PC机键盘控制,也可以
用单片机板上的矩阵键盘控制。贪吃蛇必须显示在LCD上。
4. 利用单片机的PWM输出口做一个乒乓球游戏机。
5. 其他特色与创新。
发挥部分说明:1—3任选其一,4和5必选。
2 系统硬件设计
2.1 系统原理图和PCB
系统原理图和PCB的设计采用的是Altium Designer软件,具体设计流程如图2-1。
图 2-1
3
中国地质大学(北京)2013年本科实习报告
1. 进行PCB设计,第一步要准备好原理图SCH元件库和PCB元件库,元件库可以用DXP
自带的库,也可以根据自己所选器件的标准尺寸资料自己画元件库。PCB的元件库直
接影响板子的安装。
2. 电路原理图即SCH文件,根据仿真无误的系统电路图,从第一步设计好的原件库调出
原件并排列连接,分模块设计有助于提高画图效率。
3. 在保证原理图和PCB文件已保存并在同一个工程的前提下,执行菜单命令Design?
Update PCB Document,弹出对话框选择Execute Changes。
4. 布局说白了就是在板子上放器件 ,布局直接影响布线,一般布局有如下原则:
, 按电气性能合理分区,一般分为:数字电路区、模拟电路区和功率驱动区;
, 完成同一功能的电路,应尽量靠近放置,并调整各元器件以保证连线最为简洁;
, 时钟产生器(如:晶振或钟振)要尽量靠近用到该时钟的器件;
, 布局要均衡,疏密有序 ;
5. 布线是整个PCB设计中最重要的工序,这将直接影响着PCB板的性能好坏。布线之前
要进行规则设置,布线时主要按以下原则:
, 避免线宽突变,避免锐角、直角,尽量采用,,?走线;
, 高频信号尽可能短,相邻层信号线为正交方向,避免交叉干扰;
, 各类信号走线不能形成环路,输入、输出信号尽量避免相邻平行走线;
, 双面板电源线、地线的走向最好与数据流一致;
, 整块PCB布线、打孔要均匀;
6. 布线完成之后,需要执行菜单Tools->Teardrops添加泪滴,执行菜单Tools->Polygon
Pours-> Polygon Manager进行覆铜。
7. 执行菜单命令 Tools->Design Rule Check,弹出DRC对话框,点击Run Design Rule
Check按钮进行检查,检查完毕自动弹出Messages对话框,显示检查结果。 8. 执行file->smart PDF,可得到相关输出文件。
图 2-2
4
中国地质大学(北京)2013年本科实习报告
2.2 硬件焊接调试
硬件焊接,相对比较简单,焊接过程需注意以下几点:
1. 按照由小到大,由低到高的顺序焊接;
2. 注意元器件方向,避免虚焊、漏焊、短路;
3. 贴片元件采用拉焊的方式,注意焊锡均匀;
板子焊接完成之后,烧写相应程序,进行分模块测试即可。
3 系统软件设计
系统主要采用Keil uVision4软件进行C51语言编程,包括:综合测试模块、贪吃蛇小游戏和乒乓球游戏机模块,最后,采用LabVIEW软件设计实现了上位机界面。 3.1 综合测试模块
系统综合测试模块代码功能框图如图3-1所示。
MODE选择
AD-DA测试 信号发生器 多模块测试
图3-1
1. AD-DA部分,主要测试CS5550、UART和DAC0832,模拟信号输入经AD转换后,触发
INT1中断进行DA转换,并将数据发送到串口显示,上位机可显示波形,切能更改AD
采样率。
2. 信号发生器部分主要测试DAC0832和按键,按键输入频率后,开T0中断,依次索引
正弦码表,进行DA转换,可输出60~400HZ正弦波。
3. 多模块测试部分,主要测试LCD、LEDS、数码管、24C08、KEY、UART和BEEP,主要
功能包括:数码管显示开机时间(掉电保护),按键或串口切换流水灯模式,LCD显
示实时温度、开机时间和流水灯工作方式。
图3-2 AD-DA 图3-3 多模块测试 3.2 贪吃蛇小游戏
贪吃蛇小游戏,主要用到的是按键和LCD显示屏,程序逻辑也比较清晰,核心函数是Game_play(),其首先随机产生食物和障碍物的坐标,然后一直检测按键,根据按键改变蛇的方向,同时检测蛇身坐标是否与墙壁或者障碍物重合以检测是否撞击,检测蛇头坐标是否与
5
Life-1
中国地质大学(北京)2013年本科实习报告
食物坐标重合以检测是否吃到食物,吃到食物时,蛇身增长,得分+1。在基本的贪吃蛇游戏的基础上,我添加了自己的创新,这部分在特色与创新部分说明。
贪吃蛇小游戏完整程序框图如图3-4所示,游戏效果展示如图3-5和图3-6所示。
图3-4
图3-5 图3-6 3.3 乒乓球游戏机
P89V51RD2单片机含有可编程计数器阵列(PCA)模块,PCA含有一个特殊的16位定时器,有5个16位的捕获/比较模块与之相连。每个模块可编程工作在4 种模式下:上升/下降沿捕获、软件定时器、高速输出或脉宽调节器。
PCA的每个模块都与P1口相连。模块0连接到P1.3(CEX0),模块1 连接到P1.4(CEX1),依此类推。寄存器CH和CL的内容是正在自由递增计数的16 位PCA定时器的当前值。PCA定时器是5个模块的公共时间基准,可通过编程工作在:1/6振荡频率、1/2振荡频率、定时器0溢出或ECI 脚的输入(P1.2)。定时器的计数源由CMOD SFR 的CPS1 和CPS0 位来确定。
所有PCA 模块都可用作PWM 输出。输出频率取决于PCA 定时器的时钟源。由于所有模块共用仅有的PCA定时器,所以它们的输出频率相同。各个模块的输出占空比是独立变化的,与使用的捕获寄存器CCAPnL有关。当PCA CL SFR 的值小于CCAPnLSFR时,输出为低,当PCA CL SFR 的值等于或大于CCAPnL时,输出为高。当CL的值由FF变为00溢出时,CCAPnH 的内容装载到CCAPnL中,这样就可实现无干扰地更新PWM。要使能PWM模式,模块CCAPMn 寄存器的PWM 和ECOM
6
中国地质大学(北京)2013年本科实习报告
位必须置位,如图3-7所示。
图3-7
编程实现PWM输出时,采用T0定时中断,每次进入中断服务函数,使索引i加1(或减1),并将i索引的正弦码表(正半周期)的值赋给P1_4的CCAP1H寄存器,同时将i的值赋给P1_5的CCAP2H寄存器,这样控制i的值从0增加到255,然后再减小到0,这样使得P1_4输出的PWM占空比按照正弦规律变化,P1_5输出的PWM占空比按三角波规律变化,并且正弦波(正半周期)周期为三角波的一半。将两个PWM信号经过低通滤波,得到相应有效值,同时,有效值的大小随着相应PWM波占空比的变化而呈现正弦波或三角波规律变化。调节示波器工作于X/Y模式,将三角波输入给X,正弦波(正半周期)输入给Y,则可观察到一光点似抛物线形式左右跳动。编程检测变量i的值是否为最大或最小,判断球的位置,以建立得分机制,编程控制i的值,使的i在击球按键按下时突变,实现击球动作。最后通过按键检测判断双击,改变寄存器赋值的系数,改变抛物波的值实现双击高抛。
滤波放大电路硬件如图3-8所示,乒乓球游戏效果如图3-9所示。
图3-8 图3-9 3.4 特色与创新
我特色与创新部分是在贪吃蛇小游戏和乒乓球游戏机的基础上完成的,完善了两个小游戏并有所扩展,增强了交互性和娱乐性。贪吃蛇方面,我添加了随机障碍物,设置过关后难度增加的机制,并设置游戏者有三条生命,胜利则一直升级,失败则生命减少。乒乓球游戏
7
中国地质大学(北京)2013年本科实习报告
机方面,在开始游戏之前加入了游戏难度选择和发球选择,加入了模拟扣球、蜂鸣器和LEDS提示、每局得分显示、大比分统计显示、11分制以及胜利音乐,最后为这两个小游戏设计了比较完善的人机交互界面。
3.5 LabVIEW上位机
LabVIEW拥有强大的显示功能,在数据采集系统中,可用来显示采集到的数据,有利于后续数据的处理,本系统LabVIEW上位机的设计实现了显示AD采集波形的功能,并可通过上位机,更改采样率,以及实现对单片机LEDS、数码管和LCD显示的控制。
LabVIEW上位机界面如图3-10所示。
图3-10
4 问题与解决方案
, LM324无封装
, 问题:绘制原理图时,LM324没有对应封装,编译无法通过;
, 解决:在封装管理器里,添加LM324的封装;
, 心得:深入理解了原件库和PCB库的作用和关联;
, PCB手动布线
, 问题:第一次手动布线时,到最后有部分线连接十分困难;
, 解决:二次连线,并且从最复杂最稠密的地方开始,分模块,遵循上横下竖;
, 心得:连线时遵循相应规则,无章法会很混乱,先连复杂部分使得后面连线变简单,
过孔减少;
, 数码管、LEDS、LCD同时工作
, 问题:在综合模块,数码管、LEDS、LCD共用P0口而无法同时工作;
, 解决:以LCD工作为主,分时复用,P3_6控制锁存LEDS,P1&=0XF0控制数码管显示;
, 心得:解决好资源共用问题,需要对硬件和电路原理理解到一定程度; , 贪吃蛇重复游戏
, 问题:贪吃蛇游戏无法重复游戏,复位可重复游戏;
, 解决:添加按键控制,在main函数while(1)里,检测按键控制游戏重新开始;
, 心得:要学会吸收别人编写好的代码,抓住其编程逻辑最关键; , PWM输出截止失真
, 问题:输出的PWM信号,经低通滤波之后,接入运放发现三角波截止失真;
8
中国地质大学(北京)2013年本科实习报告
, 解决:减小赋给高位寄存器的值,以减小PWM占空比变化范围;
, 心得:学习电路知识,不仅要知其然,还要知其所以然;
, LabVIEW数据处理
, 问题:AD变换之后的数据发送到上位机,用波形图表无法显示;
, 解决:对接收到的有符号数据进行相应处理,变换为无符号格式;
, 心得:接口数据的数据类型直接影响通讯,需要格外注意;
5 心得体会与建议
5.1 心得体会
时光恍如飞逝,转眼间我的大学时光已经所剩无几,初入熔炉之时,我们是一块块的钢铁,如今,经过三年的熔铸,我们已初具雏形。大学,注重更多的是专业知识的学习以及专业能力的提高,本次实习,融汇贯通了很多门以前学习过的理论课程,于自身实践中,大大加深了我对所学理论知识的理解,提高了我的动手实践能力,并在很大程度上,让我更全面系统地认识到测控专业的内涵。
参考文献
【1】 张俊谟(单片机中级教程(第二版)(北京航空航天大学出版社,2006. 【2】 谭浩强(C语言程序设计. 清华大学出版社,2005.
【3】 CUGB51单片机实验板应用手册V1.1精简版本.pdf
【4】 综合电子设计实验指导书-单片机部分. 东南大学电子工程与科学学院.
9