毕业设计(论文)-单片机实验平台搭建与仿真.doc_第1页
毕业设计(论文)-单片机实验平台搭建与仿真.doc_第2页
毕业设计(论文)-单片机实验平台搭建与仿真.doc_第3页
毕业设计(论文)-单片机实验平台搭建与仿真.doc_第4页
毕业设计(论文)-单片机实验平台搭建与仿真.doc_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(论文) 题 目 单片机实验平台搭建与仿真 学 院 名 称 航空制造工程学院 专 业 名 称 机械设计制造及其自动化班 级 学 号 学 生 姓 名 指 导 教 师 二O一五 年 六 月 单片机实验平台搭建与仿真全套设计加扣3012250582 摘 要:单片机是一种采用了超大规模的集成技术的电路芯片,芯片上有具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能10。在我们学习单片机时,需要进行大量的单片机实验,在实验中我们主要使用的是仿真机和单片机,这意味着常规单片机实验室需要配置大量设备,导致经费的投入会相当大,部件损耗会相当严重,要做到学习的人人手配置一部单片机也不太可能。而且实验设备一般局限性都较大,一个型号的实验板只能进行有限的实验项目,特别完成一些不太方便进行的实验(如步进电机实验等)时,还存在一定危险性。为了解决这些问题,便需要用到Proteus仿真软件。Proteus仿真软件可以仿真单片机及其外围电路组成的系统的仿真,如电源、锁存器、数码管、按键、电机、各类液晶屏等4。这样便可以节省很多资源,而且实验方便,需要进行不同的实验时,只需在Proteus中调用不同的芯片,连接好外围电路,建立好虚拟系统,就能进行实验仿真。同时,Proteus还支持第三方的软件编译和调试环境,如Keil C51 uVision2,通过这些软件可以进行编程程序进行单片机仿真5。使用Keil软件可以很方便的进行程序的编程,在编程完成以后,可以通过软件内的功能对程序进行检查和编译,若程序存在错误,通过它能方便快捷的找出错误所在。在程序编译完成以后,在通过Keil软件生成HEX文件,下载进入Proteus仿真平台中,便可以通过仿真平台中设计好的单片机及相关外围电路进行仿真。单片机虚拟仿真,不仅绿色环保,还可以达到节省资源、提升学习效率的目的。 关键词:单片机,虚拟技术,仿真,Proteus,Keil指导老师签名:Microcontrollers experiment platform building and simulationAbstract:Microcontrollers is a kind of very large scale integration technology adopted circuit chip, chip has the central processor CPU, RAM, RAM, read-only memory ROM, a variety of I/O mouth and interrupt system, timer/counter, and other functions. When we learn how to use microcontroller, we will finishe a large number of microcomputer experiment.In the experiment,we mainly used simulator and microcomputer, it means that the conventional microcomputer lab need to configure a large number of equipment, lead to input can be considerable funds, and loss of parts will be quite serious.It is impossible to make every students have microcontrollers And laboratory equipment general limitations is larger, a model of experimental board only limited experimental projects, special complete some not so convenient to experiment (such as stepper motor experiment, etc.), there is a certain risk. In order to solve these problems, they need to use Proteus simulation software. Proteus simulation software can be composed of single-chip microcomputer and its periphery circuit simulation system simulation, such as power supply, latch, digital tube, buttons, motors and all kinds of LCD screen, etc. This can save a lot of resources, and the experiment is convenient, the need for different experiments, with only need to call a different chip in the Proteus, connect the peripheral circuit, establish good virtual system, can the experimental simulation. At the same time, Proteus also supports third-party software compiling and debugging environment, such as Keil C51 uVision2. Through these software can be programmed for single chip microcomputer simulation program.Using Keil software can be very convenient for application programming.when the programming is complete,the software can check and compile program,if a program errors,using it can conveniently find out problem. After the completion of the program compiledwe can use Keil software generated HEX file, and download the HEX file into the Proteus simulation platform, then we can finish the simulation platform by using the microcomputer simulation and related peripheral circuit.Not only green environmental protection,also can achieve the purpose of saving resources,improve the learning efficiency by using Microcontrollers experiment platform.Keywords: Microcontrollers ,virtual technology,simulation,Proteus,KeilSignature of the adviser: 目 录1 引言11.1 选题背景以及目的11.2 单片机和单片机技术的发展11.3 国内外发展综述11.4 单片机的发展趋势22 总体方案的设计32.1 设计目标32.2 设计内容33 实验电路的设计、其原理和正确性性验证53.1 电源模块53.2 单片机模块53.3 单个LED灯、流水灯63.3.1 模块设计及其原理63.3.2 实验电路模块正确性验证73.4 7段LED(数码管)83.4.1 模块设计及其原理83.4.2 实验电路模块正确性验证93.5 4X4矩阵键盘103.5.1 模块设计及其原理103.5.2 实验电路模块正确性验证123.6 数/模,模/数转换123.6.1 A/D123.6.2 D/A153.7 1602液晶显示屏173.7.1 模块设计及其原理173.7.2 实验电路模块正确性验证193.8 串口通信203.8.1 模块原理和设计203.8.2 实验电路模块正确性验证223.9 步进电机223.9.1 模块原理和设计223.9.2 模块正确性验证244 总 结255 参考文献26致 谢27 南昌航空大学学士学位论文1 引言1.1 选题背景以及目的单片机又称为单片微控制器,它其实就是一块集成芯片,但这个芯片拥有一些特殊的功能,我们还可以理解为它相当于一个微型的计算机,但它功能的实现需要依靠我们自己编程来实现。通过程序来控制各个引脚在不同的时间输出高电平或低电平,进而控制整个系统。但是由于芯片种类多,外围电路繁琐,通过实验板完成各项实验需要各式的部件及其他芯片,这样对我们实验来说是比较麻烦的,要更加简便的,快速的完成实验,这时候便额可以进行单片机平台的模拟与仿真。通过Proteus和Keil对单片机进行仿真,可以极大的提高单片机的编程效率和效果,需要任意一个芯片或是部件都可以很方便的从Proteus中找出,可以很轻松的完成电路的绘制,省去了许多繁琐的步骤,使得我们可以通过单片机仿真器输入和修改程序,观察程序运行结果以及中间状态,同时还能对单片机配套的硬件进行检测,并验证正确性6。1.2 单片机和单片机技术的发展单片机诞生于20世纪70年代末,经历了Microcontrollers、MCU、SoC三大阶段7。(1) Microcontrollers即单片微型计算机(Single Chip Microcomputer)阶段,在这个阶段中,研究人员致力于找出单片形态嵌入式系统的最佳体系结构1。(2) MCU即微控制器(Micro Controller Unit)阶段,在这个阶段中,研究人员不断的扩展满足嵌入式的应用,以及各种被外界发展所需要的外围电路与接口电路8,这些改变成功的挖掘并突出了它的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家2。(3) 单片机是嵌入式系统发展的必经之路,同时也是一条独立的发展道路。寻求应用系统在芯片上的最大化解决便是MCU阶段发展的重要因素;因此,专用单片机的发展自然形成了SoC化趋势。 1.3 国内外发展综述早期的单片机都是8位或4位的。早期的单片机中有部分单片机工艺精良,制作简单,性能可靠,受到广泛的关注,被大家所喜爱,直到到现在,其中的一些型号也还在使用,例如INTEL0830。在之后的研究中,8位单片机的发展也是极其迅速,再后来就出现了16位、32位的单片机。随着发展,专用的Windows系统都能被当代单片机系统直接使用。现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大21。现在单片机厂商还能根据使用者的需求,制作出各式各样的单片机。现在,单片机系统朝微型化发展,在以后,单片机除了需要强大的功能和较低的功耗以外,体积的要求也会越来越严格,微型单片机是国内外发展的共同趋势。同时单片机都具有多种封装形式,其中最受欢迎的便是SMD,因为这种工艺能使得单片机的体积更小,符合了发展的趋势。1.4 单片机的发展趋势现代电子技术的发展对单片机的工艺质量提出了越来越高的要求,也促使单片机的集成技术和控制水平向更高的方向发展。通过更小的光刻技术来提高集成度,达到制作工艺CMOS化,缩小芯片、降低制作成本、减少功耗和降低工作电压。另外,以串口方式为主的外围扩展将成为主流。还有一个明显的走向就是和互联网连接,在这样的趋势下,可靠性和应用水平的要求也会越来越高,8位机将占据主流地位。432 总体方案的设计2.1 设计目标利用以Proteus为搭建平台,搭建基本的单片机虚拟仿真实验平台并以C51为基本开发语言,实现对数码管、流水灯、液晶显示屏的编程操作,并运用Keil对单片机相关仿真模型进行仿真验证,以确保其正确性。原始资料(数据)及设计技术要求:单个LED、流水灯;七段LED;键盘、液晶AD、DA串口通信及其它模块2.2 设计内容本设计(如图2.1)是以单片机89C52为核心,加上晶振、复位电路、输入控制电路、输出显示电路和外围电路部件组成。晶振、复位电路单片机89C52输出显示输入控制外围功能部件图2.1 单片机系统的基本组成其中,晶振和复位电路控制这单片机的机器周期和功能复位。常用的输入控制方法有键盘、矩阵键盘以及串口通信等。通过这些方法将控制指令传送到单片机内,实现控制。输出显示模块一般使用的是LED、液晶屏、电机等,它们由单片机发送的指令来控制。而外围功能部件一般用来执行某些特定功能,如传感器等。通过上述设计内容,制定以下设计流程:对单片机实验平台进行充分的了解。以Proteus为搭建平台,搭建基本的单片机虚拟仿真实验平台,实验平台中主要部件包括单片机89RC52、LED灯、七段LED、4X4矩阵键盘、1602液晶屏、ADC0804、DAC0823等运用C语言,完成对单个LED灯、流水灯、七段LED、4X4矩阵键盘、液晶显示屏、A/D、D/A、步进电机、直流电机的程序编写。运用Keil对所编写的程序进行编译确保程序正确性。运用Keil将编写的程序转换为HEX文件导入虚拟仿真平台中进行仿真。根据设计制出PCB图。3 实验电路的设计、其原理和正确性性验证3.1 电源模块主板上其他部件由电源模块提供+5V的电源,在这里有两种电源输入方式,一种是由电源插座输入交直流电源,要求为直流输入大于7.5V,交流输入大于5V,再通过7805三端稳压器得到5V的直流电源供给系统其他部件工作。第二种是通过USB口获取+5V电源。电路原理如图3.1所示:图3.1 电源模块电路原理图3.2 单片机模块在该虚拟实验平台中,使用的是89RC52单片机。虚拟平台中该单片机如图所示图3.2所示:图3.2 单片机89RC523.3 单个LED灯、流水灯3.3.1 模块设计及其原理这个模块使用的是8个发光二极管,通过排线来控制,能控制单个发光二极管的亮灭,或是达到流水灯效果。控制的方式:当输入的控制信号为低电平的,发光二极管为亮;为高电平时。发光二极管熄灭。电路由图3.3所示:图3.3 LED灯电路图发光二极管具有单向导电性,通过电流一般控制在3mA-20mA之间,通过电流越大,亮度越强,但如果电流过大,二极管会被烧坏,所以在这里给二极管串联了一个电阻来限制通过发光二极管的电流,这个电阻又称为“限流电阻”。在这里,我们还用到了一个74HC573锁存器。单片机可以通过控制锁存器的锁存端来控制锁存器的数据输出。其中,Q0Q7为数据输出端,D0D7为数据输入端,LE为锁存允许端,为三态允许控制端,或是称为输出使能端9。在使用锁存器时要注意,必须将端接低电平,因为若将端接高电平的话,无论LE与D端为何种电平状态,其输出都是阻态,很明显,这种情况下该芯片是不可控的。为了避免这种情况,我们选择将端接地,而下面用到的所有锁存器的端也都是接地的。当LE端为高电平时,Q端数据状态将紧随D端数据状态变化;而当LE端为低电平时,Q端的数据将保持住LE端变化为低电平之前Q端的数据状态。因此我们将锁存器的LE端与单片机的某一个引脚连接,再将锁存器的数据输入端与单片机的某组I/O口连接,通过控制锁存器的锁存端和数据输入端的数据状态来改变锁存器的数据输出端的数据状态11。而在这里使用锁存器的目地是防止在进行A/D实验时,影响到发光二极管。由于发光二极管和A/D芯片的数据输入端都是连接在单片机P1口,当我们做A/D实验时,A/D芯片的数据会发生实时变化,这时若无锁存器,发光二极管的阴极电平也会随着A/D的数据输出变化而变化,这样就会发现发光二极管在无规则闪动。若加入一个锁存器,在做A/D实验时,通过单片机将这个锁存器的锁存端关闭(即置低电平),这时,无论单片机P1数据端口的端口数据如何变化,都不会影响到发光二极管。在需要做发光二极管实验时,将锁存器锁存端置高电平,这时,发光二极管将会跟随单片机P1端口状态变化而改变亮灭。3.3.2 实验电路模块正确性验证要验证其正确性,可通过Keil程序对单片机相关仿真模型进行仿真。这里通过程序使发光二极管以一定规律亮闪,来达到验证目的。这里需要用到while和for语句来实现循环和延时。程序见附录(1):在设计好程序以后,通过Keil生成HEX文件,导入虚拟仿真平台中,若运行成功,则会出现以下现象。第一个程序:第一个发光二极管以间隔2S亮灭闪动。第二个程序:时间间隔1S的流水灯3.4 7段LED(数码管)3.4.1 模块设计及其原理无论是几位数码管,其显示原理都是一样的,都是依靠内部的发光二极管发光来达到显示数字的目的。实验电路图如图3.4所示:图3.4 数码管电路图图3.5 单个数码管引脚图及部分连接图通过上图3.5可以看到,所有数码管的阳极,即a,b,c,d,e,f,g,h这7根LED的引脚全部连接在一起,然后与U3元件74HC572锁存器的数据输出端连接,而锁存器的数据输入端连接单片机的P0口,P0口同时加上了一个上拉电阻。U4的数据输入端与单片机的P0口相连,U4元件的数据输出端的低6位分别连接数码管的选位端,而这两个锁存器的锁存端分别与单片机的P2.6和P2.7口连接。明显,这样我们可以通过单片机对U3,U4的锁存端进行控制来控制锁存器的数据输出;同时通过U3锁存器控制数码管显示的内容,U4锁存器控制哪一位数码管显示。数码管程序流程图如图3.6:开始以此类推送段选数据x送段选数据x打开位选1打开位选1显示延时显示延时关闭位选1关闭位选1消影-复位关闭段选消影-复位关闭段选图3.6 数码管程序流程图3.4.2 实验电路模块正确性验证根据程序流程图,编写数码管程序,程序见附录(3)该程序开头先进行了编码定义。程序设计为:(1)第一个数码管显示1,延迟0.5秒后关闭(2)立即打开第二个数码管,令其显示2,延迟0.5秒后关闭(3)然后打开第三个数码管,以此类推,当最后一个数码管关闭后,回到第一个数码管,继续显示,一直循环下去。实验现象如图3.7所示:图3.7 数码管显示图3.5 4X4矩阵键盘3.5.1 模块设计及其原理键盘本质上就是一组按键。按键的连接方法很简单,如图3.8,右侧的I/0端与单片机的任意I/O连接。图3.8 单个按键连接图而使用键盘,其实就是完成单片机对按键的检测,检测原理如图3.8。这里使用按键的数据输入功能,通过把按键的一端接地,另一端与单片机某I/O口连接,将I/O置高,然后让单片机不断的检测该I/O是否改变为低电平;当按键被按下闭合时,它与地相连,变成低电平。所以当程序检测到所连接I/O口变为低电平时,则说明按键被按下,然后可以进行执行相应指令。4X4矩阵键盘每一行的每个按键的一段连接在一起构成行线,另一端连接在一起构成列线12。这样便有一共4行4列8根线来连接16个按键。将这些线与单片机的8个I/O连接,就可以通过程序来扫描键盘检测按键了。4X4矩阵键盘的原理其实和上述的独立键盘的原理是大致相同的,但是这里有一点需要注意,由于矩阵键盘不同于独立键盘,它并不是一端接地,一端与单片机相连,而是两端都与单片机的I/O口连接,所以在4X4矩阵键盘中,需要我们人为的通过单片机I/O口送出低电平。按键检测原理图如图3.9所示:START寄存器,单片机I/O端口初始化N检测是否有按键按下?Y 延时1sN检测是否有按键按下?Y执行相应代码图3.9 按键检测原理图在检测时,一般有两种方法。一种是先送一行为低电平,其余几列为高电平。然后检测各行是否有低电平,若检测出有低电平,则可确认被按下的是哪一个按键。另一种方法则是先送一列为低电平,其余列为高电平,然后用同上一样的方法即可检测按下为哪个键。虚拟实验电路图如图3.10所示:图3.10 4x4矩阵键盘电路图为了验证电路正确,我们需要每个按键都检测。程序代码见附录(4):3.5.2 实验电路模块正确性验证按照这程序,若没错误,当我们以此按下矩阵键盘的每个按键后,数码管上依次显示0-F。3.6 数/模,模/数转换3.6.1 模/数转换(1)A/D转换工作原理及设计A/D指的是模拟量/数字量转换器。在单片机采集模拟信号时,通常在其前端加上A/D芯片。A/D转换的原理是:先对输入的模拟电压信号采样,完成后进入保持时间,利用这段保存时间把采样的电压量转化为数字量,然后在按照给定的编码形式得出结果,再开始下一次采样13。在虚拟平台中,为了完成这一实验,我们选择了ADC0804芯片。这个A/D转换器逐次比较型A/D转换器。该芯片内具有三态输出数据锁存器,可直接连接到数据总线上。 A引脚名称及作用:VIN(+),VIN(-)-模拟信号输入端,用以接收单极性、双极性和差摸输入信号。DB0-DB7-具有三态特性数字信号输入口。AGND-模拟信号地。DGND-数字信号地。CLK-时间信号输入端。CLKR-内部时钟发生器的外接电阻端,与CLK端配合可由芯片自身产生时钟脉冲,其频率为1/(1.1RC)14。-片选信号输入端,要求低电平;若有效,表明A/D转换器被选中,可启动工作。-写信号输入,低电平启动A/D转换。-读信号输入,低电平输出端有效。-A/D转换结束信号。若为低电平,则表示本次转换已完成。-参考电平输入,决定量化单位。-5V电源输入。虚拟电路图接法如图3.11:图3.11 A/D转换电路图程序流程图如图3.12:开始定义A/D转换端口及变量给出通道地址并锁存,启动A/D转换否完成转换?是读取转换结果数值量程变换结束图3.12 A/D转换程序流程图 ADC0804的片选段CS与锁存器U5的Q7输出端相连。这样可以控制锁存器来达到控制CS的目的。为了防止电流过大而烧坏芯片,我们选择在VIN(+)和电位器之间加一个电阻R12(如图3-9),电阻大小为1015。当把插针ADIN短接以后,电位器的滑动端便与VIN(+)相连,这样便可以通过调节电位器的旋钮控制滑动端的电压,然后使得ADC0804的数字输出端在0x00-0xFF之间变化。而ADC0804所需的脉冲,则由CLKR,CLR,GND之间由电阻、电容组成的RC振荡电路提供,脉冲的频率为1/(1.1RC)。在的两端用两个1的电阻分压,等到2.5V的电压,作为该芯片工作时的内部参考电压。,分别接在单片机的P3.6和P3.7口,数字输出端接在单片机P1口。为了更好的精度和稳定性,我们所有部件的模拟地和数字地分别连接,再将模拟地和数字地仅在一点连接。由于这里读取A/D数据未用中断法,引脚未连接。首先先将置为低电平,然后再把置为低电平,经过时间后,将置为高电平,在这时,A/D转换器启动,经过一段时间时间后,A/D转换完成,并把结果存入数据锁存器中,同时,自动变成低电平,本次转换结束。当一般情况下,我们是需要连续转换和连续读取数据的,这时就没有必要每次都把置低电平在置高电平,只需要在开始时将置为低电平,在要启动转换和读取数据时操作和即可。A/D左边的Re2是用来给A/D输入模拟电压的。将上述程序代码编译、下载到实验模块中后,若程序,模拟电路都正确,则可看到数码管的前三位数码管显示一个十进制数字,当旋动电位器旋钮时,这个数字也会随之变化,变化范围是0-255。当开始运行主程序时,先将U2锁存器的输出口的最高位置为置低电平。这样做是为了将与之相连的ADC0804的片选端选中。在进入到While循环指令之后,先启动A/D转换,其中我们所用到_nop_(),相当于一个机器周期的延时,它包含在头文件intrins.h中。在启动了A/D转换后,读取转换结果前,先立即把结果送给数码管显示,这样可以留一定的时间给A/D转换,这样写程序,把程序编译下载后,我们会在首次显示看到全是0,然后立马又显示了数字,因为在首次显示以后,下面便读取到了A/D转换后的结果,当程序开始循环出现下一次结果时,又会显示上一次的数值,但这并不会影响我们观察实验结果。(2)A/D实验模块正确性验证根据原理,实验电气图,编辑程序进行仿真。当我们把上述程序编译下载进行仿真,如果拧动电位器时,数码管上数字始终不动,但复位一次后,或是重新上电一次以后,数字会正常显示,那么这代表转换时间不足,通过更换C11电容为150F或是增大for(a=10;a0;a-)中a的值,即增加A/D转换时间可以解决这个问题。若操作、程序、电气图都正确,可以观察当拧动Re2时,能看到数码管前3位以十进制的方式动态显示A/D转换后的数字量。3.6.2 数/模转换(1)D/A转换工作原理及设计用二进制代码按数位组合起来表示便是数字量。实现数/模转换,也就是D/A转换的基本思路是:将每一位的代码按照其权的大小转换成相应的模拟量,在将这些模拟量相加,即可得到总模拟量,这个总模拟量与数字量是成正比的16。这里使用的是常见的8位D/A转换器DAC0832,以电流形式输出,可外接运算放大器来转换输出为电压。它的逻辑电平输入和TTL电平兼容。各引脚的定义如下:-片选信号输入端,要求低电平;-输入寄存器的写选通输入端,负脉冲有效,脉冲的宽度应大于500ns。当为0,ILE为1,有效时,DI0-DI7状态被锁存到输入寄存器中,DI0-DI7-数据输入端,TTL电平。-基准电压输入端,电压范围是10V到+10V。-反馈电阻端,芯片内部此端和直接接有一个15的电阻。-电流输出端,当输入全都为1时,电流达到最大。-电流输出端,其值与端电流只和为一个常数。-写选通输入端,负脉冲有效。当XEFR为0并且有效时,输入寄存器的状态被传到DAC寄存器中。ILE-数据锁存允许信号输入端,高电平有效。-电源电压端,电压范围+5-+15。GND-模拟地和数字地。DAC0832芯片数据输入可采用双缓冲、单缓冲和直通三种方式3。这里我们选择直通方式。DAC0832的连接图如图3.13所示:图3.13 DAC0832电路图 当选择这种数据输入方式时,它的片选信号、写信号和传送控制信号的引脚全部接地,ILE引脚接5V。一旦输入数字量,数字量直接进入D/C寄存器,进行D/A转换。若需要让芯片连续转换的话,只用连续改变数字输出端的数字信号就可以了。作为该芯片电流输出端,它与相加值为常数,这个常数大约为330A。而这里可以不使用它,将它接地。关于和的算法公式如下: 为了方便外接运算放大电路,P5即D/A输出接口将D/A的反馈电阻输入端引出。将P5的2,3短路后,直接和发光二极管相连,这样当我们通过程序控制D/A输出电流变化时,可以清楚的,很直观的看到发光二极管的变化。测试程序见附录(6)(2)D/A模块正确性验证下面通过编写程序进行编译下载仿真验证设计的电路和程序的正确性。根据这个程序,可以让发光二极管由灭到亮再由亮到暗,并且在最亮和最暗的时候发出蜂鸣警报声。整个周期5S左右,并且循环变化。3.7 1602液晶显示屏3.7.1 模块设计及其原理1602液晶可以显示两行,每行16个字符,由5V电压驱动,带背光,并且内置了128个字符的ASCII字符集字库,并行接口17。1602型液晶接口说明如下:-电源地。-+5V电源。-液晶显示对比度调整输入端。接正电源时对比度最弱,接地时对比度最高。对比度通过10的电位器来调整。-数据/命令选择端,通过高电平或低电平,来选择使用数据寄存器,还是选择使用指令寄存器。,读/写选择端,高电平时进行读操作,低电平时进行写操作。当和共同为低电平时,可以写入指令或者显示地址;当RS为低电平、为高电平时,可以读信号;当为高电平、为低电平时,可以写入数据。E,使能端,在使能端为高电平时可以读取液晶模块的信息,当E端由高电平变成低电平时,液晶模块执行写操作18。D0D7,为8位双向数据线。BLA,背光源正极。BLK,背光源负极。它的基本操作时序如下:读状态: 输入:RS=L,=H,E=H 输出:D0D7=状态字读数据: 输入:RS=H,=H,E=H 输出:无。写指令 输入:RS=L,=L,D0D7=指令码,E=高脉冲 输出:D0D7=数据。写数据 输入:RS=H,=L,D0D7=数据,E=高脉冲 输出:无。在1602液晶显示屏的内部有一个80B的RAM缓冲区,如图3.14所示。其中的000F、404F地址处是液晶显示区,也就是说,我们在这一区域中的任意一处写入数据时,液晶都可以立即显示出来,但是如果写到1027或是5067地址处,也就是不能显示的区域的话,就需要通过移位指令来将这些数据移入000F等可显示的区域来达到正常显示。图3.14 1602液晶显示屏示意图 首先,应先通过RS确定是写命令还是写数据,比如确定液晶的光变是否显示、是否闪烁,是否需要移屏,或是确定要显示什么内容。然后再设置读/写控制端为低电平,即写模式。随后将数据或命令送到数据线上,最后给E一个高脉冲将数据送入液晶控制器,完成写操作。根据上述接口说明和原理介绍,在虚拟模拟平台上制出电路图,1602液晶屏与单片机的接口图如下图3.15:图3.15 1602液晶屏与单片机的接口图上图中,液晶的1、2端是电源,15,16为背光电源。在15引脚处串联一个电阻是为了限流,保护背光灯防止直接外加5V电压将其烧坏。在液晶3端出连接的电位器是用来调节液晶显示的对比度的。液晶4端接单片机P3.5口,作为向液晶控制器写数据/写命令选择端。液晶5端是读/写端,这里不需要从液晶读取任何数据,所以将其接地,使用其写状态向它写入数据和命令。液晶端6为使能信号端,接单片机的P3.4口,接收操作时必须的信号。程序流程图根据下图3.16所示:开始初始写入地址清0(调用写次数参数)要写入的地址根据偏移查出对应要显示的值要写入的值调用WRITE写子程序调用次数减1否16次调用结束否?是结束图3.16 1602液晶屏程序流程图根据原理,设计程序,让,程序见附录(7)。3.7.2 实验电路模块正确性验证若程序和电路都没有问题,那么我们可以在1602液晶显示屏上看到以下图像,液晶上显示:第一行显示“I LOVE YOU!”,第二行显示“110315”。如图3.17所示:图3.17 1602液晶屏实验现象图3.8 串口通信3.8.1 模块原理和设计串口通信用到的是MAX232芯片。这个芯片的上半部分电容-以及 、都是电源变化电路部分;而下部分是发送和接收部分, 、都可直接连接单片机的TXD端,和直接连接至单片机的RXD端,和端直接连接至PC机的RS-232串口的接收端RXD,和直接连接到PC机的RS-232串口的发送端TXD。虚拟平台串口部分原理图如图3.18所示:图3.18 虚拟平台串口部分原理图串口通信的数据传输流程:TTL电平从单片机的TXD端发出,进过MAX232的转换,转换为RS-232电平以后,再从MAX232的14引脚发出,再与串口座上第3脚相连,通过交叉串口线连接至PC机串口座的第2脚RXD端,至此计算机接收到数据。PC机发送数据时从PC机串口座第三角TXD端发出数据,再逆向流向单片机的RXD端P3.0接收数据。串口有4中方式,现在我们通过方式1来编程和实现仿真。串口方式1是最常用的通信方式,它传送一帧数据的方式如图3.19:图3.19 方式1传送一帧数据示意图串行口方式1传送一帧数据共10位,1位起始位(0),8位数据位,最低位在前高位在后,1位停止位(1),帧与帧之间可以有空闲,也可没有20。当数据被写入SBUF寄存器后,单片机自动开始从起始位发送数据,发送到停止位的开始时,由内部硬件将T1置1,向CPU申请中断,接下来可在中断服务程序中做相应处理,可选择不进入中断20。用软件置REN为1时,接收器以所选波特率的16倍速率采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位20。当RI=0,SM2=0(或接收到的停止位为1)时。将接受到的9位数据的前8位数据装入接收SBUF,第9位(停止位)进入RB8,并置RI=1,向CPU请求中断20。在进行具体操作串行口之前,需要对设置产生波特率的定时器1、串行口控制和中断控制进行初始化设置:(1) 确定T1的工作方式;(2) 计算T1的初值;(3) 启动TI(编程TCON中的TR1位);(4) 确定串行口工作方式(编程SCON寄存器);(5) 串行口工作在中断方式时,要进行中断设置(编程IE、IP寄存器)。3.8.2 实验电路模块正确性验证根据上述原理,设计程序通过串口调试助手进行验证,程序见附录(8)3.9 步进电机3.9.1 模块原理和设计步进电机是不需要A/D转换的,它能够直接将数字脉冲信号转化成为角位移。我们通过利用proteus对其进行电路仿真,设计系统通过四个按键S1,S2,S3,S4分别控制步进电机的开始,减速以及正反转,并使用1602液晶显示以上参数。这整个设计由单片机、复位电路、时钟电路、电机驱动、步进电机、显示电路等组成,硬件模块如图3.20所示:步进电机电机驱动单片机复位电路时钟电路键盘图3.20 步进电机硬件模块流程图单片机接收到按键发送的信号后经过判断,驱动电机模块,并用1602显示设置的参数。本次主控单元使用C51单片机对整个系统进行控制,步进电机和单片机连接如图3.21:图3.21 步进电机与单片机连接电路图 在这个设计中,驱动模块我们使用的是集成驱动芯片ULN2003。ULN2003 的每一对达林顿都串联了一个2.7 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接处理原本需要标准逻辑缓冲器来处理的数据。若需要显示电路我们可以使用到1602液晶屏。然后通过键盘来控制电机的运行,这里使用了4个独立式按键。按键功定义如下:当S2按下时,步进电机开始加速;当S3按下时,步进电机开始减速;当S4按下时,步进电机开始正转;当S5按下时,步进电机开始反转。按键抖动的消除采用软件消抖实现。每个按键开关采用的都是上拉电阻,如图3.22。图3.22 按键连接图接下来是程序设计:程序见附录(9)3.9.2 模块正确性验证在上面的内容中,我们完成了对程序和电路的设计,现在将程序编译下载到虚拟电路中,进行仿真,若程序和电路都正确,那么会出现以下效果:(1)按下第一个键时,电机开始加速。(2)按下第二个键时,电机开始减速。(3)按下第三个键时,电机正转。(4)按下第四个键时,电机反转。 4 总 结首先我对C语言进行了充分的了解,然后对51单片机的内部接口和各引脚进了系统化的学习。紧接着进行了各个模块的学习,如1602液晶屏、键盘等,其中,在设计的途中遇到了许多问题,通过查询相关资料,并且在老师的帮助下运用老师提供的TX-1C实验板对单片机有了更加清晰的了解,解决了许多设计上的问题。程序的编写是最难完成的,因为自己对C语言不熟练,对单片机的功能实现也不是特别的熟悉,后来自己在图书馆查询各式资料,问了老师很多问题,最后我自己才勉强能够做的出来。这样的情况下,做到最后心情有些急躁,有些东西问了很多同学,查询了很多资料,最后自己才把程序虚拟仿真做完了。通过这次毕业设计,我对C语言、单片机有了更深层次的了解,领略到了机电的魅力,还让我学会了独立完成任务的能力。最后非常感谢王老师和冯老师对我的帮助!5 参考文献1 权宁一,权晓林.嵌入式系统专业实验教学改革的探索与实践J.实验技术与管理,2011.2 杨富友,基于arm+linux架构的嵌入式vpn开发平台设计与实现.硕博学位论文,2006.3 殷春华.基于at89c52的实验教学型数控系统研制.硕博学位论文,20074 Xunicheng.Proteus电路仿真软件在电路设计中的应用.百度文库,20125 赵艳辉,赵修良等.基于Proteus的核信号输入LCD处理显示单元J.电子设计工程,2011.6 Proteus软件仿真与keil的51单片机系统设计,互联网,2011.7 移动机器人视觉导航技术研究,硕博学位论文8 中国测控网.单片机发展历史的三个主要阶段介绍,中国测控网,20139 杨小芳,杨学梅.单片机课程设计,互联网,2012.10 李联军.电子技术中单片机的应用和开发技术讨论J.大观周刊,2012.11 单片机仿真实验86.互联网,2010.12 58键盘显示程序设计.互联网,2010.13 基于AVR物联网毕业设计.豆丁网,2011.14 Fayj5j5y.ADDA转换.道客巴巴,2012,(1).15 秦凯新.基于51单片机压力检测课程设计.百度文库,2013,(6).16 焦素敏.数字电子技术基础D.北京:人民邮电出版社,2012.17 ys800503.1602液晶应用Proteus反仿真+源程序课程设计,

温馨提示

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

评论

0/150

提交评论