单片机教学实验箱的开发与研究_第1页
单片机教学实验箱的开发与研究_第2页
单片机教学实验箱的开发与研究_第3页
单片机教学实验箱的开发与研究_第4页
单片机教学实验箱的开发与研究_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、. . . . 单片机教学实验箱的开发与研究应用物理0802 牛丽婷 指导老师 王学摘要:在本文中,这个仿真实验箱的设计是为了方便8051单片机的学习,LED灯的仿真示例是AT89C51的一个很基础的应用,大家通过这个实验可以了解Keil Vision编程软件和Proteus 7 Professional仿真软件的使用。这里包含了流水灯,用指拨开关设置音调,音乐播放,秒表和LCD汉子显示以与点阵的滚动显示,电子密码锁等很多有趣的实验,可以增添初学者对单片机的兴趣。关键词:单片机,仿真, AT89C51,实验箱Abstract: In this paper, functional based s

2、imulator has been designed to facilitate the study of the 8051 microcontroller, The simulation example of LED lamp is a basing application about AT89C51. everyone have some knowledge about the use of Keil Vision programming software and Proteus 7 Professional simulation software. This includes water

3、 lights,the switch setting tone, music player, a stopwatch and LCD Chinese characters display and dot matrix rolling display, electronic password lock and many other interesting experiments, can be added to the interest of microcontroller beginners.Keywords: Microprocessor,Simulation,AT89C51,Experim

4、ental box前言AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器,有乘(MUL)、除(DIV)、减(SUBB)、比较(PUSH)、16位数据指针、布尔代数运算等指令,以与串行通信能力和5个中断源,有128个RAM单元与4K的ROM、16位定时计数器、4个8位并行输入口5。汇编语言 (Assembly Language)是面向机器的程序设计语言.是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言,比机器语言易于读写、调试和修改11。仿真实验箱包括流水灯、音乐播放、秒表、LCD显示、LED滚动显示、电子密码锁等应用。1 实例介绍

5、1.1 流水灯1.1.1 LED灯的仿真示例实验要求能对Keil软件和Proteus软件有初步的认识和了解,学会使用Keil软件进行简单的程序编写和调试、,学会使用Proteus软件进行简单的实验仿真。单片机仿真实验箱要用到Keil软件和Proteus软件。下面介绍仿真实验的基本步骤11。图1 启动 Keil Vision后的界面(1)建立源文件和工程打开Keil软件,出现如图1所示的界面。单击FileNew,开启一个新的源程序编辑窗口,将下面的源程序输入其中。CLR P1.0HERE:SJMP HEREEND输入完毕后,单击FileSave,给该文件取名保存。一般汇编程序以“.asm”或“.

6、A51”为扩展名,如图2所示。 图2 源程序的保存在项目开发中,除源程序外,还需要选择CPU,确定编译/汇编、的参数,制定调试的方法等。为管理和使用方便,Keil使用工程将所需设置的参数和文件都加在一个工程中,只对工程进行编译和等操作。建立工程的步骤如下:单击ProjectNew Project,出现创建新工程的对话框,如图3所示。要求起一个工程名并保存,一般应把工程和源文件保存在同一个文件夹中。进入下一步,选择目标CPU,如图4所示,这里选择Atmel公司的89C51为例,单击“确定”按钮可返回主界面。图3 新工程的建立工程建好后,会出现如图5所示的对话框,询问是否要将80C51的标准启动代

7、码源程序复制到工程所在文件夹,并将这一源程序文件加入到工程中。使用C语言编程且要修改启动代码时应选“是”,使用汇编语言则应选择“否”。(2)将源程序加入到工程中单击工程工作空间Target1下方的Source Group1,使其反白显示,然后单击鼠标右键,在出现的快捷菜单中选择Add Files to Group Source Group1,出现如图6所示的对话窗口。Keil默认加入C源文件,因此要加入汇编语言源文件,需单击“文件类型”下拉列表右侧的下三角按钮,选“Asm Source file(*.s*;*.src;*.a*)”项,才能将文件夹下的*.asm文件显示出来。将这个文件加入到工程

8、中。如果不再需要其他文件,单击Close按钮关闭这个对话框。图4 为工程选择目标CPU 图5询问是否需要将8051的标准启动代码源程序复制到工程所在文件夹 图6 加入文件对话框 关闭对话框后回到主界面,刚加入的文件名出现在工程管理器的Source Group 1下一级。工程建好后,还要对工程做出进一步的设置,以满足每个工程个性化的要求。如图7,单击Output标签进入输出设置选项卡,一般设置都取默认值。如图8,要选中Greate HEX file。设置完毕后单击“确定”返回主界面,工程文件建立、设置完毕。图7 存储器使用等状况的设置图8 对输出进行控制设置好工程后,即可进行编译、。编译过程中的

9、信息将出现在输出窗口的Build页。如果源程序中有语法错误,则会出现错误报告。源程序每修改一次都要再次编译,最终得到如图9所示图9 编译、后得到正确的结果的结果,提示生成了HEX格式的文件,在此过程中还会生成一些其他文件用于Keil的仿真与调试。单击桌面“开始所有程序Proteus 7 Professional”打开Proteus软件。如图10所示,单击左侧的器件选择按钮,将出现如图11所示的Pick Device对话框,其中左侧的Category列表框中为器件的分类。器件选择按钮 图10 单击器件选择按钮单击其中的Microprocess ICs,可在Sub-category列表框中找到80

10、51 Family,单击后,在中间的列表框中就出现了所有可用的8051系列CPU,找到AT89C51芯片,单击该芯片名,在对话框的右侧分别显示该元件的电路原理图和封装图。选中芯片后单击“OK”按钮,或双击AT89C51,回到主界面,可以看到列表框中多出了AT89C51芯片,用同样的方法选中RESPACK-8和LED-BIBY。在DEVICES列表中单击元件名,然后将鼠标移动到绘图区,鼠标形状变为笔状,在任意位置单击鼠标,则该元件出现在这一位置,并且自动命名。AT89C51元件被自动命名为U1。LED-BIBY即LED灯被命名为D1。单击元件,使其加亮显示,然后单击鼠标右键,可以变换元件的位置,

11、使其合理放置。图11 选择所需要的器件单击左侧工具栏中的第八个按钮,切换到TERMINALS(终端模式),如图12所示。单击POWER即可既可增加一个电源端,双击该电源端,即出现Edit Terminal Label对话框。单击String后的下拉箭头,选中其中的VCC项即可。在绘图区加入电源,用线连接好。 图12 终端模式单击U1以选中AT89C51芯片,再次单击该芯片,或者双击U1即出现如图13所示的Edit Component对话框。 图13 编辑元件对话框这个对话框中需要设置Program File,即选择该芯片的运行程序。单击Program File后面的类似文件夹形状的按钮,找到先

12、前生成的led灯.hex文件,选好后,还可以设置Clock Frequency,其默认值为12MHz,可设成自己需要的频率,选好程序文件后,单击程序窗口左下角的“运行”按钮,即可看见LED灯被点亮,如图14所示。 图14 程序运行结果1.1.2 流水灯返回开始取数0FEH加入A中将数送入P1,A中的内容左移一次调用延时子程序流水灯是一个大家常见的小玩具,在这个实验中将八个灯围成圆形,当灯以不同的方式点亮时,可以变出各种花样,通过这个实验可以了解单片机部的结构与I/O口的作用。流水灯的流程图如图15所示。图15流水灯的流程图按照上文步骤操作后,运行可以看到灯按不同的方式点亮,效果如图16所示。图

13、16 流水灯运行的效果图1.2 音乐播放1.2.1 用指拨开关设置音调随着社会的发展,音乐逐渐成了我们生活中很重要的一部分,电子琴是现代电子科技与音乐结合的产物,这里用AT89C51单片机为核心控制元件,在主控模块上设有7个按键和扬声器,用来设置音调,介绍了电子琴的基本原理。音名与频率的关系11如表1所示。表1 音名与频率的关系音名C4D4E4F4G4A4B4频率/Hz262294330349392440494实验所用的系统晶振为12MHz,由产生方波的定时时间与延时常数的对应关系,得音名与设置的R7的值11如表2所示。其中指拨开关接在P2口,扬声器接P1.0引脚。用指拨开关设置音调的流程图如

14、图17所示表2 音名与设置的R7的值 音名设置C4D4E4F4G4A4B4时间/s3817340130302865255122732024常数/次954850757716637568506R7值188170151143127113101YN开始判断P2接口是否为低电平?把立即数送入R7中P1.0接高电平延时图17 用指拨开关设置音调的流程图按照上文步骤操作运行后,用鼠标单击指拨开关,将各位分别至于ON的位置,可以听到扬声器的声音发生了变化。运行时示波器显示的方波会随着音调发生变化。图18 用指拨开关设置音调的仿真电路1.2.2 简单音乐盒设计一个特殊的“音乐播放器”,核心器件用AT89C51单

15、片机,利用定时器产生 “Do”、“Re”、“Me”等音阶在的各种频率声音。将各个音阶连接在一起,便可组成一支曲子或是演奏一段旋律。这里以音乐“千年缘”作为示例。简单音乐盒的流程图如图19所示。开始设定定时器工作模式中断允许音符、节拍表格地址送入DPTR调用T0中断子程序调用T1中断子程序结束图19 简单音乐盒的流程图本例的控制信号为P3.5引脚,电路如图20所示。按照上文所示步骤操作,运行后可以实现音乐播放。图20 播放音乐“千年缘”的仿真电路图1.3 点阵滚动显示LED点阵显示器,以发光二极管为像素,16×16的点阵共有256个发光二极管,显然单片机没有这么多端口,如果我们采用锁存

16、器来扩展端口,按8位的锁存器来计算,16×16的点阵需要256/8=32个锁存器。因此在实际应用中的显示屏几乎都不采用这种设计,而采用另一种称为动态扫描的显示方法,即逐行轮流点亮。16×16 LED点阵其实就是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点阵为例,把所有同

17、一行的发光管的阴极连在一起,把所有同一列的发光管的阳极连在一起(共阴的接法),先送出对应第1列发光管亮灭的数据并锁存,然后选通第1列使其燃亮一定的时间,然后熄灭;再送出第2列的数据并锁存,然后选通第2列使其燃亮一样的时间,然后熄灭;.第16列之后,又重新燃亮第1列,反复轮回。当轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。图21 8×8点阵LED外观与引脚图图22 8×8点阵LED等效电路LED点阵显示模块进行的方法有两种:(1)水平方向扫描:用一个P口输出列码决定哪一列能亮,用另一个P口输出行码,决定该列上哪个LED亮。能亮的列从

18、左到右扫描完16列即显示出一帧完整的图像。图23“北”字的显示点阵(2)竖直方向扫描:用一个P口输出决定哪一行能亮,另一个P口输出列码决定该行上哪些LED灯亮。能亮的行从上向下扫描完16行即显示一帧完整的图像。YN开始初始化调用显示程序调整数据指针显示完?汉字的显示一般采用图形的方式,事先提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字分左右两半,各占16B,左边为1、3、 5右边为2、4、6根据在LCD上开始显示的行列号与每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一个字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节直到32B显示完就可以LCD上得

19、到一个完整汉字。32个字节为“北”的显示点阵如图23所示。 图24 主程序流程图这里要求设计一个16×16点阵LED汉字显示屏,显示屏各点亮度均匀、充足,显示的文字应稳定、清晰无串扰。主程序流程图如图24所示。 图25 点阵滚动显示效果图按照上文操作,运行后会看见文字“欢迎乘坐市13路公共汽车,现在开往工程大学,请坐稳扶好,注意安全。”的滚动显示。效果如图25所示。1.4 LCD汉字显示在日常生活中,液晶显示模块已作为很多电子产品的通用器件,如在计算器、万用表等很多家用电子产品中都可以看到,这里以汉字显示为例介绍LCD液晶显示的基本原理。液晶显示汉字原理见1.4。AMPIRE128&

20、#215;64管脚共18个。CS1为左半屏片选端,CS2为右半屏片选端;VCC接电源,GND接地,连接滑动变阻器的控制端,RS为数据指令选择信号端,H时输入数据,L时输入指令,R/W读写选择信号端,H时为读选择信号,L时为写选择信号,E为LCD使能端,DB0DB7为数据传输端口。RST为复位端。Vout和V0类似,都是液晶显示驱动电压端。其引脚图如图26所示。主程序流程图如图27所示开始LCD初始化写LCD指令写入显示坐标的指令写入点阵数据结束图26 AMPIRE128×64的引脚图图27 LCD汉字显示主程序流程图按照上文操作后运行可以看见LCD显示屏上依次出现“老师”四个字。仿真效果如图28所示。图28 LCD汉字显示效果图1.5 演示实验1. 秒表本实验用单片机和数码管组成数字电子秒表。电路主要有控制器AT89C51,计时与显示电路和回零、启动和停表电路等。秒表的流程图如图29所示。开始给存储地址赋值调用定时中断子程序调用时间调整子程序调用显示子程序结束按上文所示步骤操作,运行后可以实现时时间的调整、暂停和复位等操作。仿真效果如图30所示。图29秒表的流程图图30 秒表的仿真效果2.万年历现在所使用的万

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论