收张家翌家翌_第1页
收张家翌家翌_第2页
收张家翌家翌_第3页
收张家翌家翌_第4页
收张家翌家翌_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1、毕业设计()题目单片机实验搭建与仿真学院名称航空制造专业名称机械设计制造及其自动化班级学号11031504学生张家翌指导教师二 O 一五 年单片机实验搭建与仿真学生:张家翌班级:11031504指导老师:摘要:单片机是一种采用了超大规模的集成技术的电路,上有具有数据处理能力的处理器 CPU、随机器 RAM、只读器 ROM、多种 I/O口和中断系统、定时器/计数器等功能10。在学习单片机时,需要进行大量的单片机实验,在实验中主要使用的是仿真机和单片机,这意味着常规单片机需要配置大量设备,导致经费的投入会相当大,部件损耗会相当严重,要做到学习的人人手配置一部单片机也不太可能。而且实验设备一般局限性

2、都较大,一个型号的实验板只能进行有限的实验项目,特别完成一些不太方便进行的实验(如步进电机实验等)时,还存在一定性。为了解决这些问题,便需要用到 Proteus 仿真软件。Proteus 仿真软件可以仿真单片机及其电路组成的系统的仿真,如电源、锁存器、数码管、按键、电机、各类液晶屏等4。这样便可以节省很多资源,而且实验方便,需要进行不同的实验时,只需在 Proteus中调用不同的,连接好电路,建立好虚拟系统,就能进行实验仿真。同时,Proteus 还支持第的软件编译和调试环境,如 Keil C51 uVi2,通过这些软件可以进行编程程序进行单片机仿真5。使用 Keil 软件可以很方便的进行程序

3、的编程,在编程完成以后,可以通过软件内的功能对程序进行检查和编译,若程序存在错误,通过它能方便快捷的找出错误所在。在程序编译完成以后,在通过 Keil 软件生成 HEX 文件,进入 Proteus 仿真中,便可以通过仿真中设计好的单片机及相关电路进行仿真。单片机虚拟仿真,不仅绿色环保,还可以达到节省资源、学习效率的目的。:单片机,虚拟技术,仿真,Proteus,Keil指导老师签名:Microcontrollers experiment platform buildingand simulationStudent name: Zhang JiayiSupervisor: Wang LixiaC

4、lass:11031504Abstract:Microcontrollers is a kind of very large scaleegration technologyadopted circuit chip, chip has the central prosor CPU, RAM, RAM, read-onlymemory ROM, a variety of I/O mounderrupt system, timer/counter, and otherfunctions. When we learn how to use microcontroller, we will finis

5、he a large numberofputer experiment.In the experiment,we mainly used simulator andputer, it meanst the conventionalputer lab need to configure alarge number of equipment, lead to inpan be considerable funds, and loss of partswill be quite serious.It is imsible to make every studentse microcontroller

6、sof experimentalAndlaboratory equipment general limiions is larger, a mboard only limited experimental projects, spel complete some not so convenient toexperiment (such as stepper motor experiment, etc.), there is a certain risk. In order tosolve these problems, they need to use Proteus simulation s

7、oftware. Proteussimulation software can be comed of single-chipputer and its peripherycircuit simulation system simulation, such aser supply, latch, digital tube, buttons,motors and all kinds of LCD screen, etc. This can save a lot of resour, and theexperiment is convenient, the need for different e

8、xperiments, 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 supportsthird-party software compiling and debugging environment, such as Keil C51uVi2. Through these sof

9、tware can be programmed for single chipputersimulation 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 thecompletion of the

10、 program compiledwe can use Keil software generated HEX file,and download the HEX fileo the Proteus simulation platform, then we can finishthe simulation platform by using theputer simulation and related peripheralcircuit.Not only green environmental protection,also can achieve the pure ofsavingreso

11、ur,improvethelearningefficiencybyusingMicrocontrollersexperiment platform.Keywords: Microcontrollers ,virtual technology,simulation,Proteus,KeilSignature of the adviser:目录1引言01.11.21.31.4选题背景以及目的0单片机和单片机技术的发展0国内外发展综述0单片机的发展趋势12总体方案的设计2设计目标2设计内容2实验电路的设计、其原理和正确性性验证433.13.23.3电源模块4单片机模块4单个 LED 灯、流水灯53.

12、3.13.3.2模块设计及其原理5实验电路模块正确性验证63.47 段 LED(数码管)73.4.13.4.2模块设计及其原理7实验电路模块正确性验证83.54X4 矩阵键盘93.5.13.5.2模块设计及其原理9实验电路模块正确性验证113.6数/模,模/数转换113.6.1A/D113.6.2D/A141602 液晶显示屏163.73.7.13.7.2模块设计及其原理16实验电路模块正确性验证183.8串口通信19模块原理和设计19实验电路模块正确性验证213.8.13.8.23.9步进电机213.9.13.9.2模块原理和设计21模块正确性验证23总结24参考文献25谢2645致1 引言

13、1.1选题背景以及目的单片机又称为单片微控制器,它其实就是一块集成,但这个拥有一些特殊的功能,还可以理解为它相当于一个微型的计算机,但它功能的实现需要依靠自己编程来实现。通过程序来控制各个引脚在不同的时间输出高电平或低电平,进而系统。但是由于种类多,电路繁琐,通过实验板完成各项实验需要各式的部件及其他,这样对实验来说是比较麻烦的,要更加简便的,快速的完成实验,这时候便额可以进行单片机的模拟与仿真。通过Proteus 和 Keil 对单片机进行仿真,可以极大的提高单片机的编程效率和效果,需要任意一个或是部件都可以很方便的从 Proteus 中找出,可以很轻松的完成电路的绘制,省去了许多繁琐的步骤

14、,使得可以通过单片机仿真器输入和修改程序,观察程序运行结果以及中间状态,同时还能对单片机配套的硬件进行检测,并验证正确性6。1.2单片机和单片机技术的发展单片机诞生于 20 世纪 70 年代末,经历了 Microcontrollers、MCU、SoC 三大阶段7。(1)Microcontrollers 即单片微型计算机(Single Chipputer)阶段,系统的最佳体系结构1。在这个阶段中,致力于找出单片形态(2)MCU 即微控制器(Micro Controller Unit)阶段,在这个阶段中,不断的扩展满足的应用,以及各种被外界发展所需要的电路与接口电路8,这些改变成功的挖掘并突出了它

15、的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU 的重任不可避免地落在电气、电子技术厂家2。(3)单片机是寻求应用系统在系统发展的必经,同时也是一条独立的发展道路。上的最大化解决便是 MCU 阶段发展的重要;因此,专用单片机的发展自然形成了SoC 化趋势。1.3国内外发展综述早期的单片机都是 8 位或 4 位的。早期的单片机中有部分单片机工艺精良,制作简单,性能可靠,受到广泛的关注,被大家所喜爱,直到到现在,其中的一些型号也还在使用,例如EL0830。在之后的中,8 位单片机的发展也是极其迅速,再后来就出现了 16 位、32 位的单片机。随着发展,系统都能被当代单片机系统直接

16、使用。的Windows现在常规的单片机普遍都是将处理器(CPU)、随机存取数据(RAM)、只读程序器(ROM)、并行和串行通口,中断系统、定时电路、时钟电路集成在一块单一的 上,增强型的单片机集成了如 A/D 转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将 LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就 ,功能就越强大21。现在单片机厂商还能根据使用者的需求,制作出各式各样的单片机。现在,单片机系统朝微型化发展,在以后,单片机除了需要强大的功能和较低的功耗以外,体积的要求也会越来越严格,微型单片机是国内外发展的共同趋势。同时单片机都具有多种封装形式,其中

17、最受欢迎的便是 SMD,因为这种工艺能使得单片机的体积更小,符合了发展的趋势。1.4单片机的发展趋势现代电子技术的发展对单片机的工艺质量提出了越来越高的要求,也促使单片机的集成技术和控制水平向更高的方向发展。通过更小的光刻技术来提高集成度,达到制作工艺 CMOS 化,缩小电压。另外,以串口方式为主的、降低制作成本、减少功耗和降低工作扩展将成为主流。还有一个明显的就是和互联网连接,在这样的趋势下,可靠性和应用水平的要求也会越来越高,8 位机将占据主流地位。2总体方案的设计2.1设计目标利用以 Proteus 为搭建,搭建基本的单片机虚拟仿真实验并以 C51为基本开发语言,实现对数码管、流水灯、液

18、晶显示屏的编程操作,并运用 Keil对单片机相关仿真模型进行,以确保其正确性。原始资料(数据)及设计技术要求:单个 LED、流水灯;七段 LED;键盘、液晶AD、DA串口通信及其它模块2.2设计内容本设计(如图 2.1)是以单片机 89C52 为,加上晶振、复位电路、输入控制电路、输出显示电路和电路部件组成。功能部件图 2.1 单片机系统的基本组成其中,晶振和复位电路控制这单片机的机器周期和功能复位。常用的输入控制方法有键盘、矩阵键盘以及串口通信等。通过这些方法将控制指令传送到单片机内,实现控制。输出显示模块一般使用的是 LED、液晶屏、电机等,它们由单片机发送的指令来控制。而功能部件一般用来

19、执行某些特定功能,如传感器输出显示输入控制单片机89C52晶振、复位电路等。通过上述设计内容,制定以下设计流程:对单片机实验以 Proteus 为搭建进行充分的了解。,搭建基本的单片机虚拟仿真实验,实验中主要部件包括单片机 89RC52、LED 灯、七段 LED、4X4 矩阵键盘、1602 液晶屏、ADC0804、DAC0823 等运用C 语言,完成对单个 LED 灯、流水灯、七段 LED、4X4 矩阵键盘、液晶显示屏、A/D、D/A、步进电机、直流电机的程序编写。运用 Keil 对所编写的程序进行编译确保程序正确性。运用 Keil 将编写的程序转换为 HEX 文件导入虚拟仿真中进行仿真。根据

20、设计制出PCB图。3实验电路的设计、其原理和正确性性验证3.1电源模块主板上其他部件由电源模块提供+5V 的电源,在这里有两种电源输入方式,一种是由电源插座输入交直流电源,要求为直流输入大于 7.5V,交流输入大于 5V,再通过 7805 三端稳压器得到 5V 的直流电源供给系统其他部件工作。第二种是通过 USB 口获取+5V 电源。电路原理如图 3.1 所示:图 3.1电源模块电路原理图3.2单片机模块在该虚拟实验所示图 3.2 所示:中,使用的是 89RC52 单片机。虚拟中该单片机如图图 3.2单片机 89RC523.3单个 LED 灯、流水灯3.3.1模块设计及其原理这个模块使用的是

21、8 个发光二极管,通过排线来控制,能控制单个发光二极管的亮灭,或是达到流水灯效果。控制的方式:当输入的控制信号为低电平的,发光二极管为亮;为发光二极管熄灭。电路由图 3.3 所示:时。图 3.3LED 灯电路图发光二极管具有单向导电性,通过电流一般控制在 3mA-20mA 之间,通过电流越大,亮度越强,但如果电流过大,二极管会被烧坏,所以在这里给二极管串联了一个电阻来限制通过发光二极管的电流,这个电阻又称为“限流电阻”。还用到了一个 74HC573 锁存器。单片机可以通过控制锁存器在这里,的锁存端来控制锁存器的数据输出。其中,Q0Q7 为数据输出端,D0D7 为数据输入端,LE 为锁存允许端,

22、3.47 段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 位分别连接数码管的选位端图 3.7

23、 数码管显示图3.54X4 矩阵键盘3.5.1模块设计及其原理键盘本质上就是一组按键。按键的连接方法很简单,如图 3.8,右侧的 I/0端与单片机的任意I/O 连接。图 3.8单个按键连接图而使用键盘,其实就是完成单片机对按键的检测,检测原理如图 3.8。这里使用按键的数据输入功能,通过把按键的一端接地,另一端与单片机某 I/O 口连接,将 I/O 置高,然后让单片机不断的检测该 I/O 是否改变为低电平;当按键被按下闭合时,它与地相连,变成低电平。所以当程序检测到所连接 I/O口变为低电平时,则说明按键被按下,然后可以进行执行相应指令。4X4 矩阵键盘每一行的每个按键的一段连接在一起行线,另

24、一端连接在一起 列线12。这样便有一共 4 行 4 列 8 根线来连接 16 个按键。将这些线与单片机的 8 个I/O 连接,就可以通过程序来扫描键盘检测按键了。4X4 矩阵键盘的原理其实和上述的独立键盘的原理是大致相同的,但是这里有一点需要注意,由于矩阵键盘不同于独立键盘,它并不是一端接地,一端与单片机相连,而是两端都与单片机的I/O 口连接,所以在 4X4 矩阵键盘中,需要人为的通过单片机I/O 口送出低电平。按键检测原理图如图 3.9 所示:STARTN检测是否有按键按下?Y延时 1sN检测是否有按键按下?Y执行相应代码图 3.9 按键检测原理图在检测时,一般有两种方法。一种是先送一行为

25、低电平,其余几列为。然后检测各行是否有低电平,若检测出有低电平,则可确认被按下的是哪一个按键。另法则是先送一列为低电平,其余列为,然后用同上一样的方法即可检测按下为哪个键。虚拟实验电路图如图 3.10 所示:图 3.104x4 矩阵键盘电路图寄存器,单片机 I/O 端口初始化为了验证电路正确,需要每个按键都检测。程序代码见附录(4):3.5.2实验电路模块正确性验证按照这程序,若没错误,当依次显示 0-F。以此按下矩阵键盘的每个按键后,数码管上3.6数/模,模/数转换3.6.1模/数转换(1)A/D 转换工作原理及设计A/D 指的是模拟量/数字量转换器。在单片机模拟信号时,通常在其前端加上 A

26、/D。A/D 转换的原理是:先对输入的模拟电压信号采样,完成后进入保持时间,利用这段保存时间把采样的电压量转化为数字量,然后在按照给定的编码形式得出结果,再开始下一次采样13。中,为了完成这一实验,选择了 ADC0804。这个 A/D在虚拟转换器逐次比较型 A/D 转换器。该接到数据总线上。内具有三态输出数据锁存器,可直接连A 引脚名称及作用:VIN(+),VIN(-)-模拟信号输入端,用以接收单极性、双极性和差摸输入信号。DB0-DB7-具有三态特性数字信号输 AGND-模拟信号地。DGND-数字信号地。 CLK-时间信号输入端。CLKR-内部时钟发生器的外接电阻端,与 CLK 端配合可由时

27、钟脉冲,其频率为 1/(1.1RC)14。自身产生滑动端便与 VIN(+)相连,这样便可以通过调节电位器的旋钮控制滑动端的电压,然后使得 ADC0804 的数字输出端在 0 x00-0 xFF 之间变化。而 ADC0804 所需的脉冲,则由 CLKR,CLR,GND 之间由电阻、电容组成的RC 振荡电路提供,脉冲的频率为 1/(1.1RC)。在转换时间不足,通过更换 C11 电容为 150F 或是增大for(a=10;a0;a-)中 a 的值,即增加 A/D 转换时间可以解决这个问题。若操作、程序、电气图都正确,可以观察当拧动 Re2 时,能看到数码管前 3位以十进制的方式动态显示 A/D 转

28、换后的数字量。3.6.2数/模转换(1)D/A 转换工作原理及设计用二进制代码按数位组合起来表示便是数字量。实现数/模转换,也就是 D/A转换的基本思路是:将每一位的代码按照其权的大小转换成相应的模拟量,在将这些模拟量相加,即 到总模拟量,这个总模拟量与数字量是成正比的16。这里使用的是常见的 8 位 D/A 转换器 DAC0832,以电流形式输出,可外接运算放大器来转换输出为电压。它的逻辑电平输入和 TTL 电平兼容。各引脚的定义如下:图 3.13 DAC0832 电路图当选择这种数据输入方式时,它的片选信号、写信号和传送控制信号的引脚全部接地,ILE 引脚接 5V。一旦输入数字量,数字量直

29、接进入 D/C 寄存器,进行 D/A 转换。若需要让号就可以了。连续转换的话,只用连续改变数字输出端的数字信下面通过编写程序进行编译设计的电路和程序的正确性。根据这个程序,可以让发光二极管由灭到亮再到暗,并且在最亮和最暗的时候发出蜂鸣警报声。整个周期 5S 左右,并且循环变化。3.71602 液晶显示屏3.7.1模块设计及其原理1602 液晶可以显示两行,每行 16 个字符,由 5V 电压驱动,带背光,并且内置了 128 个字符的 ASCII 字符集字库,并行接口17。1602 型液晶接口说明如下:输出:无。在 1602 液晶显示屏的内部有一个 80B 的RAM 缓冲区,如图 3.14 所示。

30、其中的 000F、404F 地址处是液晶显示区,也就是说,在这一区域中的任意一处写入数据时,液晶都可以立即显示出来,但是如果写到 1027 或是 5067 地址处,也就是不能显示的区域的话,就需要通过移位指令来将这些数据移入 000F 等可显示的区域来达到正常显示。图 3.14 1602 液晶显示屏示意图首先,应先通过 RS 确定是写命令还是写数据,比如确定液晶的光变是否显示、是否闪烁,是否需要移屏,或是确定要显示什么内容。然后再设置读/写控制端为低电平,即写模式。随后将数据或命令送到数据线上,最后给 E 一个高脉冲将数据送入液晶控制器,完成写操作。根据上述接口说明和原理介绍,在虚拟模拟屏与单

31、片机的接口图如下图 3.15:上制出电路图,1602 液晶图 3.151602 液晶屏与单片机的接口图上图中,液晶的 1、2 端是电源,15,16 为背光电源。在 15 引脚处串联一个电阻是为了限流,保护背光灯防止直接外加 5V 电压将其烧坏。在液晶 3 端出连接的电位器是用来调节液晶显示的对比度的。液晶 4 端接单片机P3.5 口,作为向液晶控制器写数据/写命令选择端。液晶 5 端是读/写端,这里不需要从液晶用其写状态向它写入数据和命令。液晶端 6 为使能信号端,接单片机的P3.4 口,接收操作时必须的信号。程序流程图根据下图 3.16 所示:任何数据,所以将其接地,使开始否16次调用结束否

32、?是结束图 3.16 1602 液晶屏程序流程图根据原理,设计程序,让,程序见附录(7)。3.7.2实验电路模块正确性验证若程序和电路都没有问题,那么可以在 1602 液晶显示屏上看到以下图调用次数减 1调用 WRITE 写子程序要写入的值根据偏移查出对应要显示的值要写入的地址初始写入地址清 0(调用写次数参数)像,液晶上显示:第一行显示“I LOVE YOU!”,第二行显示“110315”。如图 3.17所示:图 3.17 1602 液晶屏实验现象图3.8串口通信3.8.1模块原理和设计串口通信用到的是MAX232。这个的上半部分电容图 3.18虚拟串口部分原理图串口通信的数据传输流程:TT

33、L 电平从单片机的 TXD 端发出,进过 MAX232 的转换,转换为 RS-232电平以后,再从 MAX232 的 14 引脚停止位的开始时,由内部硬件将T1 置 1,向 CPU 申请中断,接下来可在中断服务程序中做相应处理,可选择不进入中断20。用软件置 REN 为 1 时,以所选波特率的 16 倍速率采样 RXD 引脚电平,检测到 RXD 引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位20。当RI=0,SM2=0(或接收到的停止位为 1)

34、时。将接受到的 9 位数据的前 8 位数据装入接收SBUF,第 9 位(停止位)进入 RB8,并置 RI=1,向 CPU请求中断20。在进行具体操作串行口之前,需要对设置产生波特率的定时器 1、串行口控制和中断控制进行初始化设置:确定T1 的工作方式;计算T1 的初值;启动TI(编程TCON 中的TR1 位);确定串行口工作方式(编程SCON 寄存器);串行口工作在中断方式时,要进行中断设置(编程 IE、IP 寄存器)。3.8.2实验电路模块正确性验证根据上述原理,设计程序通过串口调试助手进行验证,程序见附录(8)3.9步进电机3.9.1模块原理和设计步进电机是不需要 A/D 转换的,它能够直

35、接将数字脉冲信号转化成为角位通过利用proteus 对其进行电路仿真,设计系统通过四个按键 S1,S2,S3,S4移分别控制步进电机的开始,以及正反转,并使用 1602 液晶显示以上参数。这整个设计由单片机、复位电路、时钟电路、电机驱动、步进电机、显示电路等组成,硬件模块如图 3.20 所示:复位电路时钟电路电机驱动步进电机单片机键盘图 3.20步进电机硬件模块流程图单片机接收到按键发送的信号后经过判断,驱动电机模块,并用 1602 显示设置的参数。本次主控单元使用 C51 单片机对整个系统进行控制,步进电机和单片机连接如图 3.21:图 3.21步进电机与单片机连接电路图在这个设计中,驱动模

36、块使用的是集成驱动ULN2003。ULN2003都串联了一个 2.7 K 的基极电阻,在 5V 的工作电压下它能与的每一对TTL 和CMOS 电路直接相连,可以直接处理原本需要标准逻辑缓冲器来处理的数据。若需要显示电路可以使用到 1602 液晶屏。然后通过键盘来控制电机的运行,这里使用了 4 个独立式按键。按键功定义如下:当 S2 按下时,步进电机开始;当 S3 按下时,步进电机开始;当 S4 按下时,步进电机开始正转;当 S5 按下时,步进电机开始反转。按键抖动的消除采用软件消抖实现。每个按键开关采用的都是上拉电阻,如图 3.22。图 3.22 按键连接图接下来是程序设计:程序见附录(9)3

37、.9.2模块正确性验证在上面的内容中,完成了对程序和电路的设计,现在将程序编译到虚拟电路中,进行仿真,若程序和电路都正确,那么会出现以下效果:按下第一个键时,电机开始。按下第二个键时,电机开始。按下第三个键时,电机正转。按下第四个键时,电机反转。4总结首先我对C 语言进行了充分的了解,然后对 51 单片机的内部接口和各引脚进了系统化的学习。紧接着进行了各个模块的学习,如 1602 液晶屏、键盘等,其中,在设计的途中遇到了许多问题,通过查询相关资料,并且在老师的帮助下运用老师提供的 TX-1C 实验板对单片机有了更加清晰的了解,解决了许多设计上的问题。程序的编写是最难完成的,因为自己对 C 语言

38、不熟练,对单片机的功能实现也不是特别的熟悉,后来自己在馆查询各式资料,问了老师很多问题,最后才勉强能够做的出来。这样的情况下,做到最情有些急躁,有些东西问了很多同学,查询了很多资料,最后自己才把程序虚拟仿真做完了。通过这次毕业设计,我对C 语言、单片机有了更次的了解,领略到了机电的,还让我学会了独立完成任务的能力。最后非常感谢和冯老师对帮助!5 参考文献一,与管理,2011.系统专业实验教学的探索与实践J.实验技术1,基于 arm+linux 架构的,2006.开发设计与实现.硕博学位23 殷.基于 at89c52 的实验教学型数控系统研制.硕博,2007文库,20124 Xunicheng.

39、Proteus 电路仿真软件在电路设计中的应用.,等.基于 Proteus 的核信号输入 LCD 处理显示单元J.电子5设计工程,2011.6 Proteus 软件仿真与 keil 的 51 单片机系统设计,互联网,2011.7 移器人视觉导航技术,硕博8 中国测控网.单片机发展历史的三个主要阶段介绍,中国测控网,2013,.单片机课程设计,互联网,2012.9李联军.电子技术中单片机的应用和开发技术单片机仿真实验 86.互联网,2010. 1258 键盘显示程序设计.互联网,2010. 13基于 AVR 物联网毕业设计.豆丁网,2011.Fayj5j5y.ADDA 转换.道客巴巴,2012,

40、(1).新.基于 51 单片机压力检测课程设计.J.大观,2012.文库,2013,(6).,2012.数字电子技术基础D.:人民邮电1617ys800503.1602 液晶应用 Proteus 反仿真+源程序课程设计,道客巴巴,2012,(8)18彭朝晖.兼有 MP3 功能的语言定时器的.硕博:人民邮电,2005.,2008,19求是科技.单片机典型模块设计实例导航D.(7).51 单片机C 语言D.:电子工业,2009,(1)2021.浅谈单片机在电子技术中的使用D.技术与市场,2012.致谢首先,在这这里再次感谢指导老师和冯老师对我悉心的指导,感谢老师给帮助。随着毕业日子的到来,毕业设计

41、也接近了尾声。在没有做毕业设计以前觉得毕业设计是一个随便应付了事的东西,但是真正的着手开始做毕业设计时,才发现自己真的很幼稚。毕业设计是需要认真面对的,要完成它,需要对前面所学知识有很深的了解,而且还需要在学些新的知识。通过这次毕业设计,我明白了自己其实专业知识掌握的也不好,要学习的东西还太多,以前总觉得自己得过且过,对学习没什么追求,通过这次毕业设计,我才知道自己有差劲,有多大的差距。所以,在以后的工作、生活中,自己都应该不断的学习,努力提高自己知识和综合素质。在刚刚开始做毕业设计是,真是不知道怎么动手,从那里入手,正是古人所说的万事开头难。后来还是通过查阅相关资料,询问老师和同学各种问题,

42、最后才完成了这次毕业设计,做完了以后有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!知识只有到真正会用的时候才是真的学会了。在此要在设计过程中,和老师的交流加上,让自己收益颇丰。明白了自己不能一味的寻求别人的帮助,在遇到不懂的东西,自己动手才是最好的解决方式,周围的人知识你的辅助而已。在整个设计中,培养了我独立思考,自己动手的能力,增强了自己的信心,相信会对以后的工作生活有着巨大的影响,使我终身受益。在这次毕业设计中,我充分体会到了在创造过程中探索的艰难和成功时的喜悦。附录(1)原理图附录(2)程序(1)LED#include /52 系列单片机头文件/宏定义#def

43、ine uunsignedsbit led1=P10; void delayms(); void main()while(1)led1=0; delayms(); led1=1; delayms();void delayms()/单片机P1 口的第一位子函数/主函数/大循环/*点亮第一个发光二极管*/调用延时子函数/*关闭第二个发光二极管*/调用延时子函数/子函数体ui,j;for(i=1000;i0;i-)for(j=110;j0;j-);/i=1000 即延时约 1 秒(2)流水灯#include/52 系列单片机头文件/包含_crol_函数所在的头文件/宏定义#include unsig

44、ned#define uchar unsigned charvoid delayms(u uchar aa;void main()aa=0 xfe; while(1)P1=aa;);/子函数/定义一个变量,用来给P1 口赋值/主函数/赋初值 11111110/大循环/先点亮第一个发光二极管/延时 1 秒/将xx 循环左移位后在赋给xxdelayms(1000); aa=_crol_(aa,1);void delayms(uxms)ui,j;for(i=xms;i0;i-)for(j=110;j0;j-);(3)数码管#include #define uchar unsigned char/52

45、 系列单片机头文件#define uunsignedsbit dula=P26; sbit wela=P27;uchar code table= 0 x3f,0 x06,0 x5b,0 x4f, 0 x66,0 x6d,0 x7d,0 x07, 0 x7f,0 x6f,0 x77,0 x7c, 0 x39,0 x5e,0 x79,0 x71;/U1 锁存器的锁存端U2 锁存器的锁存端void delayms(u void main();while(1)dula=1; P0=table1; dula=0; P0=0 xff; wela=1; P0=0 xfe; wela=0; delayms(5

46、00);/送数据/送位选数据前关闭所有显示,防止打开位选/锁存时原来/送位选数据数据通过位选锁存器造成/延时dula=1; P0=table2; dula=0; P0=0 xff; wela=1; P0=0 xfd; wela=0; delayms(500);dula=1; P0=table3; dula=0;P0=0 xff; wela=1; P0=0 xfb; wela=0; delayms(500);dula=1; P0=table4; dula=0; P0=0 xff; wela=1; P0=0 xf7;wela=0; delayms(500);dula=1; P0=table5; d

47、ula=0; P0=0 xff; wela=1; P0=0 xef; wela=0; delayms(500);dula=1; P0=table6; dula=0; P0=0 xff; wela=1; P0=0 xdf; wela=0; delayms(500);void delayms(uxms)ui,j;for(i=xms;i0;i-)for(j=110;j0;j-);(4)4X4 矩阵键盘#include#define uchar unsigned char/52 系列单片机头文件#define uunsignedsbit dula=P26; sbit wela=P27;uchar co

48、de table= 0 x3f,0 x06,0 x5b,0 x4f, 0 x66,0 x6d,0 x7d,0 x07, 0 x7f,0 x6f,0 x77,0 x7c, 0 x39,0 x5e,0 x79,0 x71;/U1 锁存器的锁存端U2 锁存器的锁存端void delayms(uxms)ui,j;for(i=xms;i0;i-)for(j=110;j0;j-);void display(uchar num)P0=tablenum; dula=1; dula=0;void matrixkeyscan()uchar temp,key; P3=0 xfe; temp=P3; temp=tem

49、p&0 xf0; if(temp!=0 xf0)delayms(10); temp=P3; temp=temp&0 xf0; if(temp!=0 xf0)temp=P3; switch(temp)case 0 xee:key=0; break;case 0 xde:key=1; break;case 0 xbe:key=2;break; case 0 x7e:key=3; break;while(temp!=0 xf0)temp=P3; temp=temp&0 xf0;display(key);/等待按键/显示P3=0 xfd; temp=P3; temp=temp&0 xf0; if(te

50、mp!=0 xf0)delayms(10); temp=P3; temp=temp&0 xf0; if(temp!=0 xf0)temp=P3; switch(temp)case 0 xed:key=4; break;case 0 xdd:key=5; break;case 0 xbd:key=6; break;case 0 x7d:key=7; break;while(temp!=0 xf0)temp=P3; temp=temp&0 xf0;display(key);P3=0 xfb; temp=P3; temp=temp&0 xf0; if(temp!=0 xf0)delayms(10);

51、 temp=P3; temp=temp&0 xf0; if(temp!=0 xf0)temp=P3; switch(temp)case 0 xeb:key=8; break;case 0 xdb:key=9; break;case 0 xbb:key=10; break;case 0 x7b:key=11; break;while(temp!=0 xf0)temp=P3; temp=temp&0 xf0;display(key); P3=0 xf7;temp=P3; temp=temp&0 xf0; if(temp!=0 xf0)delayms(10); temp=P3;temp=temp&0

52、 xf0; if(temp!=0 xf0)temp=P3; switch(temp)case 0 xe7:key=12; break;case 0 xd7:key=13; break;case 0 xb7:key=14; break;case 0 x77:key=15; break;while(temp!=0 xf0)temp=P3; temp=temp&0 xf0;display(key);void main()P0=0;dula=1; dula=0; P0=0 xc0;wela=1; wela=0;while(1)matrixkeyscan();/关闭所有数码管选段/不停调用键盘扫描程序(

53、5)A/D#include#include#define uchar unsigned char#define uunsignedsbit dula=P26;sbit wela=P27; sbit adwr=P36; sbit adrd=P37;uchar code table= 0 x3f,0 x06,0 x5b,0 x4f, 0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c, 0 x39,0 x5e,0 x79,0 x71;void delayms(uxms)ui,j;for(i=xms;i0;i-)for(j=110;j0;j-);void

54、display(uchar bai,uchar shi,uchar ge)dula=1;P0=tab dula=0; P0=0 xff; wela=1; P0=0 x7e;wela=0;ai;/送数据/送位选数据前关闭所有显示,防止打开位选/锁存时原来/送位选数据数据通过位选锁存器造成delayms(5);/延时dula=1; P0=tableshi; dula=0; P0=0 xff; wela=1; P0=0 x7d;wela=0; delayms(5);dula=1; P0=tablege; dula=0; P0=0 xff; wela=1;P0=0 x7b;wela=0; delaym

55、s(5);void main()/主程序uchar a,A1,A2,A3,adval; wela=1;P0=0 x7f;wela=0; while(1)adwr=1;_nop_(); adwr=0;_nop_(); adwr=1;/置 CSAD 为 0,选通A以后不必再管A/启动 A/D 转换for(a=10;a0;a-)display(A1,A2,A3);P1=0 xff; adrd=1;_nop_(); adrd=0;_nop_(); adval=P1; adrd=1; A1=adval/100;A2=adval%100/10; A3=adval%10;/延长转换时间/P1 口之前先给其写全 1 A/A/D 读使能/A/D 数据赋给P1 口/分出个,十,百位(6)D/A#include#d

温馨提示

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

评论

0/150

提交评论