电路仿真论文

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机设计电子时钟
学院:物理与信息科学学院
专业:电子信息科学与技术
姓名:陈伟挺
学号:281060150
目录
1.单片机的构成 (4)
2.晶振的特性 (5)
3.芯片擦除 (5)
4.单片机的引脚说明 (6)
5.LED简介 (8)
6.设计 (10)
7结论 (13)
摘要:本次设计中的LED数码管电子时钟电路采用24小时制记时方式,本次设计采用AT89C51单片机的扩展芯片和6个PNP三极管做驱动,由三块LED数码管构成的显示系统,与传统的基于8/16位普通单片机的LED显示系统相比较,本系统在不显著地增加系统成本的情况下,可支持更多的LED数码管稳定显示。

设计采用AT98C51单片机,使用5V电源供电,并且在按键的作用下可以进行调时,调分,复位功能。

计时数据的更新在计算机C语言的驱动下每秒自动进行一次,但不需程序干预其输出状态。

关键字:AT89C51 数码管LED 时钟
正文
1.单片机的构成
AT89C51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多种功能的I/O线等一台计算机所需要的基本功能部件,AT89C51单片机
单片机内包含下列几个部件:
(1)一个8位CPU;
(2)一个片内振荡器及时钟电路;
(3)4K字节ROM程序存储器;
(4)128字节RAM数据存储器;
(5)两个16位定时器/计数器;
(6)可寻址64K外部数据存储器和64K外部程序存储器空间的控制电路;
(7)32条可编程的I/O线(四个8位并行I/O端口);
(8)一个可编程全双工串行口;
(9)具有五个中断源、两个优先级嵌套中断结构。

其内部机构框图如图2.2所示:
2.振荡器(晶振)特性:
XTAL1(19脚)和XTAL2(18脚)分别为反向放大器的输入和输出,通过这两个引脚接上晶振,其频率为12.000MHz。

3.芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。

在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

此外,AT89C51单片机设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。

在闲置模式下,CPU停止工作,但RAM,定时器,计数器,串口和中断系统仍在工作。

在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

为了满足一些应用系统的特殊要求,有时要进行一些系统的扩展设计以弥补单片机内部资源的不足。

单片机的扩展系统通过并行I/O接口或串行I/O接口做总线,在外部扩展程序存储器、数据存储器或输入/输出接口及其他功能部件以满足一些控制系统的特殊要求,AT89C51单片机的扩展系统结构如图2.3所示。

4.AT89C51单片机的引脚说明
AT89C51单片机采用40条引脚双列直插式器件,引脚除5V(40脚)和电源地(20脚)外,其功能分为时钟电路、控制信号、输入/输出三大部分,逻辑框图及引脚图分别如图2.4(a)(b)所示
AT89C51单片机的内部硬件结构中除了程序存储器由FPEROM取代了87C51单片机的EPROM外,其余部分完全相同,其管脚说明如下:(1)VCC:供电电压
(2)GND:接地
(3)时钟电路
XTAL1(19脚)——芯片内部振荡电路(单级反相放大器)输入端。

XTAL2(18脚)——芯片内部振荡电路(单级反相放大器)输出端。

(4)控制信号
RST(9脚)复位信号:时钟电路工作后,在此引脚上将出现两个机器周期的高电平,芯片内部进行初始复位,P0口~P3口输出高电平,将初值07H写入堆栈指针。

ALE(30脚)地址锁存信号:当访问外部存储器时,P0口输出的低8位地址由ALE输出的控制信号锁存到片外地址锁存器,P0口输出地址低8位后,又能与片外存储器之间传送信息。

另外,ALE可驱动4个TTL门。

(29脚)片外程序存储器读选通:低电平有效,作为程序存储器的读信号,输出负脉冲,将相应的存储单元的指令读出并送到P0口,可驱动8个TTL 门。

/Vpp(30脚):当为高电平且PC值小于0FFFH时,CPU执行内部程序存储器程序;当为低电平时,CPU仅执行外部程序存储器程序。

(5)I/O接口
P0口(P0.0~P0.7,39~32脚)三态双向口:P0口结构包括一个输出锁存器、两个三态缓冲器、一个输出驱动电路和一个输出控制端。

P0口做地址/数据复用总线使用。

若从P0口输出地址数据信息,此时控制端为高电平,若从P0口输入数据指令信息时,引脚信号应从输入三态缓冲器进入地址总线,它可驱动8个TTL门。

P0~P3口上的“读-修改-写”功能,其操作是先将字节的全部8位数读入,再通过指令修改某些位,然后将新的数据写回到口锁存器中。

P1口(P1.0~P1.7,1~8脚)准双向口:P1口做通用I/O接口使用,P1口的每一位口线能独立地作用于输入线,P1口可驱动4个TTL门。

P2口(P2.0~P2.7,21~28脚)通用I/O接口:它做通用I/O接口使用时,是一个准双向口,此时转换开关MUX倒向左边,输出极与锁存器相连,引脚可作为用户I/O口线使用,输入/输出操作与P1口完全相同,P2口做地址总线使用。

当系统中接有外部存储器时,P2口用于输出高8位地址A8~A15,这时在CPU控制下,转换开关MUX倒向右边,接通内部地址总线。

P2口的口线状态取决于片内输出的地址信息,这些信息来源于PC、DPTR等。

在外接程序存储器中,由于访问外部存储器操作连续不断,P2口不断送出地址高8位。

AT89C51单片机的P2口一般只做地址总线使用,不做I/O接口直接连外部设备使用。

P3口(P3.0~P3.7,10~17脚)双功能口:P3口做通用I/O接口使用,输出功能控制线为高电平,与非门的输出取决于锁存器的状态,此时锁存器Q
端的状态与其引脚状态是一致的。

在这种情况下,P3口的结构和操作与P1口相同。

P3口第二功能是可作为系统具有控制功能的控制线,另外P3口可驱动4个LSTTL门电路。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口使用如:
P3.0 RXD(串行输入口);
P3.1 TXD(串行输出口);
P3.2 /INT0(外部中断0);
P3.3 /INT1(外部中断1);
P3.4 T0(记时器0外部输入);
P3.5 T1(记时器1外部输入);
P3.6 /WR(外部数据存储器写选通);
P3.7 /RD(外部数据存储器读选通);
5.LED简介
LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。

图2.7(a)是共阴和共阳极数码管的内部电路图,它们的发光原理是一样的,只是它们的电源极性不同而已。

将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。

以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。

当然,LED的电流通常较小,一般均需在回路中接上限流电阻。

假如我们将"b"和"c"段接上正电源,其它端接地或悬空,那么"b"和"c"段发光,此时,
数码管显示将显示数字“1”。

而将"a"、"b"、"d"、"e"和"g"段都接上正电源,其它引脚悬空,此时数码管将显示“2”。

其它数字的显示原理与此类同。

LED的7段数码管利用单只LED组合排列成“8”字型的数码管,分别引出它们的电极,点亮相应的点划来显示出0-9的数字。

在这次的设计中采用的均是共阴极的LED显示,当I/O口输出为高电平的时候,对应段就被点亮。

LED数码管的结构图如图2.7(b)所示。

这次设计的显示部分采用AT89C51单片机动态扫描完成,在多数的应用场合中,我们并不希望使用多I/O端口的单片机,原则上是使用尽量少引脚的器件。

在没有富余端口的情况下,应通过优化设计程序和扩展电路达到预期的目的。

动态扫描的频率有一定的要求,频率太低,LED将出现闪烁现象。

如频率太高,由于每个LED点亮的时间太短,LED的亮度太低,肉眼无法看清,所以一般均取几个ms左右为宜,这就要求在编写程序时,选通某一位LED使其点亮并保持一定的时间,程序上常采用的是调用延时子程序。

LED显示电路
(1) 静态显示电路
LDE显示器工作在静态显示时,其公共阳极(或阴极) 接VCC(或GND) ,一直处于显示有效状态,所以每一位的显示内容必须由锁存器加以锁存,显示各位相互独立。

(2) 动态显示电路
将所有位的段选线的同名端联在一起,由一个8位I/O口控制,形成段选线的多位复用。

而各位的公共阳极或公共阴极则分别由相应的I/O口线控制,实现各位的分时选通,即同一时刻只有被选通位是能显示相应的字符,而其他所有位都是熄灭的。

由于人眼有视觉暂留现象,只要每位显示间隔足够短,则会造成多位同时点亮的假象。

这就需要单片机不断地对显示进行控制,CPU需要不断地进行显示刷新.
9.设计
总体设计
数码管选中信号从P2口出来进过三极管的放大来到数码管的共阳极引脚,选中6个数码管中的其中一个;P1口出来是数码管的段选信号,通过对数码管的编码显示不同的数字进行显示。

本设计,设置了三个按键,一个调时,一个调分,还有一个复位
总体设计框架图
三极管接Vcc的限流电阻电路设计
因为元器件的限制0.5k左右的电阻只有6个,通过三个1.5k的电阻并联接法得到大小为0.5k左右的电阻,接0.5k左右的电阻是为了限流,同时又不会使数码管的显示很暗。

晶振负载电容电路设计
晶体元件的负载电容是指在电路中跨接晶体两端的总的外界有效电容。

是指晶振要正常震荡所需要的电容。

一般外接电容,是为了使晶振两端的等效电容等于或接近负载电容。

要求高的场合还要考虑ic输入端的对地电容。

应用时一般在给出负载电容值附近调整可以得到精确频率。

此电容的大小主要影响负载谐振频率和等效负载谐振电阻。

晶振的负载电容=[(Cd*Cg)/(Cd+Cg)]+Cic+△C式中Cd,Cg为分别接在晶振的两个脚上和对地的电容,Cic(集成电路内部电容)+△C(PCB上电容).就是说负载电容15pf的话,两边个接27pf的差不多了,一般a为6.5~13.5pF
PCB图:
软件设计:
主控制芯片为AT89C51 ,为了直观和易懂,所以采用c语言编程方便简单. 软件流程图如下:
7.结论
由于电路设计合理,功能电路基本能实现设计要求,程序简单明了,基本上达到了题目要求的各项指标。

从硬件焊接反方面来说,觉得比较棘手的就是是在焊数码管时,和整体器件的布局。

布局不好会影响后面工序焊接的还乱,在这点上我们组自己觉得做的很不错,布线焊接模块功能区分明确。

在编程中遇到的最大困难就是延时的计算和数码管显示的程序段,在整体程序来看,我们采用程序的结构话,使程序明朗,各功能程序段都以子程序的方式调用,所以在主程序中是相当的简单明朗的。

在硬件和软件的结合过程中也遇到比较大的问题,就是一开始数码管全不老是显示8,或是乱码之类的,进过调试,现在没有出现中现象了。

这也是我们的一大攻关吧。

参考文献:
《单片机c语言》;
《电子技术》;
《单片机原理及应用》,李建忠著,西安:西安电子科技大学,2002年;
附录:
附1:元器件明细表:
1、AT89C51
2、数码管
3、10K,1.5K,0.5K电阻
4、PNP三极管
5、30pf电容
6、10uF电解电容
7、12.000MHz晶振
附2:仪器设备清单
1、数字万用表
2、稳压电源
3、示波器。

相关文档
最新文档