2024年1月28日发(作者:虎谷芹)
交通与汽车工程学院
课程设计说明书
课 程 名 称: 微机原理及应用课程设计
课 程 代 码: 8234570
题 目: 60s倒计时
年级/专业/班:
学 生 姓 名:
学 号:
开 始 时 间: 2012 年 07 月 02 日
完 成 时 间: 2012 年 07 月 06 日
课程设计成绩:
学习态度及平技术水平与实际时成绩(30) 能力(20)
创新(5)
说明书(计算书、图纸、分析报告)撰写质量(45)
总 分(100)
指导教师签名: 年 月 日
微机原理及应用课程设计说明书
目 录
摘 要.................................................................. - 2 -
1 引 言 ................................................................. - 3 -
1.1 问题的提出 ........................................................ - 3 -
1.2任务与分析 ........................................................ - 3 -
2 系统方案设计 ........................................................... - 3 -
2.1 系统设计方案 ...................................................... - 3 -
2.2 系统总体框图 ...................................................... - 4 -
3 系统硬件电路设计 ........................................................ - 4 -
3.1 AT89C51单片机 ..................................................... - 4 -
4 系统软件设计 ........................................................... - 6 -
4.1 proteus软件环境介绍 ............................................... - 6 -
4.2 Protel软件环境介绍 ................................................ - 7 -
4.3系统软件分析....................................................... - 8 -
4.3.2倒计时显示模块选择 ............................................ - 8 -
4.3.2控制器选择 .................................................. - 10 -
4.3.3 键盘选择 ................................................... - 11 -
4.3.4时钟频率电路的设计 ........................................... - 12 -
4.3.5复位电路的设计............................................... - 12 -
4.4 程序流程图 ....................................................... - 14 -
主程序流程图 ............................................................ - 14 -
5 系统调试过程 .......................................................... - 17 -
结 论 ................................................................. - 20 -
致 谢 ................................................................. - 21 -
- 1 -
微机原理及应用课程设计说明书
摘 要
随着科学技术的发展和普及,各种各样的竞赛越来越多,其中抢答器的作用也越来越重要。本文设计出以AT89C51单片机为核心的八路抢答器,采用了数字显示器直接指示,自动锁存显示结果,并自动复位的设计思想,它能根据不同的抢答输入信号,经过单片机的控制处理并产生不同的与输入信号相对应的输出信号,最后通过LED数码管显示相应的路数,即使两组的抢答时间相差几微秒,也可分辨出是哪组优先按下的按键,充分利用了单片机系统结构简单、功能强大、可靠性好、实用性强的特点。
本设计是以60S,利用AT89C51单片机及外围接口实现的倒计时功能,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行倒计时,同时使数码管能够正确地显示时间。按钮可以实现复位、暂停、开始的功能生。
关键词: 89C51单片机 LED显示器
- 2 -
微机原理及应用课程设计说明书
1 引 言
1.1 问题的提出
随着人类科技文明的发展,人们对于时钟的要求在不断地提高。时钟已不仅仅被看成一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。高精度、多功能、小体积、低功耗,是现代时钟发展的趋势。在这种趋势下,时钟的数字化、多功能化已经成为现代时钟生产研究的主导设计方向。本文正是基于这种设计方向,以单片机为控制核心,设计制作一个多功能的数字时钟。
本设计基于单片机技术原理,以单片机芯片AT89C51作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个多功能数字时钟系统。该时钟系统主要由时钟模块、数码管显示模块、按键控制复位模块以及信号提示模块组成。系统具有简单清晰的操作界面,可随时进行时间调整。同时,该时钟系统还具有功耗小、成本低的特点,具有很强的实用性。由于系统所用元器件较少,单片机所被占用的I/O口不多,因此系统具有一定的可扩展性。
1.2任务与分析
本次设计的系统的控制中心是89C51单片机。首先,在Protel软件环境中进行硬件电路图的设计。然后在8051软件环境中进行系统的软件编程,并进行程序源文件的编译和调试,最后生成.hex文件。此.hex文件是硬件电路运行实现的源代码来源。把.hex文件加载到AT89C51单片机芯片,然后在Proteus软件环境中运行硬件电路,时钟的日期就可以正常显示了。
本设计的系统主要由:AT89C51为中央处理芯片,LED显示器,振荡电路。
2 系统方案设计
2.1 系统设计方案
通过一秒定时,使初值每隔一秒减一,然后通过P0,P2口,让LED显示。由于涉及到个位十位的显示所以会用到除法操作,因而会用到寄存器B和累加器A。另外,涉及到LED显示的部分,会用到查表指令和段码。
- 3 -
微机原理及应用课程设计说明书
2.2 系统总体框图
图2-1 系统总体框图
当程序启动时,初值60,每隔一秒初值减一,当倒计时结束时候,点亮灯泡。
3 系统硬件电路设计
3.1 AT89C51单片机
AT89C51单片机是美国Atmel公司生产低电压,高性能CMOS 8位单片机,片内含4k
bytes的可反复擦写的只读程序存储器(EPROM)和128 bytes的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存取技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash 存储单元,功能强大。AT89C51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。
图3-1为AT89C51单片机的基本组成功能方块图。由图可见,在这一块芯片上,集成了一台微型计算机的主要组成部分,其中包括CPU、存储器、可编程I/O口、定时器/计数器、串行口等,各部分通过内部总线相连。下面介绍几个主要部分。
振荡器和时序数据存储器
程序存储器4 定时器/计数器
OSC KB ROM 256 B RAM/SFR 2 ×16
AT89C51CPU
可编程 I/O 可编程全双工
64 KB总线 扩展内中断
控制器 串行口
图 3-1 单片机结构框图
单片机管脚说明:
- 4 -
微机原理及应用课程设计说明书
图 3-2 AT89C51单片机管脚图
ATMEL公司的AT89C51是一种高效微控制器。采用40引脚双列直插封装形式。AT89C51单片机是高性能单片机,因为受引脚数目的限制,所以有不少引脚具有第二功能。
VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0 口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写1时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入1后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
P3口管脚 备选功能
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
- 5 -
微机原理及应用课程设计说明书
P3.2 INT0(外部中断0)
P3.3 INT1(外部中断1)
P3.4 T0(记时器0外部输入)
P3.5 T1(记时器1外部输入)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
ALE/PROG:当访问外部存储器时,地址锁存允许端的输出电平用于锁存地址的地址字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。
PSEN:外部程序存储器的选通信号端。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VP:当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:反向振荡器的输出,如采用外部时钟源驱动器件,应不接。
4 系统软件设计
4.1 proteus软件环境介绍
本系统的硬件设计首先是在Proteus软件环境中仿真实现的。Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,它的电路仿真是互动的。针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试。如果有显示及输出,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,还能看到运行后输入输出的效果。Proteus建立了完备的电子设计开发环境,尤其重要的是Proteus Lite可以完全免费,也可以花微不足道的费用注册达到更好的效果[2]。
Proteus是目前最好的模拟单片机外围器件的工具。可以仿真51系列、AVR、PIC等 - 6 -
微机原理及应用课程设计说明书
常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件...)。其实Proteus 与 multisim比较类似,只不过它可以仿真MCU,当然,软件仿真精度有限,而且不可能所有的器件都找得到相应的仿真模型,用开发板和仿真器当然是最好选择,可是初学者拥有它们的可能性比较小。当然,硬件实践还是必不可少的。在没有硬件的情况下,Proteus能像pspice 仿真模拟/数字电路那样仿真MCU及外围电路。另外,即使有硬件,在程序编写早期用软件仿真一下也是很有必要的。Proteus软件主要具有以下几个方面的特点:
1、设计和仿真软件Proteus 是一个很有用的工具,它可以帮助学生和专业人士提高他们的模拟和数字电路的设计能力。
2、它允许对电路设计采用图形环境,在这种环境中,可以使用一个特定符号来代替元器件,并完成不会对真实电路造成任何损害的电路仿真操作。
3、它可以仿真仪表以及可描述在仿真过程中所获得的信号的图表。
4、它可以仿真目前流行的单片机,如PICS, ATMEL-AVR, MOTOROLA, 8051 等。
5、在设计综合性方案中,还可以利用ARES开发印制电路板。
4.2 Protel软件环境介绍
Protel印制板设计软件包是澳大利亚protel technology公司与1990年推出的电子CAD产品,具有方便、易学、实用、快速以及高速度、高步通率的特点。它采用了分层次下拉窗口菜单结构形式,用户基本上不需要记背太多的键盘命令,用鼠标点击菜单命令就能操作,protel有着很高的自动布线布通率。布通率是电子产CAD产品的一项重要指标,它反映电子元件在电路图中连接关系有多少能在印刷版图中实现。在设计常用的单、双面印制板时只要选择适当的元件布局和布线策略方法,protel就可以轻易的达到98%-100%的布通率。对于极少数不能布通的定方,protel可以用飞线指示出来,引导用户用手工方法连通。另外,protel有强大的宏命令设置功能,利用宏命令功能多定义的热键可以大大提高操作速度
[1]。
Protel对微机的软硬件配置要求很低:cpu在8088以上,dos2.0以上版本,内存640kb以上,双软件(或一个软件一个硬盘),单色显示器(多层板设计时最好用彩色),各种兼容打印机。也能在Windows9X平台的模拟DOS下运行。
Protel已成为印制板设计加工方面的工业标准。据初步统计protel在CAD的市场占有率达 95%,成为电子产品制造业界的首选CAD软件。
- 7 -
微机原理及应用课程设计说明书
4.3系统软件分析
任何一个应用系统,它们都有着自己的硬件系统和软件系统,少了任何一个部分都不可能称之为一个完整的应用系统,它们之间是相互依存的一个整体,硬件系统是软件系统的一个基础和前提,为软件系统提供了一个操作平台;而软件系统是硬件系统的灵魂,它对硬件系统起到扩充和完善的作用。可想而知软件系统与硬件系统同等重要,下面为系统软件设计过程:
(1) 共阴极LED段码
由于涉及到数字的显示,而且用到了共阴极LED显示器,所以必须在查表指令中查段码,来显示个位和十位的数字。
(2) 一秒的定时
可以通过不断查询TF0,来确定T0的溢出,通过不断循环来进行1秒定时。
(3) 数字的个位十位
通过除法操作可以得到数据的个位十位,数据除以10,其商为十位,余数为个位。
4.3.2倒计时显示模块选择
显示模块主要是显示倒计时的时间。
在使用传统的数码管显示。数码管具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护,同时其精度高,称量快,精确可靠,操作简单。数码显示是采用BCD编码显示数字,程序编译容易,资源占用较少。
数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;
按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。
led数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。led数码管 - 8 -
微机原理及应用课程设计说明书
广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。
数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
8字上沿与下沿的距离。比外型高度小。通常用英寸来表示。范围一般为0.25-20英寸。
长——数码管正放时,水平方向的长度;宽——数码管正放时,垂直方向上的长度;高——数码管的厚度。
四位数码管中,第二位8与第三位8字中间的二个点。一般用于显示时钟中的秒。
静态时,推荐使用10-15mA;动态时,16/1动态扫描时,平均电流为4-5mA,峰值电流50-60mA。
查引脚排布图,看一下每段的芯片数量是多少?当红色与黄绿色时,使用1.9V乘以每段的芯片串联的个数;当绿色/蓝色时,使用3.1V乘以每段的芯片串联的个数。
数码管是一类显示屏 通过对其不同的管脚输入相对的电流,会使其发亮,从而显示出数字能够显示 时间、日期、温度等所有可用数字表示的参数。
由于它的价格便宜 使用简单 在电器 特别是家电领域应用极为广泛,空调、热水器、冰箱等等。绝大多数热水器用的都是数码管,其他家电也用液晶屏与荧光屏。
恒流驱动与非恒流驱动对数码管的影响
由于发光二极管基本上属于电流敏感器件,其正向压降的分散性很大, 并且还与温度有关,为了保证数码管具有良好的亮度均匀度,就需要使其具有恒定的工作电流,且不能受温度及其它因素的影响。另外,当温度变化时驱动芯片还要能够自动调节输出电流
的大小以实现色差平衡温度补偿。
即使是短时间的电流过载也可能对发光管造成永久性的损坏,采用恒流驱动电路后可防止 由于电流故障所引起的数码管的大面积损坏。
另外,我们所采用的超大规模集成电路还具有级联延时开关特性,可防止反向尖峰电压对发光二极管的损害。
超大规模集成电路还具有热保护功能,当任何一片的温度超过一定值时可自动关断,并且可在控制室内看到故障显示。
关于亮度一致性的问题是一个行业内的常见问题。有二个大的因素影响到亮度一致性。一是使用原材料芯片的选取,一是使用数码管时采取的控制方式。
- 9 -
微机原理及应用课程设计说明书
显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。在这里我们使用的是七段数码管显示,通常在显示上我们采用的方法一般包括两种:一种是静态显示,一种是动态显示。其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多;动态显示的特点是:显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。在本设计中根据实际情况采用的是动态显示方法。4位七段数码管显示电路如下图所示。
图 4-1 七段数码管显示电路图
上图中数码管采用的是2个七段共阳数码管,其中A~H段分别接到单片机的P0口,由单片机输出的P0口数据来决定段码值,由单片机来决定当前该显示的是哪一位。在图中还有一个排阻,连接在P0口上,用作P0口的上拉电阻,保证P0口没有数据输出时候处于高电平状态。
通过查表法,将其在数码管上显示出来,其中P0口为十位码输入端,P2口为个位码输入段。在这里我们通过查表将字型码送给7段数码管显示的数字。
4.3.2控制器选择
控制器主要用于对倒计时进行控制。
采用ATMEL公司的AT89C51作为系统控制器的CPU方案。单片机算术运算功能强,软件编程灵活、自由度大,可以用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。
- 10 -
微机原理及应用课程设计说明书
图4-2 AT89C51元件图
4.3.3 键盘选择
键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。键盘按结构形式可以分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者则用硬件方法来产生键码。在单片机中使用的都是非编码键盘,因为非编码键盘结构简单,成本低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键盘等。
本设计采用独立式键盘
键盘接口中使用3根I/O线,键盘中就有几个按键,键盘接口使用了3根I/O口线,该键盘就有3个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。因此可以根据实际需要对键盘中的按键灵活的编码。如图2-2。
最简单的编码方式就是根据I/O输入口所直接反映的相应按键,按下的状态进行编码,称按键直接状态码,对于这样编码的独立式键盘,CPU可以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据这个值直接进行按键识别,这样形式的键盘结构简单,按键识别容易。
独立式键盘的缺点是需要占用比较多的I/O口线,当单片机应用系统键盘中需要的按键比较少或I/O口线比较富余时,可以采用这样类型的键盘。
- 11 -
微机原理及应用课程设计说明书
图 4-3 抢答按键及调整按键
4.3.4时钟频率电路的设计
单片机必须在时钟的驱动下才能工作。在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。时钟电路如下图所示。
图4-4 外部振荡源电路
一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容C1,C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。
单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数。图中时钟频率为12MHz。
4.3.5复位电路的设计
单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如下所示:
- 12 -
微机原理及应用课程设计说明书
图4-5 复位电路
- 13 -
微机原理及应用课程设计说明书
4.4 程序流程图
主程序流程图
主程序
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: MOV R2,#30
MOV P1,#0FFH
LOOP1:MOV A,R2
MOV B,#10
DIV AB
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
MOV R7,#20
LOOP0: MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
JNB TF0,$
CLR TF0
DJNZ R7,LOOP0
DEC R2
CJNE R2,#0FFH,LOOP1
CLR P1.0
HERE: AJMP HERE
- 14 -
微机原理及应用课程设计说明书
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6F
END
主程序流程图:
显示值减一
1秒定时
显示
赋值(R2,P1)
开始
N
减一后的值是否等于FFH
Y
- 15 -
亮灯(P1.0赋值)
结束
微机原理及应用课程设计说明书
1秒定时器程序
MOV R7,#20
LOOP0: MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
JNB TF0,$
CLR TF0
DJNZ R7,LOOP0
一秒定时器流程图:
N
Y
赋定时器初值
开定时器
等待T0溢出
TF0清零
判断是否循环20次
一秒定时- 16 -
微机原理及应用课程设计说明书
5 系统调试过程
通过上面的硬件设计和软件设计过程,设计的工作已经基本完成,接下来的工作就是对所设计好的应用系统进行调试。通过调试可以检查出系统出现的一些错误,从而进行下一步的修改。
(1)在Protel 99 SE中,对硬件电路图进行ERC电气规则检查。
图5-1 protel原理图
图5-2 ERC电气规则检查结果
- 17 -
微机原理及应用课程设计说明书
(2)程序调试
程序经过调试显示“0错误,0警告”。表示程序调试通过。
图5-3 程序调试通过示意图
(4) PCB板绘制
图5-4 PCB板图
- 18 -
微机原理及应用课程设计说明书
(3)protues调试
图5-5 protues仿真图
- 19 -
微机原理及应用课程设计说明书
结 论
本次设计运用到了AT89C51芯片,通过LED显示器,来进行倒计时的显示、暂停和复位,在本次设计了中,通过仿真,我实现了芯片的定时功能,端口的输入输出功能。对AT89C51芯片的各种功能有了深刻的印象。
- 20 -
微机原理及应用课程设计说明书
致 谢
在陈飞老师的指导下,我完成了本次设计。本设计从选题到完成,每一步都是在他的指导下完成的,倾注了老师大量的心血。另外,本设计的完成也离不开其他老师和各位同学给我的建议和帮助,是他们让我明白了团队合作的精神。在此,我谨向陈飞老师和帮助过我的老师和同学们,表示崇高的敬意和衷心的感谢!
- 21 -
微机原理及应用课程设计说明书
参考文献
[1]《Protel99SE EDA 技术及应用》徐峥颖编著,北京:机械工业出版社,2005
[2]《单片机系统的protues设计与仿真》张靖武编著,北京:电子工业出版社,2007
[3]《单片机原理及接口技术》李朝青编著,北京:北京航空航天大学出版社,2005
[4]《MCS-51单片机应用开发实用子程序》边春远编著,北京:人民邮电出版社,2005
- 22 -
2024年1月28日发(作者:虎谷芹)
交通与汽车工程学院
课程设计说明书
课 程 名 称: 微机原理及应用课程设计
课 程 代 码: 8234570
题 目: 60s倒计时
年级/专业/班:
学 生 姓 名:
学 号:
开 始 时 间: 2012 年 07 月 02 日
完 成 时 间: 2012 年 07 月 06 日
课程设计成绩:
学习态度及平技术水平与实际时成绩(30) 能力(20)
创新(5)
说明书(计算书、图纸、分析报告)撰写质量(45)
总 分(100)
指导教师签名: 年 月 日
微机原理及应用课程设计说明书
目 录
摘 要.................................................................. - 2 -
1 引 言 ................................................................. - 3 -
1.1 问题的提出 ........................................................ - 3 -
1.2任务与分析 ........................................................ - 3 -
2 系统方案设计 ........................................................... - 3 -
2.1 系统设计方案 ...................................................... - 3 -
2.2 系统总体框图 ...................................................... - 4 -
3 系统硬件电路设计 ........................................................ - 4 -
3.1 AT89C51单片机 ..................................................... - 4 -
4 系统软件设计 ........................................................... - 6 -
4.1 proteus软件环境介绍 ............................................... - 6 -
4.2 Protel软件环境介绍 ................................................ - 7 -
4.3系统软件分析....................................................... - 8 -
4.3.2倒计时显示模块选择 ............................................ - 8 -
4.3.2控制器选择 .................................................. - 10 -
4.3.3 键盘选择 ................................................... - 11 -
4.3.4时钟频率电路的设计 ........................................... - 12 -
4.3.5复位电路的设计............................................... - 12 -
4.4 程序流程图 ....................................................... - 14 -
主程序流程图 ............................................................ - 14 -
5 系统调试过程 .......................................................... - 17 -
结 论 ................................................................. - 20 -
致 谢 ................................................................. - 21 -
- 1 -
微机原理及应用课程设计说明书
摘 要
随着科学技术的发展和普及,各种各样的竞赛越来越多,其中抢答器的作用也越来越重要。本文设计出以AT89C51单片机为核心的八路抢答器,采用了数字显示器直接指示,自动锁存显示结果,并自动复位的设计思想,它能根据不同的抢答输入信号,经过单片机的控制处理并产生不同的与输入信号相对应的输出信号,最后通过LED数码管显示相应的路数,即使两组的抢答时间相差几微秒,也可分辨出是哪组优先按下的按键,充分利用了单片机系统结构简单、功能强大、可靠性好、实用性强的特点。
本设计是以60S,利用AT89C51单片机及外围接口实现的倒计时功能,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行倒计时,同时使数码管能够正确地显示时间。按钮可以实现复位、暂停、开始的功能生。
关键词: 89C51单片机 LED显示器
- 2 -
微机原理及应用课程设计说明书
1 引 言
1.1 问题的提出
随着人类科技文明的发展,人们对于时钟的要求在不断地提高。时钟已不仅仅被看成一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。高精度、多功能、小体积、低功耗,是现代时钟发展的趋势。在这种趋势下,时钟的数字化、多功能化已经成为现代时钟生产研究的主导设计方向。本文正是基于这种设计方向,以单片机为控制核心,设计制作一个多功能的数字时钟。
本设计基于单片机技术原理,以单片机芯片AT89C51作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个多功能数字时钟系统。该时钟系统主要由时钟模块、数码管显示模块、按键控制复位模块以及信号提示模块组成。系统具有简单清晰的操作界面,可随时进行时间调整。同时,该时钟系统还具有功耗小、成本低的特点,具有很强的实用性。由于系统所用元器件较少,单片机所被占用的I/O口不多,因此系统具有一定的可扩展性。
1.2任务与分析
本次设计的系统的控制中心是89C51单片机。首先,在Protel软件环境中进行硬件电路图的设计。然后在8051软件环境中进行系统的软件编程,并进行程序源文件的编译和调试,最后生成.hex文件。此.hex文件是硬件电路运行实现的源代码来源。把.hex文件加载到AT89C51单片机芯片,然后在Proteus软件环境中运行硬件电路,时钟的日期就可以正常显示了。
本设计的系统主要由:AT89C51为中央处理芯片,LED显示器,振荡电路。
2 系统方案设计
2.1 系统设计方案
通过一秒定时,使初值每隔一秒减一,然后通过P0,P2口,让LED显示。由于涉及到个位十位的显示所以会用到除法操作,因而会用到寄存器B和累加器A。另外,涉及到LED显示的部分,会用到查表指令和段码。
- 3 -
微机原理及应用课程设计说明书
2.2 系统总体框图
图2-1 系统总体框图
当程序启动时,初值60,每隔一秒初值减一,当倒计时结束时候,点亮灯泡。
3 系统硬件电路设计
3.1 AT89C51单片机
AT89C51单片机是美国Atmel公司生产低电压,高性能CMOS 8位单片机,片内含4k
bytes的可反复擦写的只读程序存储器(EPROM)和128 bytes的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存取技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash 存储单元,功能强大。AT89C51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。
图3-1为AT89C51单片机的基本组成功能方块图。由图可见,在这一块芯片上,集成了一台微型计算机的主要组成部分,其中包括CPU、存储器、可编程I/O口、定时器/计数器、串行口等,各部分通过内部总线相连。下面介绍几个主要部分。
振荡器和时序数据存储器
程序存储器4 定时器/计数器
OSC KB ROM 256 B RAM/SFR 2 ×16
AT89C51CPU
可编程 I/O 可编程全双工
64 KB总线 扩展内中断
控制器 串行口
图 3-1 单片机结构框图
单片机管脚说明:
- 4 -
微机原理及应用课程设计说明书
图 3-2 AT89C51单片机管脚图
ATMEL公司的AT89C51是一种高效微控制器。采用40引脚双列直插封装形式。AT89C51单片机是高性能单片机,因为受引脚数目的限制,所以有不少引脚具有第二功能。
VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0 口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写1时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入1后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
P3口管脚 备选功能
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
- 5 -
微机原理及应用课程设计说明书
P3.2 INT0(外部中断0)
P3.3 INT1(外部中断1)
P3.4 T0(记时器0外部输入)
P3.5 T1(记时器1外部输入)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
ALE/PROG:当访问外部存储器时,地址锁存允许端的输出电平用于锁存地址的地址字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。
PSEN:外部程序存储器的选通信号端。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VP:当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:反向振荡器的输出,如采用外部时钟源驱动器件,应不接。
4 系统软件设计
4.1 proteus软件环境介绍
本系统的硬件设计首先是在Proteus软件环境中仿真实现的。Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,它的电路仿真是互动的。针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试。如果有显示及输出,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,还能看到运行后输入输出的效果。Proteus建立了完备的电子设计开发环境,尤其重要的是Proteus Lite可以完全免费,也可以花微不足道的费用注册达到更好的效果[2]。
Proteus是目前最好的模拟单片机外围器件的工具。可以仿真51系列、AVR、PIC等 - 6 -
微机原理及应用课程设计说明书
常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件...)。其实Proteus 与 multisim比较类似,只不过它可以仿真MCU,当然,软件仿真精度有限,而且不可能所有的器件都找得到相应的仿真模型,用开发板和仿真器当然是最好选择,可是初学者拥有它们的可能性比较小。当然,硬件实践还是必不可少的。在没有硬件的情况下,Proteus能像pspice 仿真模拟/数字电路那样仿真MCU及外围电路。另外,即使有硬件,在程序编写早期用软件仿真一下也是很有必要的。Proteus软件主要具有以下几个方面的特点:
1、设计和仿真软件Proteus 是一个很有用的工具,它可以帮助学生和专业人士提高他们的模拟和数字电路的设计能力。
2、它允许对电路设计采用图形环境,在这种环境中,可以使用一个特定符号来代替元器件,并完成不会对真实电路造成任何损害的电路仿真操作。
3、它可以仿真仪表以及可描述在仿真过程中所获得的信号的图表。
4、它可以仿真目前流行的单片机,如PICS, ATMEL-AVR, MOTOROLA, 8051 等。
5、在设计综合性方案中,还可以利用ARES开发印制电路板。
4.2 Protel软件环境介绍
Protel印制板设计软件包是澳大利亚protel technology公司与1990年推出的电子CAD产品,具有方便、易学、实用、快速以及高速度、高步通率的特点。它采用了分层次下拉窗口菜单结构形式,用户基本上不需要记背太多的键盘命令,用鼠标点击菜单命令就能操作,protel有着很高的自动布线布通率。布通率是电子产CAD产品的一项重要指标,它反映电子元件在电路图中连接关系有多少能在印刷版图中实现。在设计常用的单、双面印制板时只要选择适当的元件布局和布线策略方法,protel就可以轻易的达到98%-100%的布通率。对于极少数不能布通的定方,protel可以用飞线指示出来,引导用户用手工方法连通。另外,protel有强大的宏命令设置功能,利用宏命令功能多定义的热键可以大大提高操作速度
[1]。
Protel对微机的软硬件配置要求很低:cpu在8088以上,dos2.0以上版本,内存640kb以上,双软件(或一个软件一个硬盘),单色显示器(多层板设计时最好用彩色),各种兼容打印机。也能在Windows9X平台的模拟DOS下运行。
Protel已成为印制板设计加工方面的工业标准。据初步统计protel在CAD的市场占有率达 95%,成为电子产品制造业界的首选CAD软件。
- 7 -
微机原理及应用课程设计说明书
4.3系统软件分析
任何一个应用系统,它们都有着自己的硬件系统和软件系统,少了任何一个部分都不可能称之为一个完整的应用系统,它们之间是相互依存的一个整体,硬件系统是软件系统的一个基础和前提,为软件系统提供了一个操作平台;而软件系统是硬件系统的灵魂,它对硬件系统起到扩充和完善的作用。可想而知软件系统与硬件系统同等重要,下面为系统软件设计过程:
(1) 共阴极LED段码
由于涉及到数字的显示,而且用到了共阴极LED显示器,所以必须在查表指令中查段码,来显示个位和十位的数字。
(2) 一秒的定时
可以通过不断查询TF0,来确定T0的溢出,通过不断循环来进行1秒定时。
(3) 数字的个位十位
通过除法操作可以得到数据的个位十位,数据除以10,其商为十位,余数为个位。
4.3.2倒计时显示模块选择
显示模块主要是显示倒计时的时间。
在使用传统的数码管显示。数码管具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护,同时其精度高,称量快,精确可靠,操作简单。数码显示是采用BCD编码显示数字,程序编译容易,资源占用较少。
数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;
按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。
led数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。led数码管 - 8 -
微机原理及应用课程设计说明书
广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。
数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
8字上沿与下沿的距离。比外型高度小。通常用英寸来表示。范围一般为0.25-20英寸。
长——数码管正放时,水平方向的长度;宽——数码管正放时,垂直方向上的长度;高——数码管的厚度。
四位数码管中,第二位8与第三位8字中间的二个点。一般用于显示时钟中的秒。
静态时,推荐使用10-15mA;动态时,16/1动态扫描时,平均电流为4-5mA,峰值电流50-60mA。
查引脚排布图,看一下每段的芯片数量是多少?当红色与黄绿色时,使用1.9V乘以每段的芯片串联的个数;当绿色/蓝色时,使用3.1V乘以每段的芯片串联的个数。
数码管是一类显示屏 通过对其不同的管脚输入相对的电流,会使其发亮,从而显示出数字能够显示 时间、日期、温度等所有可用数字表示的参数。
由于它的价格便宜 使用简单 在电器 特别是家电领域应用极为广泛,空调、热水器、冰箱等等。绝大多数热水器用的都是数码管,其他家电也用液晶屏与荧光屏。
恒流驱动与非恒流驱动对数码管的影响
由于发光二极管基本上属于电流敏感器件,其正向压降的分散性很大, 并且还与温度有关,为了保证数码管具有良好的亮度均匀度,就需要使其具有恒定的工作电流,且不能受温度及其它因素的影响。另外,当温度变化时驱动芯片还要能够自动调节输出电流
的大小以实现色差平衡温度补偿。
即使是短时间的电流过载也可能对发光管造成永久性的损坏,采用恒流驱动电路后可防止 由于电流故障所引起的数码管的大面积损坏。
另外,我们所采用的超大规模集成电路还具有级联延时开关特性,可防止反向尖峰电压对发光二极管的损害。
超大规模集成电路还具有热保护功能,当任何一片的温度超过一定值时可自动关断,并且可在控制室内看到故障显示。
关于亮度一致性的问题是一个行业内的常见问题。有二个大的因素影响到亮度一致性。一是使用原材料芯片的选取,一是使用数码管时采取的控制方式。
- 9 -
微机原理及应用课程设计说明书
显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。在这里我们使用的是七段数码管显示,通常在显示上我们采用的方法一般包括两种:一种是静态显示,一种是动态显示。其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多;动态显示的特点是:显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。在本设计中根据实际情况采用的是动态显示方法。4位七段数码管显示电路如下图所示。
图 4-1 七段数码管显示电路图
上图中数码管采用的是2个七段共阳数码管,其中A~H段分别接到单片机的P0口,由单片机输出的P0口数据来决定段码值,由单片机来决定当前该显示的是哪一位。在图中还有一个排阻,连接在P0口上,用作P0口的上拉电阻,保证P0口没有数据输出时候处于高电平状态。
通过查表法,将其在数码管上显示出来,其中P0口为十位码输入端,P2口为个位码输入段。在这里我们通过查表将字型码送给7段数码管显示的数字。
4.3.2控制器选择
控制器主要用于对倒计时进行控制。
采用ATMEL公司的AT89C51作为系统控制器的CPU方案。单片机算术运算功能强,软件编程灵活、自由度大,可以用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。
- 10 -
微机原理及应用课程设计说明书
图4-2 AT89C51元件图
4.3.3 键盘选择
键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。键盘按结构形式可以分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者则用硬件方法来产生键码。在单片机中使用的都是非编码键盘,因为非编码键盘结构简单,成本低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键盘等。
本设计采用独立式键盘
键盘接口中使用3根I/O线,键盘中就有几个按键,键盘接口使用了3根I/O口线,该键盘就有3个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。因此可以根据实际需要对键盘中的按键灵活的编码。如图2-2。
最简单的编码方式就是根据I/O输入口所直接反映的相应按键,按下的状态进行编码,称按键直接状态码,对于这样编码的独立式键盘,CPU可以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据这个值直接进行按键识别,这样形式的键盘结构简单,按键识别容易。
独立式键盘的缺点是需要占用比较多的I/O口线,当单片机应用系统键盘中需要的按键比较少或I/O口线比较富余时,可以采用这样类型的键盘。
- 11 -
微机原理及应用课程设计说明书
图 4-3 抢答按键及调整按键
4.3.4时钟频率电路的设计
单片机必须在时钟的驱动下才能工作。在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。时钟电路如下图所示。
图4-4 外部振荡源电路
一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容C1,C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。
单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数。图中时钟频率为12MHz。
4.3.5复位电路的设计
单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如下所示:
- 12 -
微机原理及应用课程设计说明书
图4-5 复位电路
- 13 -
微机原理及应用课程设计说明书
4.4 程序流程图
主程序流程图
主程序
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: MOV R2,#30
MOV P1,#0FFH
LOOP1:MOV A,R2
MOV B,#10
DIV AB
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
MOV R7,#20
LOOP0: MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
JNB TF0,$
CLR TF0
DJNZ R7,LOOP0
DEC R2
CJNE R2,#0FFH,LOOP1
CLR P1.0
HERE: AJMP HERE
- 14 -
微机原理及应用课程设计说明书
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6F
END
主程序流程图:
显示值减一
1秒定时
显示
赋值(R2,P1)
开始
N
减一后的值是否等于FFH
Y
- 15 -
亮灯(P1.0赋值)
结束
微机原理及应用课程设计说明书
1秒定时器程序
MOV R7,#20
LOOP0: MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
JNB TF0,$
CLR TF0
DJNZ R7,LOOP0
一秒定时器流程图:
N
Y
赋定时器初值
开定时器
等待T0溢出
TF0清零
判断是否循环20次
一秒定时- 16 -
微机原理及应用课程设计说明书
5 系统调试过程
通过上面的硬件设计和软件设计过程,设计的工作已经基本完成,接下来的工作就是对所设计好的应用系统进行调试。通过调试可以检查出系统出现的一些错误,从而进行下一步的修改。
(1)在Protel 99 SE中,对硬件电路图进行ERC电气规则检查。
图5-1 protel原理图
图5-2 ERC电气规则检查结果
- 17 -
微机原理及应用课程设计说明书
(2)程序调试
程序经过调试显示“0错误,0警告”。表示程序调试通过。
图5-3 程序调试通过示意图
(4) PCB板绘制
图5-4 PCB板图
- 18 -
微机原理及应用课程设计说明书
(3)protues调试
图5-5 protues仿真图
- 19 -
微机原理及应用课程设计说明书
结 论
本次设计运用到了AT89C51芯片,通过LED显示器,来进行倒计时的显示、暂停和复位,在本次设计了中,通过仿真,我实现了芯片的定时功能,端口的输入输出功能。对AT89C51芯片的各种功能有了深刻的印象。
- 20 -
微机原理及应用课程设计说明书
致 谢
在陈飞老师的指导下,我完成了本次设计。本设计从选题到完成,每一步都是在他的指导下完成的,倾注了老师大量的心血。另外,本设计的完成也离不开其他老师和各位同学给我的建议和帮助,是他们让我明白了团队合作的精神。在此,我谨向陈飞老师和帮助过我的老师和同学们,表示崇高的敬意和衷心的感谢!
- 21 -
微机原理及应用课程设计说明书
参考文献
[1]《Protel99SE EDA 技术及应用》徐峥颖编著,北京:机械工业出版社,2005
[2]《单片机系统的protues设计与仿真》张靖武编著,北京:电子工业出版社,2007
[3]《单片机原理及接口技术》李朝青编著,北京:北京航空航天大学出版社,2005
[4]《MCS-51单片机应用开发实用子程序》边春远编著,北京:人民邮电出版社,2005
- 22 -