大学生毕业论文单片机实验.docx

上传人:b****5 文档编号:7374361 上传时间:2023-01-23 格式:DOCX 页数:15 大小:654.20KB
下载 相关 举报
大学生毕业论文单片机实验.docx_第1页
第1页 / 共15页
大学生毕业论文单片机实验.docx_第2页
第2页 / 共15页
大学生毕业论文单片机实验.docx_第3页
第3页 / 共15页
大学生毕业论文单片机实验.docx_第4页
第4页 / 共15页
大学生毕业论文单片机实验.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

大学生毕业论文单片机实验.docx

《大学生毕业论文单片机实验.docx》由会员分享,可在线阅读,更多相关《大学生毕业论文单片机实验.docx(15页珍藏版)》请在冰豆网上搜索。

大学生毕业论文单片机实验.docx

大学生毕业论文单片机实验

(此文档为word格式,下载后您可任意编辑修改!

单片机教学实验箱的开发与研究

摘要:

在本文中,这个仿真实验箱的设计是为了方便8051单片机的学习,LED灯的仿真示例是AT89C51的一个很基础的应用,大家通过这个实验可以了解KeilμVision编程软件和Proteus7Professional仿真软件的使用。

这里包含了流水灯,用指拨开关设置音调,音乐播放,秒表和LCD汉子显示以及点阵的滚动显示,电子密码锁等很多有趣的实验,可以增添初学者对单片机的兴趣。

关键词:

单片机,仿真,AT89C51,实验箱

Abstract:

Inthispaper,functionalbasedsimulatordesignedtofacilitatethestudyofthe8051microcontroller,ThesimulationexampleofLEDlampisabasingapplicationaboutAT89C51.everyoneprogrammingsoftwareandProteus7Professionalsimulationsoftware.Thisincludeswaterlights,theswitchsettingtone,musicplayer,astopwatchandLCDChinesecharactersdisplayanddotmatrixrollingdisplay,electronicpasswordlockandmanyotherinterestingexperiments,canbeaddedtotheinterestofmicrocontrollerbeginners.

Keywords:

Microprocessor,Simulation,AT89C51,Experimentalbox

前言

AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS8位微处理器,有乘(MUL)、除(DIV)、减(SUBB)、比较(PUSH)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源,内有128个RAM单元及4K的ROM、16位定时计数器、4个8位并行输入口[5]。

汇编语言(AssemblyLanguage)是面向机器的程序设计语言.是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言,比机器语言易于读写、调试和修改[11]。

仿真实验箱包括流水灯、音乐播放、秒表、LCD显示、LED滚动显示、电子密码锁等应用。

1实例介绍

1.1流水灯

1.1.1LED灯的仿真示例

实验要求能对Keil软件和Proteus软件有初步的认识和了解,学会使用Keil软件进行简单的程序编写和调试、链接,学会使用Proteus软件进行简单的实验仿真。

单片机仿真实验箱要用到Keil软件和Proteus软件。

下面介绍仿真实验的基本步骤[11]。

图1启动KeilμVision后的界面

(1)建立源文件和工程

打开Keil软件,出现如图1所示的界面。

单击File→New,开启一个新的源程序编辑窗口,将下面的源程序输入其中。

CLRP1.0

HERE:

SJMPHERE

END

输入完毕后,单击File→Save,给该文件取名保存。

一般汇编程序以“.asm”或“.A51”为扩展名,如图2所示。

图2源程序的保存

在项目开发中,除源程序外,还需要选择CPU,确定编译汇编、链接的参数,制定调试的方法等。

为管理和使用方便,Keil使用工程将所需设置的参数和文件都加在一个工程中,只对工程进行编译和链接等操作。

建立工程的步骤如下:

单击Project→NewProject,出现创建新工程的对话框,如图3所示。

要求起一个工程名并保存,一般应把工程和源文件保存在同一个文件夹中。

进入下一步,选择目标CPU,如图4所示,这里选择Atmel公司的89C51为例,单击“确定”按钮可返回主界面。

图3新工程的建立

工程建好后,会出现如图5所示的对话框,询问是否要将80C51的标准启动代码源程序复制到工程所在文件夹,并将这一源程序文件加入到工程中。

使用C语言编程且要修改启动代码时应选“是”,使用汇编语言则应选择“否”。

(2)将源程序加入到工程中

单击工程工作空间Target1下方的SourceGroup1,使其反白显示,然后单击鼠标右键,在出现的快捷菜单中选择AddFilestoGroup‘SourceGroup1’,出现如图6所示的对话窗口。

Keil默认加入C源文件,因此要加入汇编语言源文件,需单击“文件类型”下拉列表右侧的下三角按钮,选“AsmSourcefile(*.s*;*.src;*.a*)”项,才能将文件夹下的*.asm文件显示出来。

将这个文件加入到工程中。

如果不再需要其他文件,单击Close按钮关闭这个对话框。

图4为工程选择目标CPU

图5询问是否需要将8051的标准启动代码源程序复制到工程所在文件夹

图6加入文件对话框

关闭对话框后回到主界面,刚加入的文件名出现在工程管理器的SourceGroup1下一级。

工程建好后,还要对工程做出进一步的设置,以满足每个工程个性化的要求。

如图7,单击Output标签进入输出设置选项卡,一般设置都取默认值。

如图8,要选中GreateHEXfile。

设置完毕后单击“确定”返回主界面,工程文件建立、设置完毕。

图7存储器使用等状况的设置

图8对输出进行控制

设置好工程后,即可进行编译、链接。

编译过程中的信息将出现在输出窗口的Build页。

如果源程序中有语法错误,则会出现错误报告。

源程序每修改一次都要再次编译,最终得到如图9所示

图9编译、链接后得到正确的结果

的结果,提示生成了HEX格式的文件,在此过程中还会生成一些其他文件用于Keil的仿真与调试。

单击桌面“开始→所有程序→Proteus7Professional”打开Proteus软件。

如图10所示,单击左侧的器件选择按钮,将出现如图11所示的PickDevice对话框,其中左侧的Category列表框中为器件的分类。

图10单击器件选择按钮

单击其中的MicroprocessICs,可在Sub-category列表框中找到8051Family,单击后,在中间的列表框中就出现了所有可用的8051系列CPU,找到AT89C51芯片,单击该芯片名,在对话框的右侧分别显示该元件的电路原理图和封装图。

选中芯片后单击“OK”按钮,或双击AT89C51,回到主界面,可以看到列表框中多出了AT89C51芯片,用同样的方法选中RESPACK-8和LED-BIBY。

在DEVICES列表中单击元件名,然后将鼠标移动到绘图区,鼠标形状变为笔状,在任意位置单击鼠标,则该元件出现在这一位置,并且自动命名。

AT89C51元件被自动命名为U1。

LED-BIBY即LED灯被命名为D1。

单击元件,使其加亮显示,然后单击鼠标右键,可以变换元件的位置,使其合理放置。

图11选择所需要的器件

单击左侧工具栏中的第八个按钮,切换到TERMINALS(终端模式),如图12所示。

单击POWER即可既可增加一个电源端,双击该电源端,即出现EditTerminalLabel对话框。

单击String后的下拉箭头,选中其中的VCC项即可。

在绘图区加入电源,用线连接好。

图12终端模式

单击U1以选中AT89C51芯片,再次单击该芯片,或者双击U1即出现如图13所示的EditComponent对话框。

图13编辑元件对话框

这个对话框中需要设置ProgramFile,即选择该芯片的运行程序。

单击ProgramFile后面的类似文件夹形状的按钮,找到先前生成的led灯.hex文件,选好后,还可以设置ClockFrequency,其默认值为12MHz,可设成自己需要的频率,选好程序文件后,单击程序窗口左下角的“运行”按钮,即可看见LED灯被点亮,如图14所示。

图14程序运行结果

1.1.2流水灯

流水灯是一个大家常见的小玩具,在这个实验中将八个灯围成圆形,当灯以不同的方式点亮时,可以变出各种花样,通过这个实验可以了解单片机内部的结构及IO口的作用。

流水灯的流程图如图15所示。

图15流水灯的流程图

按照上文步骤操作后,运行可以看到灯按不同的方式点亮,效果如图16所示。

图16流水灯运行的效果图

1.2音乐播放

1.2.1用指拨开关设置音调

随着社会的发展,音乐逐渐成了我们生活中很重要的一部分,电子琴是现代电子科技与音乐结合的产物,这里用AT89C51单片机为核心控制元件,在主控模块上设有7个按键和扬声器,用来设置音调,介绍了电子琴的基本原理。

音名与频率的关系[11]如表1所示。

表1音名与频率的关系

音名

C4

D4

E4

F4

G4

A4

B4

频率Hz

262

294

330

349

392

440

494

实验所用的系统晶振为12MHz,由产生方波的定时时间与延时常数的对应关系,得音名与设置的R7的值[11]如表2所示。

其中指拨开关接在P2口,扬声器接P1.0引脚。

用指拨开关设置音调的流程图如图17所示

表2音名与设置的R7的值

音名

设置

C4

D4

E4

F4

G4

A4

B4

时间μs

3817

3401

3030

2865

2551

2273

2024

常数次

954

850

757

716

637

568

506

R7值

188

170

151

143

127

113

101

图17用指拨开关设置音调的流程图

按照上文步骤操作运行后,用鼠标单击指拨开关,将各位分别至于ON的位置,可以听到扬声器的声音发生了变化。

运行时示波器显示的方波会随着音调发生变化。

图18用指拨开关设置音调的仿真电路

1.2.2简单音乐盒

设计一个特殊的“音乐播放器”,核心器件用AT89C51单片机,利用定时器产生“Do”、“Re”、“Me”等音阶在内的各种频率声音。

将各个音阶连接在一起,便可组成一支曲子或是演奏一段旋律。

这里以音乐“千年缘”作为示例。

简单音乐盒的流程图如图19所示。

图19简单音乐盒的流程图

本例的控制信号为P3.5引脚,电路如图20所示。

按照上文所示步骤操作,运行后可以实现音乐播放。

图20播放音乐“千年缘”的仿真电路图

1.3点阵滚动显示

LED点阵显示器,以发光二极管为像素,16×16的点阵共有256个发光二极管,显然单片机没有这么多端口,如果我们采用锁存器来扩展端口,按8位的锁存器来计算,16×16的点阵需要2568=32个锁存器。

因此在实际应用中的显示屏几乎都不采用这种设计,而采用另一种称为动态扫描的显示方法,即逐行轮流点亮。

16×16LED点阵其实就是4块8×8点阵LED级联而成的,图21为8×8点阵LED外观及引脚图,其等效电路如图22所示,只要其对应的X、Y轴顺向偏压,即可使LED发亮。

若想使左上角LED点亮,则令Y0=1,X0=0。

应用时限流电阻可放在X轴或Y轴。

而16×16就是在8×8原理的基础上将四块8×8级联而成。

以16×16点阵为例,把所有同一行的发光管的阴极连在一起,把所有同一列的发光管的阳极连在一起(共阴的接法),先送出对应第1列发光管亮灭的数据并锁存,然后选通第1列使其燃亮一定的时间,然后熄灭;再送出第2列的数据并锁存,然后选通第2列使其燃亮相同的时间,然后熄灭;….第16列之后,又重新燃亮第1列,反复轮回。

当轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。

图218×8点阵LED外观及引脚图

图228×8点阵LED等效电路

LED点阵显示模块进行的方法有两种:

(1)水平方向扫描:

用一个P口输出列码决定哪一列能亮,用另一个P口输出行码,决定该列上哪个LED亮。

能亮的列从左到右扫描完16列即显示出一帧完整的图像。

图23“北”字的显示点阵

(2)竖直方向扫描:

用一个P口输出决定哪一行能亮,另一个P口输出列码决定该行上哪些LED灯亮。

能亮的行从上向下扫描完16行即显示一帧完整的图像。

汉字的显示一般采用图形的方式,事先提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字分左右两半,各占16B,左边为1、3、5……右边为2、4、6……根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一个字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节……直到32B显示完就可以LCD上得到一个完整汉字。

32个字节为“北”的显示点阵如图23所示。

图24主程序流程图

这里要求设计一个16×16点阵LED汉字显示屏,显示屏各点亮度均匀、充足,显示的文字应稳定、清晰无串扰。

主程序流程图如图24所示。

图25点阵滚动显示效果图

按照上文操作,运行后会看见文字“欢迎乘坐邯郸市13路公共汽车,现在开往河北工程大学,请坐稳扶好,注意安全。

”的滚动显示。

效果如图25所示。

1.4LCD汉字显示

在日常生活中,液晶显示模块已作为很多电子产品的通用器件,如在计算器、万用表等很多家用电子产品中都可以看到,这里以汉字显示为例介绍LCD液晶显示的基本原理。

液晶显示汉字原理见1.4。

AMPIRE128×64管脚共18个。

CS1为左半屏片选端,CS2为右半屏片选端;VCC接电源,GND接地,连接滑动变阻器的控制端,RS为数据指令选择信号端,H时输入数据,L时输入指令,RW读写选择信号端,H时为读选择信号,L时为写选择信号,E为LCD使能端,DB0~DB7为数据传输端口。

RST为复位端。

-Vout和V0类似,都是液晶显示驱动电压端。

其引脚图如图26所示。

主程序流程图如图27所示

图26AMPIRE128×64的引脚图

图27LCD汉字显示主程序流程图

按照上文操作后运行可以看见LCD显示屏上依次出现“谢谢老师”四个字。

仿真效果如图28所示。

图28LCD汉字显示效果图

1.5演示实验

1.秒表

本实验用单片机和数码管组成数字电子秒表。

电路主要有控制器AT89C51,计时与显示电路和回零、启动和停表电路等。

秒表的流程图如图29所示。

按上文所示步骤操作,运行后可以实现时时间的调整、暂停和复位等操作。

仿真效果如图30所示。

图29秒表的流程图

图30秒表的仿真效果

2.万年历

现在所使用的万年历,记录一定时间范围内的具体阳历或阴历的日期的年历,方便有需要的人查询使用,实验电路主要有主控制器单片机、显示电路、温度检测电路和闹钟设置电路,如图31所示。

运行后会显示日期、时间、温度、并且可以设置闹钟。

图31万年历的仿真电路

3.电子密码锁

电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁电子产品。

实验以AT89C51芯片为核心,通过编程来实现的。

电子密码锁的仿真电路如图32所示。

主要有主控制器AT89C51、密码输入电路、报警电路和液晶显示电路

图32电子密码锁的仿真电路图

2结论

本文对软件使用做了基本介绍,又配合了很多具体的实例分析,介绍了仿真的单片机教学实验箱达到的预期效果。

由于自身学识水平有限,设计中仍有缺陷,需要在以后的学习中对以下方面做出改进。

1.秒表的计时不够精确,LCD显示的汉字歪歪扭扭,达不到更好的效果,点阵滚动显示的汉字不够清楚。

2.实验只是现实生活中所有运用的基础理论,距离设计的真正实现还有一定的差距。

参考文献

[1]李文超,浦南江,刘洋,李小虎,李晓磊.技术纵横[J],2011:

72-90.

[2]李全利.单片机原理及接口技术[M].2版.北京:

高等教育出版社,2009.

[3]陈章龙.国内外单片机的现状及未来发展[J].维普资讯,1990,6:

2-3.

[4]张志良.单片机原理与控制技术[M];北京,机械工业出版社,2008

[5]于海生.微型计算机控制技术[M];北京,清华大学出版社,1999.3.

[6]何利民.单片机应用系统设计[M];北京,北京航天航空大学出版社,1990.

[7]孙育才.MCS-51系列单片机及其应用[M];东南大学出版社.

[8]周坚.单片机应用与接口技术[M];机械工业出版社

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

当前位置:首页 > 医药卫生 > 临床医学

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

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