基于单片机计数器设计 - 图文

更新时间:2024-04-13 13:56:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

湖北工业大学理学院2015届毕业设计(论文)

毕 业 论 文(设 计)

姓学

名 号

付 磊 1111121220 理学院 11信科2班 基于单片机的计数器设计

徐斌 2015年5月4日

所在学院 专业班级 选

指导教师 日

湖北工业大学理学院2011届毕业设计(论文)

摘 要

近年来随着科技的飞速发展,单片机技术开始应用于各行各业,相应电子产品朝着更专业更高效的趋势发展,愈来愈多的工厂流水线上的产品生产和各种公共区域都需要进行自动计数。基于单片机的计数器有直观和计数精确的优点,目前已经广泛应用在各种行业中。众所周知,计数器是一种重要的时序逻辑电路,广泛应用于各类数字系统中。本文以AT89C51单片机和各种元器件为硬件基础,借助Keil 软件实现对C语言的编译以适用单片机的运行环境,在此之前我们要熟悉单片机方面的知识,特别是要对单片机的各引脚功能和内部结构充分了解,同时要掌握关于单片机的C语言编程,最后软硬件结合完成计数器的设计。在设计过程中不仅运用Proteus仿真软件设计电路图,避免了焊接实物,还要在单片机开发板上,对程序进行试运行,看在实际硬件上是否能够实现所期望的功能,最终设计出一款拥有三位数的计数和进制转换功能的计数器。整个设计方案既省时又高效,节省了设计成本。

关键字:单片机 AT89C51 编译 keil软件 Proteus 仿真 单片机开发板

I

湖北工业大学理学院2011届毕业设计(论文)

Abstract

Recently, with the rapid development of technology, the SCM technology is being applied in various industries,and the electronic products trend to be more professional and more efficient. more and more of the pipeline of products and a variety of business occasions need to automatically count. Based on SCM products constitute automatic counter has the advantages of intuitive and accurate count, now in a variety of commonly used in industry. In this paper, the hardware includes AT89C51 and various components. With the help of the Keil software ,C language is compiled to suit the operating environment of the SCM. Before we should be familiar with the knowledge of SCM , specifically mastering fully the various pin functions and the internal structure,as well as C language. Finally, the count will be finished, based on the combination of hardware and software. In the design process , not only applying the Proteus of simulation software to design the schematics, avoiding welding the material, but also testing the program in the development board of the SCM to achieve the expected goal ,only in this way,we can complete the count with the functions of a three-digit hexadecimal counting and conversion . The project is both time-saving and efficient, saving the cost of design. Keyword: SCM AT89C51 Compile The software of Keil Proteus Simulation the development board of the SCM

II

湖北工业大学理学院2011届毕业设计(论文)

目 录

摘 要 .................................................................................................................................................................... I Abstract ................................................................................................................................................................. II 第一章 绪 论 ....................................................................................................................................................... 1

1.1 选题背景 ............................................................................................................................................... 1

1.1.1 数字单片机的技术发展 ........................................................................................................... 1 1.1.2 以单片机为核心的嵌入式系统 ................................................................................................. 2 1.2 本研究课题的发展趋势 ....................................................................................................................... 2 1.3 设计研究的要求及主要内容应解决的问题 ....................................................................................... 3 第二章 整体设计方案 ......................................................................................................................................... 4

2.1 设计方案 ............................................................................................................................................... 4 2.2 设计原理 ............................................................................................................................................... 4 第三章 硬件电路设计 ......................................................................................................................................... 5

3.1 最小系统设计 ....................................................................................................................................... 5 3.2 原理图 ................................................................................................................................................... 7 3.3 单片机介绍 ........................................................................................................................................... 7 3.4 Proteus软件介绍 .............................................................................................................................. 10 3.5 电路仿真 ............................................................................................................................................. 12 第四章 软件设计 ............................................................................................................................................... 14

4.1 系统软件设计流程图 ......................................................................................................................... 14 4.2 keil软件调试 .................................................................................................................................... 15

4.2.1 软件介绍 ................................................................................................................................. 15 4.2.2 系统概述 ................................................................................................................................. 15 4.2.3 Keil C51单片机软件开发系统的整体结构 ........................................................................ 15

第五章 单片机学习板上的软件调试 ............................................................................................................... 16

5.1 系统性能测试与功能说明 ................................................................................................................. 16 5.2 单片机开发学习板的介绍 ................................................................................................................. 16

5.2.1 单片机开发的一般流程 ......................................................................................................... 16 5.2.2软件开发流程 .......................................................................................................................... 17 5.3 C51编译器和A51汇编器 .................................................................................................................. 17 第六章 结 论 ................................................................................................................................................. 18 致 谢 ................................................................................................................................. 错误!未定义书签。 参考文献 ............................................................................................................................................................. 19 附 录 ................................................................................................................................................................. 21

III

湖北工业大学理学院2011届毕业设计(论文)

第一章 绪 论

1.1 选题背景

随着当今计数器技术的不断发展,计数器在各行各业都有应用,为此生产厂家不断地改革和提升新技术,将计数器技术继续扩展到更深的领域,随之而来的是五花八门的计数器的出现。 发展至今的计数器分为接触式和非接触式计数器,细分为电子计数器,液晶计数器,机械计数器等。计数器的应用遍布各行各业,比如针织、印刷、电缆、电讯、军工、纺织、印染、轻工、机械、开关、矿山、断路器、造纸、制革、织带机、薄膜、试验设备等行业。 1.1.1 数字单片机的技术发展

1.内部结构的变化

单片机的内部有很多的部件,数模、模数转换器,定时器,比较器,串行通信接口,看门狗电路,液晶显示控制器等。

有的单片机常常配置有CAN,这样就可以形成局部网和构成控制网络,而且控制网络对控制较为复杂的系统很有利。在单片机内部设置脉宽调制控制电路,就可以在变频控制中方便使用单片机,形成最具性价比的嵌入式控制系统。

现目前,单片机采用的大多是是三核技术——微控制器和数字信号处理器核,数据和程序存储器核,以及用于外围的集成电路的核。这类单片机相较传统单片机最大改进在于把数字信号处理器和微控制器同时集成到在一块单片机芯片上,大大提高了单片机的性能,这是当前单片机行业取得的最大突破进展之一。

以下介绍目前单片机的现状。近年来,4位单片机的产能在不断增长,但是市场占有比例在不断下降,主要应用于家用电器和电子玩具等方面。8位单片机是单片机市场的主流产品,占有率达60%以上,并且逐年上涨。自80年代中期以来,8X552、μPI-452、MC68HC11、Super8等一些多功能、高性能、大容量、的8位单片机不断地推出,这类单片机他们将代表单片机发展的方向。8位单片机由于其功能强、品种多,正广泛应用于各个领域,是单片机的主流机种。16位单片机自1982年开始推出,已有很大发展,但它的增长没有人预计的快。目前16位单片机价格高产能不到8位的10%,所以应用还不广泛,主要应用于汽车控制、自动控制等方面。

2.功耗、封装及电源电压的发展

现代单片机产品趋向于小型化,高密集化,功率消耗不断降低。

同时,随着近几年贴片工艺技术的出现,单片机也大量采用了各种应用贴片工艺的封装方式,以减少体积。增大能保证单片机正常工作的电源电压输出范围和实现在较低功耗下正常工作的功能是今天单片机发展的趋势。目前,市场上的大部分微控制器都可以在3.2~5.6V的条

1

湖北工业大学理学院2011届毕业设计(论文)

件下工作。而一些可以在2.2~6V的条件下工作的单片机也被某些厂家生产出来,这样大大地打破单片机工作电压的局限性,保证了单片机的稳定性和安全性。

3.工艺上的发展

单片机的需求量不断增加,为了实现大批量高速生产,CMOS技术成为单片机的唯一选择光刻技术越精密,生产的产品越密集化,功耗越低,体积越小,市场竞争力才越强,市场上普遍达到0.6um以上的光刻工艺,有个别大公司的光刻技术的精度已经已达到0.35um甚至是0.25um。

1.1.2 以单片机为核心的嵌入式系统

单片机的另外一个别称就是嵌入式微控制器。在网络全球化的今天,为了让单片机嵌入式系统搭上顺风车,与因特网结合起来已成为一种必然选择。只有将传统的因特网理论和嵌入式设备的实践都颠倒过来,才能实现嵌入式设备和因特网的连接。为了使嵌入式设备能切实可行地和因特网连接起来,必须设计出专门服务于嵌入式设备网络服务器,这样的话我们就可以实现网络控制。

当前,单片机行业急需要解决的是8位或16位的嵌入式产品怎样可以实现实现和互联网的互连。TASKING公司首先提出将EMIT软件包和有关的软件打包组装,构建一个多功能的开发软件,在此开发环境下,解决上诉问题。为此,嵌入互联网联盟ETI正在精诚合作,努力创造出解决嵌入式系统和英特网连接的划时代性方案 。

1.2 本研究课题的发展趋势

单片机技术已经发展了40多年,而电子计数器却也走过30多个春秋。从单片机的发展史来看,它始终坚持以提高微处理器性能及实现超大规模集成电路为主要发展方向,以提供广泛应用于各行各业的单片机技术为动力。而对于计数器而言,人们追求的是提高计数精度、稳定度等,这是计数器的核心技术。单片机在突飞猛进发展的同时功能的要求也越来越高,以应付各行各业各种复杂多变的环境因素,比如在高温环境下我们要求单片机的元件抗氧化性好性能稳定;在潮湿的地方要求元件绝缘性好,或则附带干燥功能;在长期保持工作状态的情况下保证稳定性;在工业生产中,最好附带提醒警报功能。单片机技术的开发是以市场需要为导向,针对性的解决各种实际问题为目标,充分突出了单片机的个性化特点。以前的单片机处理器单一以MCS51/96等处理器为中心,结构死板不知变通,最终导致体积偏大,而且好多功能不能实现的诸多缺点。现在的单片机系统有以下优点:实际功耗偏低,有一定的运算能力,单片机产品更新速度超快,开发时间短暂,所以市场要求开发工具同时具备简单、廉价、功能完善等特点。

2

1.3 设计研究的要求及主要内容应解决的问题

要求:

1.实现000~999的计数。

2.并能实现二进制、八进制、十进制和十六进制的相互转换。 3.当数码管位数满时自动清零。 应解决问题:

1、为实现计数进制转换功能应该选择哪些元器件,如何与51单片机进行连接。 2、采用何种器件实现二、八、十、十六进制的相互转换。 3、当数码管位数满时,采用何种方式实现计数器清零。

3

第二章 整体设计方案

2.1 设计方案

51系列单片机内部号有许多功能部件,而且实现功能扩展较为容易,所以系统采用51系列单片机来实现原理图中的,来实现进制转换,000 ~ 999 的十进制计数,位满清零等设计要求。INT0引脚的外部输入信号的会定期进行采样,故实现功能扩展较为容易。

2.2 设计原理

本设计利用AT89C51单片机来制作一个简易的手动计数器,在AT89C51单片机的P1.0-P1.2管脚接按键k1、k2、k3,分别作为手动计数、手动进制转换、手动复位按钮,其可以模仿脉冲信号;用单片机的P0.0-P0.7管脚接一个共阴数码管,用于000 ~ 999计数的数字显示。

硬件电路图如图2-1所示:

图 2-1 硬件电路图

4

第三章 硬件电路设计

3.1 最小系统设计

图3-1 单片机最小系统的结构图

单片机的最小系统是由电源、复位部分、晶振部分、输入输出部分等组成,下面介绍其的组成部分。 1.电源部分引脚

VCC 40 电源端 GND 20 接地端(图中省略)

标准工作电压一般规定为为5V,而实际AT89C51工作电压范围是2.7~ 6V,电源的引脚功能一样。

2.外接晶振部分引脚

图3-2 晶振连接的内部、外部方式图

5

片内振荡器的反相放大器输入端和输出端分别是XTAL1和XTAL2,外部振荡器工作时,XTAL1端接收外部振荡信号;使用内部振荡器工作时,振荡脉冲会被时钟发生器进行二分频,就是说要想时钟信号为3MHz那么晶振就必须设为6MHz,此处采用的是内部方式。AT89C51单片机的自激振荡器是由用高增益反相放大器和外晶体谐振器构成的。外接晶体谐振器又和电容C1C2构成一个并联谐振电路,接在放大器的反馈回路中。为了保证系统能快速起振,温度保持稳定,震荡器频率适宜以及震荡器的稳定,尽可能的选择电容值约为22μF陶瓷电容,将电容C1C2和晶体振荡器等一系列的元件应尽可能贴着焊接到单片机芯片上,以减少寄生电容,从而更好地保证系统振荡器的稳定工作。 3.复位部分

单片机小系统有两种方式实现系统的复位操作:上电自动复位和手动按键复位。所谓上电复位就是指在接通电源后,自动实现复位操作,而所谓手动复位是指在电源接通单片机运行期间,用按钮开关空置单片机的复位。

在振荡器运行时,当复位脚会出现有两个机器周期24个振荡周期以上的高电平,只要这个脚保持高电平,AT89C51便可以循环复位,P0-P3引脚均变为高电平,而且特殊功能寄存器和程序计数器的内容都会自动清零。同时当复位脚接低电平时,芯片的ROM区域开始从00H处运行程序。

常用的复位电路如下图所示:

图3-3 常用复位电路图

4.输入输出引脚

(1) P0端口是一个8位漏极开路型双向I/O端口,端口置1时作高阻抗输入端;端口置0时,作为输出口。在访问外部程序和外部数据存储器时,P0作为地址数据总线的低八位,此时内部的上拉电阻起作用。

(2) P1端口是一个带有内部上拉电阻的8位双向I/0端口。输出时端口置0,输入时端口置1,端口被内部上拉电阻拉到高电平。

6

(3) P2端口是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。输入时端口置1,内部上拉电阻将端口拉到高电平。在访问外部的程序和16位数据存储器时,P2口输出高8位的地址;而在访问8位地址的外部数据存储器时其引脚上信号被锁定。

(4) P3端口是一个带有内部上拉电阻的8位双向端口。输出时可驱动4个TTL。输入时端口置1,端口被内部上拉电阻拉到高电平。

3.2 原理图

图3-4 实现三位计数功能的原理图

3.3 单片机介绍

单片机是单片微型计算机的简称,输入输出接口电路、存储器、中央处理器、定时器/计数器等部件被集中到一块集成电路芯片上,构成了完整的微型计算机。

当今MCS-51单片机系列是非常有代表性的单片机之一,它是由Intel公司生产的。MCS-51结构的典型特点、总线体系的完善性、集中管理模式特点的SFR、位操作系统和面向控制功能丰富的位操作指令系统,这5大特点是51单片机的5大优势,它促使单片机快速进步。80C51是51单片机的典型芯片之一。所以很多厂家开始了单片机的生产与制造,特别是80C51,我这些和80C51具有兼容性的单片机被我们叫作80C51系列。尤其是在这些年80C51系列单片机更是有着突飞猛进的发展,并且出现了一代一代性能更完善,功能更强大的单片机。在创新的过程中他们主要是对控制功能进行了完善,例如:I/O口的提速等,并且在功耗方面做了完善和改进,总线的串行扩展、总线的控制性能等方面都得到了提升。

7

80C51集成的EEPROM被当做用户的程序存储器,这是89CXX系列的代表,它是由ATMEL COMPANY生产制造的。EEPROM的添加对80C51的结构及其相应的指令系统是没有影响的。Philips公司生产的83/87CXX系列既不会使80C51的结构和指令系统有所变化,而且还省去了并行扩展总线,使单片机的生产成本降低。

在保持与80C51兼容的前提下,Infineon公司推出的C500系列单片机,增强了单片机电磁兼容性能,增加了CAN总线接口,广泛应用于工业控制、汽车电子、通信和家电领域。

鉴于80C51系列在硬件方面的的广泛性、代表性和先进性以及指令系统的兼容性等诸多优点,可将其作为单片机的代表产品进行介绍;至于其他类型的单片机,在深入学习和掌握了80C51单片机之后再去学习已不是什么难事。

下面对80C51系列单片机作进一步说明:

图3-5 8051内部结构图

8051共有4096个8位掩膜ROM,两个16位的可编程定时/计数器,4组8位I/O口,一个全双工串行通信口,两个定时/计数器中断、两个外中断和一个串行中断和一个时钟电路。程序存储器用于存放用户程序、原始数据或表格;定时/计数器用于实现定时或计数产生中断时用于实现程序转向;并行输入输出用于对外部数据的传输;全双工串行口用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器也可以当同步移位器使用;中断系统可满足不同的控制要求,并具有2级的优先级别选择;内置的时钟电路可用于产生脉冲时序,但8051单片机需外置振荡电容。

单片机有两种结构:一种是哈佛(Harvard)结构,它的特点是程序存储器和数据存储器分开;另一种是普林斯顿(Princeton)结构,它的特点是程序存储器与数据存储器合二为一。而MCS-51系列单片机大多数采用的是第一种结构。

下图是MCS-51系列单片机的内部结构示意图3-6:

8

图3-6 MCS-51结构图

MCS-51的引脚说明:

8051是采用双列直接DIP结构的MCS-51系列单片机中的代表,他还进行了40Pin封装,右图就是它们的引脚配置。该单片机一共有四十个引脚,中断口线与P3口线复用,两根用于正电源和地线,4组8位共32个I/O口,剩余两根同于外置石英振荡器的时钟线。以下我们一一介绍引脚的功能:

MCS-51的引脚说明:如图3-7

图3-7双列直插式封装引脚图

引脚9: 复位信号复用引脚,当芯片通电后,时钟电路开始工作,而在此引脚上若出现24个时钟周期以上的高电平,系统就会被初始化。芯片初始化后,P0-P3输出口均表现为高电平,专用寄存器也会被清0。一旦该引脚变为低电平后,系统就会从第一个地址开始执行程序。 8051的复位方式可以分为两种:一个是自动复位,另一个是手动复位。此外,该引脚还是复用脚,如果外部电源断开,他就会连接内部电源,保证数据不丢失。

9

见下图3-8为两种复位方式和两种时钟方式:

图3-8复位方式图与时钟方式图

引脚30:当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。如果单片机是EPROM,在编程其间, ·Pin29:

将用于输入编程脉冲。

当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据

将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。 ·Pin31:EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA端必须接地。在编程时,EA/Vpp脚还需加上21V的编程电压。

3.4 Proteus软件介绍

Proteus软件在仿真单片机的EDA工具软件中是最好的和最具实用性的。它受到致力于单片机开发应用者、单片机爱好者以及从事单片机教学的教师的青睐。为了实现从概念到产品的完整设计,节省产品设计成本,Proteus软件将PCB设计,原理图布图,单片机与外围电路协同仿真,代码调试四大块都完美结合起来。

原理图先在PROTEUS中绘制好,然后将C语言程序通过Keil软件转化成目标代码文件:*.HEX,并输入单片机中,我们就可以看到模拟的实物运行情况。在单片机课堂中PROTEUS 是我们的教学先进助手。PROTEUS可将单片机实例运行过程和功能形象化。Proteus仿真单片机中所用虚拟的连接线路、元器件等能与传统的单片机实验硬件对应起来,即只要能仿真出来,且所选元器件不出错,那么焊接出来的实物图也能够运行。这在很大程度上改进了传统的单片机教学,先进行元器件的选择,再连接和检测电路,然后进行电路修改和软件调试最后运行出正确现象。学生做课程设计和毕业设计就是将书本上的知识投入到实践中,这是为将来就业作铺垫。PROTEUS软件最大的优势避免了做实物时元器件的采购,以及PCB板的制作,以往设计

10

湖北工业大学里学院2011届毕业设计(论文)

单片机产品,往往要消耗大量时间做实物,而且即使做出实物,可能会因为一点误差而运行不出理想结果。Proteus为了解决这个问题,提供了大量而有较为完整的虚拟元器件库,提供了质量优良种类完整的虚拟仪器、仪表以及可以无限次修改电路设计的仿真环境,具有很大的灵活性,因而为有单片机爱好的的学生提供了创新和实践的平台。

随着单片机设计技术的发展,许多设计部门在前期的设计阶段经常采用计算机仿真技术的手段。它仿真的效果可以与实物统一,而且灵活性好。既能节省资金又能减少消耗,还能避免工程制造的风险。目前在单片机开发应用中PROTEUS软件得到愈来愈广泛的应用。能进行单片机系统仿真设计的Proteus软件是计算机多媒体技术和虚拟仿真技术结合的产物,经常用于培养大学生的仿真软件操作能力和电路设计能力;在做各种单片机设计的项目中,对学生进行使用 Proteus开发环境的培训,节省了硬件投入的成本,而且学生普遍认为使用该软件学习单片机更容易接受,更容易得到提升。实践证明,先在 Proteus开发环境中进行系统仿真,再进行硬件检验调试,能大大提高单片机产品开发效率,因此,Proteus值得广泛推广。 功能特点:

Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是: (1)原理布图

(2)PCB自动或人工布线 (3)SPICE电路仿真 革命性的特点: (1)互动的电路仿真

用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。

(2)仿真处理器及其外围电路

可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。 功能模块:

能原理图设计(ISIS)

丰富的器件库:超过27000种元器件,可方便地创建新元件; 智能的器件搜索:通过模糊搜索可以快速定位所需要的器件;

智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间; 支持总线结构:使用总线器件和总线布线使电路设计简明清晰;

可输出高质量图纸:通过个性化设置,可以生成印刷质量的BMP图纸,可以方便地供WORD、POWERPOINT等多种文档使用。 完善的电路仿真功能(Prospice)

PROSPICE混合仿真:基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真; 超过27000个仿真器件:可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件,

11

湖北工业大学里学院2011届毕业设计(论文)

Labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件;

多样的激励源:包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav文件)、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入;

丰富的虚拟仪器:13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等;

生动的仿真显示:用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动;

高级图形仿真功能(ASF):基于图标的分析可以精确分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等,还可以进行一致性分析; 独特的单片机协同仿真功能(VSM)

3.5 电路仿真

在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。

用PROTUES软件,画出M=999的计数器原理图,得到的图如下所示

图3-11 总原理图

12

湖北工业大学里学院2011届毕业设计(论文)

PROTEUS 是单片机课堂教学的先进助手。

PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。 它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。

课程设计、毕业设计是学生走向就业的重要实践环节。由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台

随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTEUS也能获得愈来愈广泛的应用。

使用Proteus 软件进行单片机系统仿真设计, 是虚拟仿真技术和计算机多媒体技术相结合的综合运用,有利于培养学生的电路设计能力及仿真软件的操作能力;在单片机课程设计和全国大学生电子设计竞赛中,我们使用 Proteus 开发环境对学生进行培训,在不需要硬件投入的条件下,学生普遍反映,对单片机的学习比单纯学习书本知识更容易接受,更容易提高。实践证明,在使用 Proteus 进行系统仿真开发成功之后再进行实际制作,能极大提高单片机系统设计效率。因此,Proteus 有较高的推广利用价值。

13

湖北工业大学里学院2011届毕业设计(论文)

第四章 软件设计

系统的软件设计也是工具系统功能的设计。单片机软件的设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。单片机的软件设计通常要考虑以下几个方面的问题:

(1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总体结构,使软件开发清晰、简洁和流程合理;

(2)培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。既便于调试、链接,又便于移植和修改;

(3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数; (4)绘制程序流程图; (5)合理分配系统资源;

(6)为程序加入注释,提高可读性,实施软件工程; (7)注意软件的抗干扰设计,提高系统的可靠性。

4.1 系统软件设计流程图

主程序先是开始,然后赋初值,本设计采用的是动态显示,所以在赋玩初值后显示程序不断被调用。

图4-1主程序流程图

14

湖北工业大学里学院2011届毕业设计(论文)

4.2 keil软件调试

4.2.1 软件介绍

Keil软件是开发MCS-51系列单片机的主流软件,各大仿真机厂商纷纷全面支持Keil软件。Keil将C编译器、宏汇编、连接器、库管理和仿真调试器通过一个集成开发环境组合在一起。对于使用51系列单片机的爱好者来说学习好这款软件很有必要。目前在国内我们可以用到的只有该软件与我国的仿真器配套,所以想使用C语言编程,那么Keil几乎就是唯一选择,而且因为他的集成环境方便易用、软件仿真调试工具强大,即使是用汇编语言进行编程,开发单片机也会事半功倍。 4.2.2 系统概述

德国Keil公司推出的Keil C51软件是当今主流的51系列单片机开发软件,Keil C51软件拥有丰富的库函数,功能强大的集成开发调试工具,和Windows界面。还有很重要的一点是C语言编译后生成的汇编代码效率非常高,而且生成的汇编代码都较容易理解。尤其是在开发大型软件时我们直接用汇编语言进行编译难度呈几何倍数上升,所以此时一般选择高级语言比如C语言。与汇编相比,C语言在功能上、结构性、可读性、可维护性上都有很大的优势。 4.2.3 Keil C51单片机软件开发系统的整体结构

C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

15

湖北工业大学里学院2011届毕业设计(论文)

第五章 单片机学习板上的软件调试

5.1 系统性能测试与功能说明

演示过程:默认为计数状态,显示三位数,时间会按实际时间以秒为最小单位变化,从000—999的计数,按k1键模仿脉冲信号,数字加1,按k2键转换进制,按k3(复位键)重000开始,数字位满也会自动清零,重新计数。

5.2 单片机开发学习板的介绍

5.2.1 单片机开发的一般流程

单片机开发的一般过程是首先进行硬件设计,然后根据硬件和系统的要求在开发环境中编写程序,经多次仿真器把程序调试成功后,再通过烧录器把程序写到单片机里。

确定任务 确定待开发产品的功能、所实现的指标、成本,进行可行分析。 完成时间。

总体设计 机型选择:8位、16位还是32位。 外型设计、功耗、使用环境等。

硬件设计 根据功能确定显示(液晶还是数码管)、存储(空间大小)、定时器、中断、通信、打印、A/D、D/A及其他I/O操作。

绘制原理图及布线图。

选购元件图、焊接线路板、组装、调试。 软件设计 建立数学模型,确定算法及数据结构。 进行资源分配及结构设计。 绘制流程图。

设计、编制各子程序模块。 仿真、调试、固化。 样机联调 软硬件结合起来调试。 找错、修改软硬件

进行软硬件测试,进行老化实验,高、低温实验,振动试验。 产品定型 编制使用说明书,技术文件。

制定生产工艺流程,形成工艺,进入小批量生产

16

湖北工业大学里学院2011届毕业设计(论文)

5.2.2软件开发流程

当你使用Keil Software工具时,你的项目开发流程和其它软件开发项目的流程极其

1、创建一个项目,从器件库中选择目标器件,配置工具设置。 2、用C语言或汇编语言创建源程序。 3、用项目管理器生成你的应用。 4、修改源程序中的错误。 5、测试,连接应用。

相似。

uVision2 集成开发环境集成了一个项目管理器,一个功能丰富、有错误提示的编辑器,以及设置选项,生成工具,在线帮助。利用uVision2创建你的源代码并把它们组织到一个能确定你的目标应用的项目中去。uVision2自动编译,汇编,连接你的嵌入式应用,并为你的开发提供一个单一的焦点。

5.3 C51编译器和A51汇编器

源代码由uVision2 IDE创建,并被C51编译或A51汇编。编译器和汇编器从源代码生成可重定位的目标文件。

Keil C51编译器完全遵照ANSI C语言标准,支持C语言的所有标准特性。另外,直接支持8051结构的几个特性被添加到里面。

Keil A51宏汇编器支持8051及其派生系列的全部指令集。

软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。软件调试可以采取离线调试和在线调试两种方式。前者不需要硬件仿真器,可借助于软件仿真器即可;后者一般需要仿真系统的支持。本次课题,Keil软件来调试程序,通过各个模块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。

仿真部分采用protus 7.0 professional软件,此软件功能强大且操作较为简单,可以很容易的实现各种系统的仿真。

首先打开protus 7.0 professional软件,在元件库中找到要选用的所有元件,然后进行原理图的绘制;绘制好后再选择wave6000已经编译好的*.hex文件,选择运行,观察显示结果,根据显示的结果和课题的要求再修改程序,再运行查,直到满足要求。

17

湖北工业大学里学院2011届毕业设计(论文)

第六章 结 论

在写毕业设计的时候,烦恼过,生气过,笑过,骂过。但是,总的来说这次毕业设计让我受益匪浅。写论文的过程就是是一个不断学习的过程,写论文前感觉大学四年所学的书本知识都忘记了,对于准备要写的论文有点担忧,但是没办法伸头是一刀缩头也是一刀,所以硬着头皮开始了论文的准备工作。毕竟,书本知识还不是很扎实,只有重头开始学。幸运的是在大三做有关单片机的课程设计时有认真地完成,记得当时是做基于单片机的万历表,功能比较多,程序也有点多,所以在认真完成那个课程设计之后,收获也很多。所以我的这次论文是以课程设计为原型,在此基础上修改软件程序,完成本次设计任务的。毕竟有一年多没接触单片机,许多相关的知识已经很模糊了,不过最后对单片机设计问题都有较深刻的认识,我也终于体验到课外实践对学习的重要性。学习好书本知识是第一步,在这个基础上我们还需要通过实践将知识转化为自身的能力。通过这次毕业设计,我对大学所学知识进行了一次复习和巩固,并通过自己的理解加上一些奇妙构思,圆满完成了这次毕业设计。书本知识是基础,但是大多数人在没看到书本知识给自己带来的“直接好处”的情况下都放弃了知识的原始积累,当他需要的时候,就会怨天尤人,如果不看书而想把设计做好,无异于水中捞月。撰写论文的过程就是巩固专业知识的过程,在不断实践过程中真正掌握知识,并应用于实践。

这次毕业设计不仅是学校对我们大学生四年来学习成果的验收,也是我们检验自己的机会,最重要的是我们从中收获良多,为将来走进社会投入工作时作好铺垫,毕竟书呆子是没有解决实际问题的能力的。这大概就是目前所有高校都会要求专业课程要做相应课程设计的原因吧!在完成毕业设计之后我发现我的理论水平有了很大的提高,这样才能知识应用于实践,提高动手和解决实际问题的能力。做毕业设计对每个大学生都有深刻的意义,它让我们了解到理论与生产实践的差距,以及两则结合的必要性,培养我们应用所学东西解决实际问题的能力。

在写论文期间,我查阅很多资料,也借用了课堂上接触不到的工具,比如单片机学习板,它为我解决了很多不必要的麻烦,这款产品是很不错的学习工具,可以掌握许多单片机的基础应用,便于我们开发产品。

总而言之,我要感谢这次毕业设计,我明白了要做一个项目,需要有整体的框架,创新的思维,以及解决问题能力。所以在此之前要做充分准备,至少对项目有一个全面的了解,即掌握相应的知识,其次,在知道要解决哪些问题的前提下,知道采用哪种方式解决,最后就是要善于利用工具或资源,最后什么问题都能迎刃而解。

18

湖北工业大学里学院2011届毕业设计(论文)

致 谢

毕业论文即将完成,这是我在大学本科期间最后一次学习机会,同时也意味着我即将离开这个教育我四年的母校。最近的半年一直忙于考研复试,论文的准备和修改以及从事业务员的工作。其间的发生的点点滴滴,或喜或悲的事件让我心情随之起伏,今天想来仍旧唏嘘不已。不过我收获颇多,对这个社会认识,对学习的观点都有更新的认识,所幸我乐观向上,加上一些运气成分顺利渡过难关。

这篇论文一共耗时三个月,虽然在写作过程中遇到无数的困难与挫折,但是本着学习的心态,把握最后一次机会,将大学四年所学知识重新温习一遍,尤其是与专业息息相关的学科更加用心复习,将书本知识化为己,摆脱读一门扔一门的大学“常态”,虽然大家都传闻:在大学认真读书和成绩好没什么用,最后找工作时区别并不大,而且面试大部分都用不上。在这种错误认识下,大家都不好好学习,这种行为和想法都是大错特错的。之所以有些知识貌似真的在工作的时候没有用到,那是因为书上的知识,我们只是浅尝则止,没有升入开展,更没有联系实际,将我们的知识与生产挂钩,也没有树立正确的学习心态,容易受到外来干扰,在“大环境”下随波逐流,虚度光阴。对于论文写作我十分感谢我的指导老师徐斌老师,他无时无刻不在对我们进行无私的指导和帮助,并且不厌其烦地修改我错漏百出的论文,对论文的设计也提出了宝贵的意见,最终协助我圆满地完成了毕业设计的工作。此次的毕业设计是对我大学四年所学专业知识的综合检验。这不仅涉及到对书本基本原理的理解,也涉及到对问题的分析能力,尤其是一些应用软件的应用。在本次毕业设计中,我对与专业相关的常用的电子软件有了深入的了解,同时也发现到自己知识的匮乏和能力的有限。让我立志在今后的学习道路中更加努力地学习和不断地给自己充电。

最后,我再一次表达对帮助过我的同学和老师最衷心的感谢并致以最崇高的敬意,是你们在我前进的道路上指引方向,并且纠正身上不足,拥有你们就是拥有我人生最大的财富。

19

湖北工业大学里学院2011届毕业设计(论文)

参考文献

[1]阎石.数字电子技术基础.清华大学电子学教研组

[2]张建平.MCS-51在单片机计数器中的应用.陕西工业职业技术学院信息工程学院,陕西咸阳 712000

[3]史延龄.8253可编程定时/计数器组成多位计数器.工程兵指挥学院221003 [4]江苏、周荻.设计三位数及以上的单片机计数器

[5]袁博鲁.一种单片高速四位计数器/移位寄存器.电子工业部第24研究所,重庆

[6]骆德汉.MCS-51单片机计数器/定时器在测控系统中的应用.合肥经济技术学院机电系 [7]张毅刚.MCS-51单片机应用设计.哈尔滨工业大学出版社

[8]王锋业、陶庆荣.基于AT89C2051的胶球检测计数器设计.青岛科技大学 [9]赵红赟、张友鹏、郑伟.基于CPLD和单片机的脉冲计数器设计与实现.兰州交通大学自动化与电气工程学院, 甘肃兰州730070,2009.6

[10]朱海星、丁晨阳、葛赛赛.基于单片机的纸张计数器设计.扬州职业大学,江苏扬州 [11]廖清.使用单片机的多位计数器设计改进.电子报,2013.5 [12]温冬婵.汇编语言程序设计.清华大学出版社,2004.

[13]马忠梅.单片机的C语言应用程序设计.北京航空航天大学出版社,1998. [14]谭晖.NRF无线SOC单片机原理与高级应用.北京航空航天大学出版社,2009. [15]张丽娜.51单片机系统开发与实践.北京航空航天大学出版社,2013. [16]郑峰.51单片机典型应用开发范例大全.中国铁道出版社,2011. [17]李学海.经典80C51单片机快速进阶与实作.清华大学出版社,2012. [18]顾涛.单片机系统设计与实例开发.北京大学出版社,2013.

[19]Borko H,Bernier C L.Indexing concepts and methods .New York:Academic. [20]谢自美.电子线路设计实验测试[M].武汉:华中科技大学出版社,2010. [21]李斯伟,雷新生.数据通信技术[M].北京:人民邮电出版社,2009.

[22]徐炜,姜晖,崔琛.通信电子技术[M].西安:西安电子科技大学出版社,2008. [23]朱定华.微机原理与接口技术[M].北京:清华大学出版社,2010. [24]李大寨.传感器电子制作DIY[J].北京:科学出版社,2011.

[25]Katsuhiko Ogata.Moden Control Engineering.Publishing house of electronics industry,2000.

20

湖北工业大学里学院2011届毕业设计(论文)

附 录

计数部分实物图:

程序:

#include /*

* 延时 1611 us(晶振频率为 12 MHz)) */

void delay(void) {

#pragma ASM MOV A,#70

delay?_?:

21

湖北工业大学里学院2011届毕业设计(论文)

}

MOV B,#10 DJNZ B,$

DJNZ ACC,delay?_? #pragma ENDASM

/* 计数上限 */ #define LIMIT 999

/*当前计数(0~LIMIT) */ data int count;

/* 当前进制 (可为 2, 8, 10, 16) */ data char radix;

/* 对应 8 个数码管 */ data char shine[8];

/* 字段码表 */

code char shine_table[16] = { 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,

/* 0~3 */ /* 4~7 */ /* 8~b */

0x39,0x5e,0x79,0x71 /* c~f */ }; /*

* 刷新数组 shine 的内容 */

void refresh(void)

22

湖北工业大学里学院2011届毕业设计(论文)

{ for (i = 7, j = count; i > -1; i--, j /= radix)

shine[i] = shine_table[j % radix]; int i, j;

} /*

* 将数组 shine 的内容送数码管显示 */

void show(void) { static char i = 0;

P0 = ~(1 << i); #pragma ASM SETB P2.7 CLR P2.7 #pragma ENDASM P0 = shine[i]; #pragma ASM SETB P2.6 CLR P2.6 #pragma ENDASM

if (++i == 8)

i = 0;

delay();

23

湖北工业大学里学院2011届毕业设计(论文)

}

data char lock; /* 用于避免 \一次按键, 多次处理\

sbit K1 = P3^4;/* 模拟计数输入信号 */ sbit K2 = P3^5;/* 转换进制 */ sbit K3 = P3^6;/* 清零 */

void init(void) { count = 0; radix = 10; lock = 0; refresh();

}

void do_it(void) { if (K1 == 0) { if (++count > LIMIT)

count = 0;

}

if (K2 == 0) { switch (radix) { case 2: radix = 8;

break;

case 8: radix = 10;

break;

24

湖北工业大学里学院2011届毕业设计(论文)

}

}

case 10:

radix = 16; break;

case 16:

radix = 2; break;

default: }

;

if (K3 == 0) { }

refresh();

count = 0;

void main(void) { }

init();

for (; ; lock = tmp, show())

if ((tmp = ~P3 & 0x70 ? 1 : 0) > lock)

do_it();

char tmp;

25

本文来源:https://www.bwwdw.com/article/1asp.html

Top