单片机终结版毕业设计doc.docx

上传人:b****3 文档编号:5407010 上传时间:2022-12-16 格式:DOCX 页数:24 大小:940.85KB
下载 相关 举报
单片机终结版毕业设计doc.docx_第1页
第1页 / 共24页
单片机终结版毕业设计doc.docx_第2页
第2页 / 共24页
单片机终结版毕业设计doc.docx_第3页
第3页 / 共24页
单片机终结版毕业设计doc.docx_第4页
第4页 / 共24页
单片机终结版毕业设计doc.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

单片机终结版毕业设计doc.docx

《单片机终结版毕业设计doc.docx》由会员分享,可在线阅读,更多相关《单片机终结版毕业设计doc.docx(24页珍藏版)》请在冰豆网上搜索。

单片机终结版毕业设计doc.docx

单片机终结版毕业设计doc

目录

1.系统设计………………………………………………………………….1

1.1方案比较………………………………………………………..1

1.2系统硬件原理框图………………………………………….2

1.3工作原理………………………………………………………..2

2.部分电路与芯片介绍……………………………………………………4

2.1时钟和复位电路………………………………………………4

2.2LED显示电路………………………………………………….5

2.3主电路原理图…………………………………………………8

2.4元器件清单…………………………………………………….9

2.5单片机80C31简介…………………………………………10

2.674LS245芯片…………………………………………………10

2.774LS373芯片…………………………………………………11

3.程序设计思路与程序流程图……………………………………………11

3.1程序设计思路………………………………………………12

3.2流程图………………………………………………………13

4.仿真软件调试………………………………………………………16

4.1Keil简介……………………………………………………16

4.2Proteus简介………………………………………………16

4.3电子跑表仿真测试……………………………………………18

4.3.1仿真平台…………………………………………………18

4.3.2调试程序………………………………………………18

设计总结……………………………………………………………………19

设计体会……………………………………………………………………20

参考文献……………………………………………………………………21

致谢…………………………………………………………………………22

附录程序清单

1系统设计

1.1方案比较

设计跑表可以用几种不同的方法设计实现,常用的就有用单片机和用数字集成电路设计等方法。

方案一:

用数字集成电路设计。

跑表主要是对时间的计数,因此用数字电路设计的主要元件也就是计数器,除此之外还有毫秒脉冲发生器、译码和显示电路以及按键控制电路。

计数器可选用十进制计数器来完成计数工作。

毫秒脉冲发生器主要是为计数器提供时钟信号,使得计数间隔为一毫秒。

译码和显示电路用来显示计数的结果,按键控制电路用来控制计数器的状态。

这种方案设计的优点是设计简单,容易实现。

方案二:

用单片机设计实现。

单片机是实现各种控制策略和算法的载体,单片机内部有专门的定时计数器,并且有中断系统。

用单片机的设计的电路主要有键盘输入控制电路、显示输出电路和单片机系统。

利用单片机的定时计数器就可实现对时间的计数,要达到毫秒级计数只要将定时计数器的初始值改变一下就可实现。

键盘控制主要是利用中断系统来实现,当按下一个键时发出一个中断信号,使得定时计数器在计时、停止和复位清零三种状态之间转换。

计数的结果通过查表指令取出显示字的代码送数码管显示。

这样就能很好的实现跑表的功能。

用单片机设计的特点是外围电路简单,设计效果好。

第一种方案设计直观、简单,但电路比较复杂,第二种方案设计外围电路简单设计,耗材少。

因此,本设计中采用第二种方案来完成设计任务。

 

1.2系统硬件原理框图

 

图1.1跑表硬件原理图

1.3工作原理

基于单片机的电子跑表的运行主要是利用单片机定时/计数器的工作和中断服务作用完成计时功能的。

首先时钟电路产生单片机工作时所需要的时钟信号,这是单片机能够正常工作的前提,而单片机有无定时的基础以及定多长的时间,这些还需要我们人为的确定。

钟表的时钟要运行,首先要有“秒”的计时,因为单片机内部是没有规定的“秒”的概念。

同时它工作在不同的工作方式时,它的计数初值也是不同的。

这就要我们人为首先计算出计数的初值了,这就可以实现所谓的定时了。

如果单片机的定时时间到了的话,那么单片机会自动地产生中断使程序转向中断服务程序执行,中断服务程序执行完了就会返回原程序,等待下一次定时时间的到来再产生中断。

在此基础上,单片机就会按照人为设定的程序执行下去。

使单片机能计算其它时间量。

因为不同的计时功能它的基本计时单位是不同的。

我们知道,时钟的基本计时单位是秒,而秒表的基本计时单位却是毫秒了,因而我们把定时器的初始时间设计为50ms,将其乘以20便可得到我们的时间秒单位。

这样还可以省下一个定时器,节省了单片机的硬件资源。

当按下START键是,作为电子跑表使用,显示范围是000.0---999.9;当按下STOP键时,跑表停止运行,并保留所停位置的时间,当按下H键是可校正时,每按一次时加1,调整范围为0-23时,0为24时;用M键可校正分,每按一次加1,调整一次加1,调整范围为0-59,0即为60分。

最后将单片机内部的“时间”输出来,让我们看得到,那就得有显示电路。

而要进行时间的调整,键盘部分也是必不可少的了。

这就是构成单片机跟我们的人机接口。

 

2部分电路及芯片介绍

2.1时钟和复位电路

2.1.1时钟电路

时钟信号通常由两种方式产生:

一是内部振荡方式,二是外部时钟方式。

时钟电路原理图如图2.1所示

 

图2.1时钟电路

1.振荡电路

在单片机内部有一个高增益反相放大器,只要在单片机的XTAL1和XTAL2引脚外接石英晶体振荡器就构成了自激振荡器,并在单片机内部产生时钟脉冲信号。

电容器C1和C2的作用是稳定频率和快速起振。

除使用石英晶体振荡器外,若对时钟频率要求不高,还可以用电感或陶瓷振荡器,但使用陶瓷振荡器时要把电容的容量稍微提高一些。

2.分频电路

振荡电路产生的振荡信号并不直接为单片机所使用,而要进行分频,分频后才能得到单片机各种相关的时钟信号。

3.晶振频率

晶振频率是指晶体振荡器的振荡频率,也就是振荡电路的脉冲频率,所以也称振荡频率。

随着技术的发展,单片机的晶振频率还在逐步提高,例现在一些高速芯片的晶振频率已达40MHZ。

晶振频率也是单片机的一项重要性能指标。

因为单片机的时钟信号是通过振荡信号分频得到的,所以晶振频率直接影响着时钟信号频率。

晶振频率高,系统的时钟频率就高,单片机运行速度也就快。

然而晶振频率高对于存储器等的速度和印刷电路板的工艺要求也高。

晶振频率不但影响速度,而且对单片机的工作电流也有一定的影响,所以在选择晶振频率是,要兼顾速度,功耗和线路工艺。

 

4.从外部引入脉冲信号驱动时钟电路

高频振荡信号除了由振荡电路产生外,还可以从外部脉冲源直接引入。

直接引入外部脉冲信号的情况多发生在由多片单片机组成的系统中,因为统一从一个外部脉冲源引入脉冲信号,可以保证单片机之间时钟信号的同步。

一般要求外部信号高电平的持续时间大于20ns,且为频率低于12MHz的方波。

2.1.2复位电路

复位电路用于产生复位信号,通过RST引脚送入单片机,进行复位操作。

复位电路的好坏直接影响单片机系工作的可靠性,因此,要重视复位电路的设计和研究。

 

图2.2复位电路

1.复位电路概述

目前,在单片机系统中共用过4种类型的复位电路,分别为:

积分电路、微分电路、比较器型电路和看门狗型。

其中前3种是在芯片外面用分立元件或集成电路芯片搭建的,而最后一种位于芯片内部,是单片机芯片的一部分。

对于片外复位电路,无论哪种类型,加电复位和手动复位都是必不可少的基本功能。

2.83C31基本复位电路

复位操作有两种基本形式:

一种是上电复位,另一种是按键复位。

复位电路原理图如上图2.2所示

上电复位要求接通电源后,单片机自动实现复位操作。

上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐下降。

RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。

上电与按键均有效的复位电路不仅在上电时可以自动复位,而且在单片机运行期间,利用按键也可以完成复位操作。

所以本设计选用第二种方案,即上电复位与按键复位均有效的复位电路。

2.2LED显示电路

2.2.1LED显示器概述

单片机应用系统最常用的显示器是LED(发光二极管显示器)、LED(液晶显示器)。

这两种显示器可显示数字、字符及系统的状态。

它们的驱动电路简单、易于实现且价格低廉,因此,得到了广泛应用。

本次设计只要显示4位数字,

不需显示图形或字符,因而采用八段数码管做显示器。

LED显示器有共阴极与共阳极两种结构,如图2.3所示。

共阴极LED显示块的发光二极管阴极并接,如图中(a)所示,当某个发光二极管的阳极为高电平时,发光二极管点亮;共阳极LED显示块的发光二极管则阳极并接,如图中(b)所示,当某个发光二极管的阴极为低电平时,发光二极管点亮。

通常的七段LED显示器块中有八个发光二极管,也有人叫做八段显示器,其中七个发光二极管构成七笔字形“8”,一个发光二极管构成小数点。

图2.3七段LED显示原理图

2.2.2LED显示器显示原理

1.段码

所谓段码就是为数码管显示提供的各段状态组合,即字形代码。

7段数码管为7位,8段数码管为8位,用一个字节即可表示。

在段码字节中代码位与各段发光二极管的对应关系如下:

段码

D7

D6

D5

D4

D3

D2

D1

D0

段名

dp

g

f

e

d

c

b

a

段码的值与数码管公共引脚的接法(共阳极和共阴极)有关。

以8段数码管为例,显示十六进制数的段码值在表2.1中列出。

表2.1十六进制段码表

数字

共阳极段码

共阴极段码

数字

共阳极段码

共阴极段码

0

C0H

3FH

9

90H

6FH

1

F9H

06H

A

88H

77H

2

A4H

5BH

B

83H

7CH

3

B0H

4FH

C

C6H

39H

4

99H

66H

D

A1H

5EH

5

92H

6DH

E

86H

79H

6

82H

7DH

F

8EH

71H

7

F8H

07H

FFH

00H

8

80H

7FH

七段显示块与单片机接口非常容易。

只要将一个8位并行输出口与显示块的发光二极管引脚相连即可。

8位并行输出口输出不同的字节数据即可获得不同的数字或字符。

通常将控制发光二极度管的8位字节数据称为段选码。

LED显示工作方式可分为静态显示和动态显示。

在静态显示方式下,共阴极应固定接地,共阳极应固定接高电平。

我们采用的是利用8051芯片I/O口构成键盘/显示接口电路,为简化电路,降低成本,显示将采用动态显示。

在动态显示中将所有相同位的段控线并联在一起,由一个I/O口线控制,8段由8个I/O口控制,而共阴极点或共阳极点分别由相应的I/O口线控制。

LED动态显示电路只需要两个8位I/O口。

其中一个8位I/O口控制段控码,另一个8位I/O口控制位选。

由于所有段控码都由一个8位I/O控制,因此,在同一瞬间,6只LED都会显示相同的字符。

要想每位显示不同的字符,必须采用扫描显示方式。

即在每一瞬间只使某一位显示相应字符。

在此瞬间,段选控制I/O口输出相应字符段选码,位选控制I/O口在该显示位送入选通电平(共阴极送低电平,阳极送高电平)以保证该位显示相应字符。

如此循环,使每位显示该位应显示字符,并保持延时一段时间,以造成视觉暂留效果。

2.3主电路Proteus原理图

 

 

2.4元器件清单

80C311个

RESPACK-81个

电容(22F)2个

电容(33F)1个

电阻(0.2K)9个

电阻(10K)4个

电阻(1K)1个

74LS3731个

74LS2452个

27161个

按键5个

LED4个

 

2.5单片机80C31简介

80C31单片机,它是8位高性能单片机。

属于标准的MCS-51的HCMOS产品。

它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,标准MCS-51单片机的体系结构和指令系统。

80C31内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。

但80C31片内并无程序存储器,需外接ROM。

此外,80C31还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。

在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。

掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。

80C31有PDIP(40pin)和PLCC(44pin)两种封装形式

2.674LS245芯片

74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。

74LS245还具有双向三态功能,既可以输出,也可以输入数据。

当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。

 

当片选端/CE低电平有效时,DIR=“0”,信号由B向A传输;(接收)DIR=“1”,信号由A向B传输;(发送)当/CE为高电平时,A、B均为高阻态。

由于P2口始终输出地址的高8位,接口时74LS245的三态控制端/1G和/2G接地,P2口与驱动器输入线对应相连。

P0口与74LS245输入端相连,/E端接地,保证数据现畅通。

8051的/RD和/PSEN相与后接DIR,使得/RD或/PSEN有效时,74LS245输入(P0.i←Di),其它时间处于输出(P0.i→Di)。

 

2.774LS373芯片

74ls373是常用的地址锁存器芯片,它实质是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74ls373芯片,

  74ls373引脚图

(1).1脚是输出使能(OE),是低电平有效,当1脚是高电平时,不管输入3、4、7、8、13、14、17、18如何,也不管11脚(锁存控制端,G)如何,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈现高阻状态(或者叫浮空状态);

(2).当1脚是低电平时,只要11脚(锁存控制端,G)上出现一个下降沿,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立即呈现输入脚3、4、7、8、13、14、17、18的状态.

  锁存端LE 由高变低时,输出端8 位信息被锁存,直到LE 端再次有效。

 当三态门使能信号OE为低电平时,三态门导通,允许Q0~Q7输出,OE为高电平时,输出悬空。

当74LS373用作地址锁存器时,应使OE为低电平,此时锁存使能端C为高电平时,输出Q0~Q7 状态与输入端D1~D7状态相同;当C发生负的跳变时,输入端D0~D7 数据锁入Q0~Q7。

51单片机的ALE信号可以直接与74LS373的C连接。

74ls373与单片机接口:

 D0-D7为8个输入端。

Q0-Q7为8个输出端。

G是数据锁存控制端;当G=1时,锁存器输出端同输入端;当G由“1”变为“0”时,数据输入锁存器中。

OE为输出允许端;当OE=“0”时,三态门打开;当OE=“1”时,三态门关闭,输出呈高阻状态。

在MCS-51单片机系统中,常采用74LS373作为地址锁存器使用,其连接方法如上图所示。

其中输入端D0-D7接至单片机的P0口,输出端提供的是低8位地址,G端接至单片机的地址锁存允许信号ALE。

输出允许端OE接地,表示输出三态门一直打开。

 

3设计思路与流程图

 

3.1程序设计思路

跑表的运行主要是利用单片机定时/计数器的工作和中断服务的作用完成计时功能的。

首先时钟电路产生单片机工作时所需要的时钟信号,这是单片机能够正常工作的前提,而单片机有无定时的基础以及定多长的时间,这些还需要我们人为的确定。

跑表要运行,首先要有“秒”的计时,因为单片机内部是没有规定的“秒”的概念。

同时它工作在不同的工作方式时,它的计数初值也是不同的。

这就要我们人为首先计算出计数的初值了,这就可以实现所谓的定时了。

如果单片机的定时时间到了的话,那么单片机会自动地产生中断使程序转向中断服务程序执行,中断服务程序执行完了就会返回原程序,等待下一次定时时间的到来再产生中断。

在此基础上,单片机就会按照人为设定的程序执行下去。

使单片机能计算其它时间量。

当然,单片机如果要执行多种不同的计时功能的话,还需要选择多种不同的工作方式,这样才不会使单片机产生混乱。

因为不同的计时功能它的基本计时单位是不同的。

我们知道,跑表的基本计时单位是毫秒,而时钟的基本计时单位却是秒了,因而我们把定时器的初始时间设计为50ms,将其乘以20便可得到我们的时间秒单位。

 

3.2流程图

3.2.1主程序流程图如下:

 

3.2.2INT0中断流程图:

 

3.2.3INT1中断流程图:

 

4仿真软件调试

4.1KeilCx51简介

KeilCx51支持所有8051派生产品。

8051系列产品是以最快的速度发展起来的一种单片机体系结构。

现在,不同的半导体销售商可以提供400多种不同的产品。

新的8051扩展器件,比如Philips80C51MX单片机,由于具有几兆字节的代码空间和数据空间,因此可以应用于大的设计中。

Cx51编译器所提供的新的输出文件格式,可以直接支持多达16MB的代码空间和数据空间。

为了给不同的8051单片机派生产品提供优化支持,Keil公司提供了几种开发工具。

Cx51编译器是一种支持新Philips80C51MX体系结构单片机的C51编译器。

Cx51编译器通常指的是:

C51和Cx51两种编译器。

Cx51优化C编译器是完全依据美国国家标准化协会制定的C语言标准来实现的。

Cx51编译器为适用8051目标而对C编译器进行了改编,因而它不是一种通用的C编译器。

Cx51可为8051单片机产生极其快速和简洁的代码,因而它具有C语言编程的灵活性,又具有汇编语言的代码效率和速度。

通常情况下,用户可能是在uVision2的集成开发环境中使用Cx51编译器。

4.2Proteus简介

Proteus软件是来自英国Labcenterelectronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,它的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,不需要别的,Proteus为你建立了完备的电子设计开发环境。

尤其重要的是ProteusLite可以完全免费,也可以花微不足道的费用注册达到更好的效果;功能最强的Proteus专业版也非常便宜,人人用得起。

Proteus组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。

此系统受益于15年来的持续开发,被《电子世界》在其对PCB设计系统的比较文章中评为最好产品。

Proteus产品系列也包含了我们革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。

用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。

其功能模块:

一个易用而又功能强大的ISIS原理布图工具;PROSPICE混合模型SPICE仿真;ARESPCB设计。

PROSPICE仿真器的一个扩展PROTEUSVSM:

便于包括所有相关的器件的基于微处理器设计的协同仿真。

此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,LED甚至LCD显示CPU模型。

 

4.3电子跑表仿真测试

4.3.1仿真平台

我们采用的是KeilSoftware生产的Cx51编译器。

采用Proteus软件进行电路仿真。

运行在WindowsXP操作系统下。

开启计算机进入KeilC51编译器介面。

仿真电路图如下所示:

 

4.3.2调试程序

打开Keil软件,新建工程;

选择芯片;

新建文档,把编写好代码写入文档并保存了ASM文件;

把保存的文档加载到SourceGroup;

编译程序;

设置转换成16进制;

运行程序的结果;

把编写好的16进制文件输入单片机80C31其进行初始化。

设计总结

 

1、认真审题,看懂题目的要求!

选择适当的课题,不益太简单或者太难。

做到既能把课题完成又能锻炼自己的能力!

2、根据课题要求,复习相关的知识,查询相关的资料。

根据实验条件,找到适合的方案,找到需要的元器件及工具,准备实验。

3、根据课程设计的要求和自己所要增加的功能写好程序流程图,在程序流程图的基础上,根据芯片的功能写出相应的程序。

然后再进行程序调试和相应的修改,以达到能够实现所要求的功能的目的。

4、还要根据实验的实际情况,添加些额外程序来使系统更加的稳定,如开关的消震荡(采用延迟)。

5、程序要尽量做到由各个子程序组成,在有些程序后面最好加注释,这样在程序出错的检查过程中可以更容易查找的到,也更简洁,更明白易懂。

6、在设计控制开关时,注意2个中断的打开和关闭的先后顺序,否则就会出错。

7、这次的单片机课程设计重点是理论与实际的相结合。

不再只读书了。

8、该设计从头到尾都要自己参与,熟悉了对整个设计的过程,更系统的锻炼了自己。

 

设计体会

 

通过本次关于电子跑表的设计,使我们对单片机的课本内容进行了一次系统的复习,加深了我们对知识的理解和应用。

并懂得了它内在的联系和在实际产品中的应用。

本课程设计的重要组成部分在于原理图的设计,还有仿真的调试,和程序的编写。

或许是平时应用较少的缘故,致使在运用时不能融会贯通,在设计过程很难下手。

通过这次的课程设计,使我对单片机有了更深理解,这次课程设计不仅是能力的体现,更是一种耐心的锻炼。

谢谢学校及老师给我们这次增添信心的机会。

在这最后我想要说的一点是关于电子跑表当中的误差问题,产生误差有两个原因:

一是定时器溢出中断信号时,CPU正在执行某指令;二是定时器溢出中断信号时,CPU正在执行某中断服务程序。

为使定时器溢出中断与CPU响应中断实现同步,该方法针对中断响应与中断请求的时间误差,对定时器原有的计数初值进行修改,以延长定时器计数时间,从而补偿误差。

在该方法中,当定时器溢出中断得到响应后,即停止定时器的计数,并读出计数值。

该计数值是定时器溢出后,重新从00H开始对每个机器周期继续加1所计的值。

然后,将这个值与定时器的停止计数时间求和。

若在定时器原计数初值中减去这个和形成新计数初值,则定时器能在新计数初值下使溢出中断与CPU响应中断实现同步,从而达到误差的补偿要求。

 

参考文献

    [1] 付家才.单片机控制工程实践技术. 北京:

化学工业出版社,2004

    [2] 朱定华.单片机原理及接口技术实验.北京:

北方交通大学出版社,2002.

    [3] 张鑫,华臻,陈书谦.单片机原理及应用.北京:

电子工业出版社,

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

当前位置:首页 > 医药卫生 > 基础医学

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

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