单片机定时电路设计_第1页
单片机定时电路设计_第2页
单片机定时电路设计_第3页
单片机定时电路设计_第4页
单片机定时电路设计_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、I基于单片机的紫外杀菌灯定时电路设计摘摘 要要近年来随着科技的飞速发展,基于单片机的定时电路总的来说有两种类型。一种是基于模拟技术的传统产品,这种定时器功能简单,尽管曾被广泛用过,但已进入淘汰之列。另一种是基于数字技术的新一代产品,这种产品功能强,是前者的替代之物。本设计开发了一种基于单片机的紫外线杀菌灯定时电路的设计。它造价低,功能全,整体功能性价比高,可适应各种场合的定时预警之用。本设计是经典的单片机定时功能应用设计。设计中应用了单片机定时器的设计功能、单片机的中断使用方法及 LCD显示等技术。可以实现任意时间和日期的显示,而且每个时间的初值可以改变,并且可以有定时的功能。本设计的硬件电路

2、主要包括:STC89S52 单片机、时钟芯片、蜂鸣器等器件。在硬件的设计的基础上,通过软件进行发光二极管指示程序、键扫描程序和 LCD 的显示程序的设计,最终完成本设计。关键词:关键词:定时器;STC89S52 单片机;时钟芯片Design of ultraviolet germicidal lamp timing circuit based on single chipmicrocomputerABSTRACTIn recent years, with the rapid development of technology, microcontroller-based timing circ

3、uits in general , there are two types. One is based on traditional analog technology products, this timer function is simple, although once widely used, but has entered deprecated. Another is the new generation of products based on digital technology , this product features strong, is an alternative

4、 to the former things . The design and development of a microcontroller based UV germicidal lamp timer circuit design. It is low cost , full-featured , high overall function of cost-effective, can be adapted to various situations timed warning of use . This design is a classic single-chip timing app

5、lications. Design application design features a single-chip timers , interrupt the use of the microcontroller and LCD display technology. At any time and can display the date , and the initial value may be changed each time , and may have a timing function.The design of the hardware circuit includes

6、 : STC89S52 MCU clock chip, such as buzzers . On the basis of the design of the hardware , software, LED indication by the program , key scan programs and design LCD display program , and the final completion of the design .Keywords:Timer; STC89S52 microcontroller; clock chipIII目录目录摘 要.1ABSTRACT.2第一

7、章 绪论.11.1 系统背景.11.1.1 单片机的电子技术.11.1.2 定时器介绍.11.2 设计要求.1第 2 章关键技术及研究.22.1 主控电路.22.2 设计选择单片机的结构.22.2.1 管脚说明.52.2.2 主要特性.62.2.3 振荡器特性.72.2.4 STC89C52 单片机的工作周期.72.3 单片机的工作过程和工作方式.82.4 STC89C52 的指令系统.10第三章 系统电路设计.123.1 设计框架介绍.123.2 系统硬件单元电路设计.123.2.1 复位电路设计.123.2.2 时钟电路设计.133.2.3 按键电路设计.133.3 系统硬件总电路.14第

8、四章 系统软件设计与仿真.154.1 系统软件流程图.15第五章 实验结果和分析.165.1 实验使用的仪器设备.165.2 测试结果分析.16第六章 总结与展望.17第七章 设计结论.18参考文献.19致 谢.20附录.21主程序.2111 绪论绪论1.1 系统背景系统背景1.1.1 单片机的电子技术单片机的电子技术单片机是将 CPU、RAMROM定时器/计数器以及输入输出(I/O)接口等计算机的主要部件集成在一块的集成电路芯片,作为微机系统它还可以实现模/数转换、脉宽调制、计数器捕获/比较逻辑、高速 I/O 口和 WDT 各种控制功能。通过在 MCS-51 系列的单片机中增设了全双工串行口

9、 I/O、片内数据存储器采用寻址范围为 256kb 的 8 位地址、均有四种工作方式的 2 个 16 位的定时/计数器、增加了中断系统、增设了颇具特色的布尔处理机、让单片机具有较强的指令寻址和运算功能这些技术,规范了功能单元的特殊功能寄存器控制模式及适应控制器特点的布尔处理系统和指令系统,使单片机拥有了完善的外部并行总线(AB、DB、CB)具有多机识别功能的串行通信接口,并为发展具有良好兼容性的新一代单片机奠定了良好的基础。单片机被广泛地应用在各种领域。例如用来作家用电器中如洗衣机、电冰箱、微波炉、电饭煲、电视机、录像机以及其他视频音像设备的控制器;在办公室中用作大量通信、信息的承载体,比如磁

10、盘驱动、打印机、复印机、电话等;它还可以来构成电子秤、收款机、仓储安全检测系统、空气调节系统等冷冻保鲜系统等的专用系统;在工业中,像工业过程控制、过程监制以及机电一体化控制等系统都是以单片机为核心火多网络系统;它还可以构成一些智能仪表与集成智能传感器传统的控制电路,实现一些像存储、数据处理、查找、判断、联网和语音功能等智能化功能,还可以构成一些电子系统中的集中显示系统、动力检测控制系统、自动驾驶系统、通信系统以及运行监视器等的冗余网络系统。1.1.2 定时器介绍定时器介绍人类最早使用的定时工具是沙漏或水漏,但在钟表诞生发展成熟之后,人们开始尝试使用这种全新的计时工具来改进定时器,达到准确控制时

11、间的目的。 1876 年,英国外科医生索加取得一项定时装置的专利,用来控制煤气街灯的开关。它利用机械钟带动开关来控制煤气阀门。 定时器确实是一项了不起的发明,使相当多需要人控制时间的工作变得简单了许多,家用电器都安装了定时器来控制开关或工作时间。1.2 设计要求设计要求 主要内容和任务:完成单片机最小系统板设计与制作,在此基础上通过编程设计家用多路定时控制器。目标:通过编写程序,使单片机最小系统具有正常数字钟功能,包括时间校正,具有至少三路定时开关控制功能,每路定时时间可以任意设置。3 2 关键技术及研究关键技术及研究2.1 主控电路主控电路51 系列单片机作为系统设计的核心,它具有高效能和资

12、源占用率较低等特点,通过对里程的计数来控制报站的时候,完全无人工介入。AT89C 单片机的结构主要由 1个 8 位 CPU、片内 Flash 存储器、片内 RAM、4 个 8 位的双向可寻址 I/O 接口、一个双全工 UART 的串行借口,2 个 16 位的定时器/计数器、多个优先级的潜逃中断结构,以及一个片内振荡器和时钟电路。现在 51 系列的单片机结合 C 语言、汇编等程序,单片机可以实现丰富的功能,并且部分设计可以直接进行方针实现相应的功能。2.2 设计选择单片机的结构设计选择单片机的结构该设计选择的单片机为 STC89C52,这种微处理器是一个低功耗,高性能 CMOS 8 位单片机,片

13、内含 4k Bytes ISP(In-system programmable)的可反复擦写 1000 次的Flash 只读程序存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术制造,兼容标准 MCS -51 指令系统及 80C51 引脚结构,芯片内集成了通用 8 位中央处理器和ISP Flash 存储单元,功能强大的微型计算机的 STC89C52 可为许多嵌入式控制应用系统提供高性价比的解决方案。STC89C52 具有如下特点:40 个引脚,4k Bytes Flash 片内程序存储器,128 bytes的随机存取数据存储器(RAM) ,32 个外部双向输入/输出(I/O)口,5 个

14、中断优先级2 层中断嵌套中断,2 个 16 位可编程定时计数器,2 个 全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 此外,STC89C52 可通过软件设置省电模式,并且设计和配置了振荡频率可为0Hz。在空闲模式下,单片机的 CPU 暂时停止工作,而串行口,外中断系统,RAM 定时计数器可继续工作,掉电模式冻结振荡器而保存 RAM 的数据,停止芯片其它功能直至硬件复位或者外部中断激活。 ,为了适应不同产品的需求,同时该芯片还具有 TQFP 、PDIP、和 PLCC 等三 种封装形式。图 2.1 为 STC89C52 单片机的基本组成功能方块图。如图可见,在这一块芯片上,包括可编程

15、I/O 口、定时器/计数器、CPU、存储器、串行口等,各部分通过内部总线相连,这些就是一台微型计算机的主要组成部分。下面介绍几个主要部分。 图 2.1 STC89C52 功能方块图1. 中央处理器(CPU) 中央处理器是单片机最核心的部分,是单片机的大脑和心脏,具有运算和控制功能。STC89C52 的 CPU 是一个字长为 8 位的中央处理单元,即它对数据的处理是按字节为单位进行的。2.数据存储器(内部 RAM) 芯片中共有 256B 的 RAM 单元,但其中后 128 个单元(80H-0FFH)被专用寄存器占用,能作为寄存器提供用户使用的只是前 128 个单元(00-7FH) ,用于存放可读

16、写的数据。因此常说的内部数据存储器是指前 128 个单元,简称内部 RAM。3.程序存储器(内部 ROM) 程序存储器,又称内部 ROM。芯片内部有 4 KB 的掩膜 ROM,可用于存放原始数据、程序和表格等。4. 定时器/计数器 为了对单片机进行控制,芯片内部共有两个 16 位的定时器/计数器以实现定时或计数功能,来产生的其定时或计数结果,这就是定时器的控制应用。55. 并行 I/O 口 为了实现数据的并行输入/输出,STC89C52 共有 4 个 8 位的 I/O 口(P0、P1、P2、P3 口) 。6. 串行口为了实现其他设备和单片机之间的串行数据传送,STC89C52 有 1 个全双工

17、的可编程串行口。该串行口功能较强,既可以作为同步移位寄存器使用,也可以作为全双工异步通信收发器使用。7.中断控制系统 STC89C52 的中断系统功能较强,可以满足一般控制应用的需要。它共有 5 个中断源:2 个外部中断源/INTO 和/INT1 ;3 个内部中断源,即 2 个定时/计数中断,1 个串行口中断。8. 时钟电路 STC89C52 单片机芯片内部有时钟电路,外接石英晶体和微调电容。单片机产生时钟脉冲序列需要时钟电路,系统允许的最高晶振频率为 12MHz。9. 内部总线 上述部件只有通过内部总线将其连接起来才能构成一个完整的单片机系统。总线在图中以带箭头的空心线表示。系统的地址信号、

18、数据信号和控制信号分别通过系统的三大总线地址总线、数据总线和控制总线进行传送,总线结构减少了单片机的连线和引脚,提高了集成度和可靠性。由上所述,STC89C52 虽然是一块芯片,但它包括了构成计算机的基本部件,因此可以说它是一台简单的计算机。STC89C52 较详细的内部结构如 图 2.2 所示。 图 2.2 STC89C52 内部结构框图2.2.1 管脚说明管脚说明STC89C52 是一种高效微控制器。采用 40 引脚双列直插封装(DIP)形式,如图 3.3所示。STC89C52 单片机是高性能单片机,因为受引脚数目的限制,所以有不少引脚具有第二功能。VCC:供电电压。GND:接地。P0 口

19、: P0 口是 8 位漏级开路双向输入输出端口,每个引脚可吸收 8TTL 门电流。高阻输入的定义是:当 P1 口的管脚第一次写71 时。P0 可应用于外部程序数据存储器,又被定义为数据/地址的第八位。对 FIASH 的编程时,原码输入口为 P0 口,当 FIASH 进行校验时,此时 P0 外部必须被拉高,输出原码的是 P0。 P1 口: P1 口是一个内部提供上拉电阻的 8 位双向输入输出口,P1 口缓冲器可以接收和输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH编程和校验时,P1 口

20、作为第八位地址接收。 P2 口: P2 口为一个内部上拉电阻的 8位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,输出其特殊功能寄存器的内容是P2 口。在 FLASH 编程和校验时用来接收高八位地址信号和控制信号也是 P2 口。 P3 口:P3 口的管脚是

21、8 个带有内部上拉电阻的双向输入输出端口,可用来接收和输出 4 个TTL 门电流。当 P3 口输入信号为“1”后,它们被内部上拉为高电平信号,用作输入。作为输入时,因为外部下拉为低电平,由于上拉的缘故,P3 口将输出电流(ILL) 。P3.0 (行输入口)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(外部数据存储器读选通)P3 口可以同时为编程校验和闪烁编程接收一些控制信号。RST:复位输入。在振荡器复位器

22、件时,必须保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许端的输出电平用于锁存地址的地址字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置0。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。/PSEN:外

23、部程序存储器的选通信号端。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP) 。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。2.2.2 主要特性主要特性 与 MCS-51 兼容 4K

24、字节可编程闪烁存储器 寿命:1000 写/擦循环 数据保留时间:10 年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8 位内部 RAM 32 可编程 I/O 线 两个 16 位定时器/计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 时钟电路和片内振荡器2.2.3 振荡器的特性振荡器的特性介绍介绍(1)反向放大器的输入和输出分别为 XTAL1 和 XTAL2。此反向放大器能配置成片内振荡器。陶瓷振荡、石晶振荡都能运用。假如运用外部时钟源驱动器件,XTAL2该不接。有余输入到内部时钟信号时需要通过二分频触发器,所以对于外部时钟信号的脉宽没有任何的要求,可是必须保证达到

25、脉冲高低电平所要求的宽度。9(2) 芯片擦除 三个锁定位电擦除与 EPROM 阵列可通过正确的控制信号组合,且保持 ALE 管脚处低电平 10ms 可来完成。处于芯片擦除操作当中,当代码阵列都被写“1”并且在所有非空存储字节被重复编程之前,必须执行此项操作。另外,AT89C51 设有稳态逻辑,可在低至零频率条件下静态逻辑,支持两种软件可选择的掉电模式。处于闲置模式之下,CPU 便停止工作。但 RAM,计数器,定时器,中断系统和串口还处于工作模式下。当掉电模式下,冻结振荡器并且保存 RAM 的内容,停止所用其他芯片功能,直到下一个硬件复位。2.2.4 STC89C52 单片机的工作周期单片机的工

26、作周期单片机有了硬件和软件就可以在控制器发出的控制信号作用下有条不紊地工作,控制信号必须定时发出,为了定时计算机内部必须有一个准确的定时脉冲。这种定时脉冲是由晶体振荡器产生的,并组成下面几种工作周期,如图 2.3 所示。这种定时脉冲是由晶体振荡器产生的,并组成下面几种工作周期,如图 2.3 所示。图 2.3 振荡周期、状态周期、机器周期和指令周期振荡周期:是指为单片机提供时钟脉冲信号的振荡源的周期。 即由单片机的晶体振荡器产生的时钟脉冲的周期。状态周期:每个状态周期为振荡周期的 2 倍, 是振荡周期经二分频后得到的。 在一个状态周期中有两个时钟脉冲,通常称它为 P1、P2。机器周期:一个机器周

27、期包含 6 个状态周期 S1S6, 也就是 12 个振荡周期。 在一个机器周期内, CPU 可以完成一个独立的操作。 指令周期:它是指 CPU 完成一条操作所需的全部时间。控制部件是单片机的神经中枢,以主振频率为基准(主振周期即为振荡周期) ,控制器控制 CPU 的时序,对指令进行译码,然后发出各种控制信号,它将各个硬件环节组织在一起。一般情况下,算术逻辑操作发生在时相 P1 期间,而内部寄存器之间的传送发生在时相 P2 期间,这些内部时钟信号无法从外部观察,故用 XTAL2 引脚振荡信号作参考。2.3 单片机的工作过程和工作方式单片机的工作过程和工作方式单片机工作过程遵循现代计算机的工作原理

28、(冯诺依曼原理) ,即程序存储和程序控制。存储程序是指人们必须事先把计算机的执行步骤序列(即程序)及运行中所需的数据, 通过一定的方式输入并存储在计算机的存储器中。程序控制是指计算机能自动地逐一取出程序中的指令,加以分析并执行规定的操作。 单片机的工作方式有:复位、程序执行、掉电保护和低功耗、编程、校验与加密等方式。通过某种方式, 使单片机内各寄存器的值变为初始状态的操作称为复位。复位方式是单片机的初始化操作。单片机除了正常的初始化外,当程序运行出错或由于操作错误而使系统处于死循环时,也需要按复位键重启机器。MCS51 单片机复位后, 程序计数器 PC 和特殊功能寄存器复位的状态如图 2.4

29、所示。 复位不影响片内 RAM 存放的内容, 而 ALE 在复位期间将输出高电平。由图 2.4 可以看出,复位后:(1)(PC)=0000H 表示复位后程序的入口地址为 0000H,即单片机复位后从0000H 单元开始执行程序;11(2)(PSW)=00H, 其中 RS1(PSW.4)=0,RS0(PSW.3)=0,表示复位后单片机选择工作寄存器 0 组;(3)(SP)=07H 表示复位后堆栈在片内 RAM 的 08H 单元处建立;(4) P0 口P3 口锁存器为全 1 状态,说明复位后这些并行接口可以直接作输入口,无须向端口写 1。定时器/计数器、串行口、中断系统等特殊功能寄存器复位后的状态

30、对各功能部件工作状态的影响。 能部件工作状态的影响。 图 2.4PC 与 SFR 复位状态表单片机在时钟电路工作以后, 在 RST/VPD 端持续给出 2 个机器周期的高电平时就可以完成复位操作。例如使用晶振频率为 12MHz 时,则复位信号持续时间应不小于2us。复位方法一般有上电自动复位和外部按键手动复位以及“看门狗”复位三种类型。前两种见 图 2.5 所示。 “看门狗”电路则是一种集成有单片机的电源监测、按键复位以及对程序运行进行监控,防止程序“跑飞”而出现死机而设计的电路。图 2.5(a)上电复位电路; (b)上电/外部复位电路程序执行方式是单片机的基本工作方式。由于复位后 PC=00

31、00H,因此程序执行总是从地址 0000H 开始,为此就得在 0000H 处开始的存储单元安放一条无条件转移指令,以便跳转到实际程序的入口去执行。待机方式也称空闲方式,是一种节电工作方式。在待机工作方式中,振荡器保持工作,时钟脉冲继续输出到中断、串行口、定时器等功能部件,使它们继续工作,但时钟脉冲不再送到 CPU,因而 CPU 停止工作。掉电方式,也被称为停机方式。在掉电方式中,振荡器工作停止,单片机内部所有功能部件停止工作。它同样是一种为降低功耗而设计的节电工作方式。待机方式和掉电方式都是为了进一步降低功耗而设计的节电工作方式,它们特别适合于电源功耗要求很低的应用场合。这类系统往往是直流供电

32、或停电时依靠备用电源供电,以维持系统的持续工作。CHMOS 型单片机的节电方式是由特殊功能寄存器PCON 控制,其具体使用可参考相关书籍和手册。空闲和掉电模式外部引脚状态 如下图 2.6 所示: 图 2.6 空闲和掉电模式外部引脚状态 对于内部集成有 EPROM 可以进入编程或校验方式。(1)内部 EPROM 编程编程时,时钟频率应定在 3.6MHz 的范围内,其余各有关引脚的接法和用法如下:P1 口和 P2 口的 P2.0P2.3 为 EPROM 的 4k 地址输入,P1 为 8 位地址;P2.4P2.6 以及 PSEN 应为低电平;P0 口为编程数据输入;P2.7 和 RST 应为高电平;

33、RST 的高电平可为 2.5V,其余的都以 TTL 的高低电平为准;EA/VPP端加+21V 的编程脉冲,此电压要求稳定,不能大于 21.5V,否则会损坏EPROM在出现正脉冲期间,ALE/PROG 端加上 50ms 的负脉,完成一次写入。(2)EPROM 程序校验13在程序的保险位未设置前,无论在写入的当时或写入以后,均可将片上程序存贮器的内容读出进行检验,在读出时,除 P2.7 脚保持为 TTL 低电平之外,其他引脚与写入 EPROM 的连接方式相同。要读出的程序存贮器单元地址由 P1 口和 P2 口的 P2.0P2.3送入,P2 口的其他引脚及PSEN保持低电平,ALE、EA 和 RST

34、 接高电平,检验的单元内容由 P0 口送出。在检验操作时,需在 P0 的各位外部加上电阻 10k。(3)程序存贮器的保险位STC89C52 内部有一个保险位,亦称保密位,一旦将该位写入便建立了保险,就可禁止任何外部方法对片内程序存贮器进行读写。将保险位写入以建立保险位的过程与正常写入的过程相似,仅只 P2.6 脚要加 TTL 高电平而不是像正常写入时加低电平,而P0、P1 和 P2 的 P2.0P2.3 的状态随意,加上编程脉冲后就可使保险位写入。保险位一旦写入,内部程序存贮器便不能再被写入和读出校验,而且也不能执行外部存贮器的程序。只有将 EPROM 全部擦除时,保险位才能被一起擦除,也才可

35、以再次写入。通过以上对单片机硬件系统的简单介绍,应该已经掌握了单片机的内部结构及工作的原理和过程,但是单片机要实现它的强大控制功能特性,只有硬件是不能工作的,还必须依靠它的指令才能发挥单片机的强大作用。下面介绍单片机的指令系统。2.4 STC89C52 的指令系统的指令系统 指令是规定计算机进行某种操作的命令,一条指令只能完成有限的的功能,为使计算机完成一定的或复杂的功能就需要一系列指令。计算机能够执行的各种指令的集合称为指令系统。单片机的主要功能也是有指令系统体现的。机器指令通常由两部分组成,即操作码和操作数(或操作数地址) 。操作码用于规定指令的操作功能,如加、减、乘、除等。操作数是指参与

36、操作的数据,它可能是一个具体的数据,也可能是地址或符号。汇编指令由操作码或伪操作码、目的操作数和源操作数构成,标准书写格式如下: 标号: 操作码/伪操作码 操作数 ;注释(1) 表示该项为可选项。(2)标号:又称指令地址符号。它是用户设定的符号,代表着该指令所在的地址。(3)操作码/伪操作码:是英文缩写的指令助记符。它规定了指令的操作功能,它所对应的汇编语句称为指令性语句,在汇编后有具体的目标代码。而伪操作码说明汇编程序如何完成汇编工作,任何一条指令都必须有操作码或伪操作码,不得省略。(4)操作数 :是指参加操作的数据或数据所在的地址。在指令系统中,操作数可以是 1 个、2 个或 3 个,也可

37、以没有。不同功能的指令,操作数作用不同。例如,传送指令多数有两个操作数,写在左边的称为目的操作数(表示操作结果存放的单元地址) ,写在右边的称为元操作数(支出操作数的来源) 。例如,一条传送指令的书写格式为:MOV A ,#10 H ;表示将#10 H 存储单元的内容送到累加器 A 中。 操作码/伪操作码和操作数之间必须用空格分开,操作数与操作数之间必须用逗号分开。(5)注释 :是为该条指令作的说明,以便于阅读。寻址方式包括立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址等共 7 种寻址方式,且每一种寻址方式所涉及的存储器空间各有不同。指令中的源操作数可以使用七种寻址

38、方式中的任何一种,但是目的操作数只能使用寄存器寻址、寄存器间接寻址、直接寻址和位寻址四种方式。在单片机指令系统中,根据功能不同将指令分为数据传送类指令、算数运算类指令、逻辑运算及移位类指令、控制转移类指令和位操作类指令等五大类,共计 111 条指令。 153 系统电路设计系统电路设计3.1 设计框架介绍设计框架介绍单单片片机机复复位位电电路路时时钟钟电电路路按按键键电电路路显显示示电电路路按键输入电路:对定时器输入定时时间、时钟时间,并对其调整。时钟电路:给单片机一个时钟信号,让其工作。复位电路:使单片机为初始状态,并从初态开始工作。数码管 :显示时间或者其它。3.2 系统硬件单元电路设计系统

39、硬件单元电路设计3.2.1 复位电路设计复位电路设计复位操作有上电自动复位、按键电平复位和外部脉冲复位三钟方式,本次实验用的是按键电平复位,利用电容的充放电公式来选择所需的电容、电阻,能保证复位信号高电平持续时间大于 2 个机器周期。3.2.2 时钟电路设计时钟电路设计该时钟电路是由晶体振荡器和两个微调电容组成的。在单片机芯片内部有一个高增益反相放大器,其输入端为引脚 XTAL1,其输出端为引脚 XTAL2。只需要在片外通过 XTAL1 和 XTAL2 引脚跨接晶体振荡器或在引脚与地之间加接微调电容,形成反馈电路,振荡器即可工作。由于该晶振使用的是 12MHZ 的晶体,因此它的时钟周期是0.1

40、67us,机器周期为 1us。3.2.3 按键电路设计按键电路设计键 K1(图中下方)控制状态的切换:K1 为 0 时,表示出处在正常的计时工作状态;为 1,处在校正数字钟的“时” ;为2,处在校正数字钟的“分” ;为 3,处在调整定时起始时间的“时” ;为 4,处在调整定时起始时间的“分” ;为 5,处在调整定时终止时间的“时” ;为 6,处在调整定时终止时间的“分” 。键 K2(图中上方)为加号键,控制在各状态时加 1。17 该系统键扫描的方式为中断扫描方式,当键位上有键压下时,产生中断请求,CPU 响应中断,执行中断服务程序,判断键位上压下的键的键号,继而做相应的处理。3.3 系统硬件总

41、电路系统硬件总电路4 系统软件设计系统软件设计4.1 系统软件流程图系统软件流程图如图 4.1 所示,主程序在执行时,通过单片机内部中断对程序不断的扫描判断、刷新显示,当有键按下时,将数字钟中的时间与定时时间相比较,然后根据比较程序显示状态,并且还要延时消除抖动,之后进行按键处理,从而显示不同的状态,如此周期循环。其程序相见附录。图 4.1 程序设计流程图4.24.2 延时子程序流程图延时子程序流程图 此延时子程序在实验中被主程序调用,当有按键按下时,调用此程序可以达到消除振动的作用,避免发光二极管一直闪烁,此程序延时时间不能太短,要不然不能很好的起到消振作用,也不能够太长,避免按键很长时间后

42、才反应。并且因为此程序用C 语言编程,延时时间没有汇编语言精准,其流程图如图 4.2 所示,其设计程序相见附录。19图 4.2 延时设计流程图5 实验结果和分析实验结果和分析5.1 实验使用的仪器设备实验使用的仪器设备电脑,PTOTEUS 软件,KEIL 软件,电烙铁,吸锡器,钳子,直流电源,电阻,电容等基本元器件。5.2 测试结果分析测试结果分析程序烧录到单片机中后,将其接到+5V 左右的直流电源中,并开始按键实现时间控制或调整,设置多路定时时间,每路定时时间有起始时间和终止时间。当设定好每路时间段后,按键恢复时钟状态并开始计时。其设硬件设计结果最终实现其最初预期设计功能。如图 5-1 所示

43、为系统测试仿真图。图 5-1 系统测试仿真图图 5.2 是去模软件上人在房间内系统提示仿真图。21图 5.2 系统仿真图6 总结与展望总结与展望这次的设计是基于单片机的紫外杀菌灯定时电路设计。在日常的生活中使用紫外线杀菌是非常的重要的这关系到人们的健康,然而如何使紫外杀菌灯智能化是一个非常重要的问题。本次设计就是基于单片机来智能定时控制,相信随着单片机技术的发展能使得智能控制更加多的东西,为人们的生活带来方便237 设计结论设计结论通过本次实验学会了用 keil 编程,实现计时、多路定时功能,然后通过数码管显示时间还有 LED 灯的亮来提示定时。当恢复到原来的初始状态时,再按按键可以看到原来的

44、所定的三路时间的终止时间。在制作 PCB 板的过程中和编程过程中,理解和加强了对单片机的了解。这次设计课题中,在给定的源程序上修改并增加了多路定时程序,实现实验要求。在焊接电路板过程中也没有出现过什么问题,只是在 Protues 仿真实验中有出现数码管显示数字成零不断跳动,而且 LED 灯自动跳变,相当于是中断不停执行、判断键值,特别不稳定。虽然这次实验没有创新,但是也是自己动手查资料,修改程序,达到实验要求。之前做过直流稳压电源,两级放大电路和数显温度计,但是都是照葫芦画瓢,没有融合自己的思想在所做的板子当中。虽然达到实验要求,但是总是觉得只是为了完成老实交代的任务而已,并没有思考很多。有时

45、,只有经过自己亲手试验,才能更深层次的懂得实验原理和每部分电路的功能。参考文献参考文献1元增民. 单片机原理与应用.长沙:国防科学大学出版社 20062刘仁宇. 单片微型计算机原理及应用.西安:西安电子科技大学出版社20033马忠梅. 单片机外围电路设计 北京:北京航空航天大学出版社 20054李光飞. 传感器技术与应用.北京:北京航空航天大学出版社 20065尹勇、王洪成.单片机开发环境 Vision 2 的使用指南.-北京:北京航空航天大学出版社 2004.16范立南.PROTUES 仿真软件实例使用指南. 北京:电子工业出版社 2004.67李全利. 单片机原理及接口技术.-北京:北京航

46、空航天大学出版社 2004.18坎特编著.Windows WDM 开发指南M.孙义,马莉波等译.-西安:西安电子科技大学出版社,2004.99徐爱钧、彭秀华单片机高级语言 C51 应用程序设计.-北京:北京航空航天大学出版社 2006.110薛均义、张彦斌. MCS-51 系列单片微型计算机及其应用.-西安:西安交通大学出版社 2005.111楼然苗.51 系列单片机设计实例.北京:北京航空航天大学出版社2006.412黄智伟.传感器应用设计实例制作.北京:电子工业出版社 2006.413唐桃波、陈玉林. 基于 AT89C51 的智能无线安防报警器 J.电子设计应用 ,2003, (6) :

47、495114 Compaq, Intel, Microsoft, NEC.Universal Serial Bus Specification V1.1S.199815 Philips,Augest.PDIUSBDI2 DataSheetEB. 2000致谢致谢毕业设计作为大学生四年学习生涯的最后一个大作业,也是大学四年所有学习成果的一个最终总结与展示,是衡量我们是否成为一名合格大学生的标准,要求我们必须用严谨细致、一丝不苟的态度去完成。在回顾大学四年时光里,非常感谢电子工程系所有老师在我们专业知识上给予的帮助和鼓舞,在此我更要感谢老师不仅在大学四年当中对我在学习与工作上的帮助和鼓励而且感谢许

48、老师在本次毕业设计中对我的细心指导。许老师渊博的专业知识和严谨的治学态度以及诲人不倦的高尚师德和宽以待人的崇高风范对我影响深远,成为我今后在学习与工作上的楷模。本此毕业设计从选题到设计,从设计到论文撰写,都倾注了老师很大的期望,再一次向老师表示崇高的敬意和衷心的感谢!在本次设计中非常感谢我们小组成员对我的帮助和支持,使我在课题研究中有了更深的认识。通过这次毕业设计使我对之前所学专业知识又一次进行了温故,并且对新领域的专业知识有了全面认识和了解,使自己对今后的学习和工作目标有了更加明确的努力方向。 赵雪佳 2014 年 5 月 5 日25附录附录主程序主程序显示器驱动程序:#include160

49、2.h/*函数名:delay行参 :time 延时基数功能 :用 while 延时*/ 延时函数(1ms 单位)void delays(uint16 time)while(time-);/*函数名:lcd_ini功能 :LCD1602 的初始化*/void lcd_ini() lcd_order(0 x38); /设置 1602 的显示光标功能delays(100); lcd_order(0 x0c); /显示开及光标设置 delays(100);lcd_order(0 x06); /显示光标移动设置delays(100);lcd_order(0 x01); /显示清屏delays(100);

50、/*函数名:lcd_order行参 :date 要定入的指令功能 :向 LCD1602 的写 1 个指令*/void lcd_order(uint8 date) RS=0; /选择写指令 EN_LCD=0; /使能初使化 P0=date; /发送指令 EN_LCD=1; /开使能 delays(200); EN_LCD=0; /关使能/*函数名:lcd_order行参 :date 要定入的指令功能 :向 LCD1602 的写 1 个指令*/void lcd_data(uint8 date) RS=1; /选择写数据 EN_LCD=0; /使能初使化 P0=date; /发送指令 EN_LCD=

51、1; /开使? delays(200); EN_LCD=0; /关使能27void display()lcd_order(0 x80+7);/小时lcd_data(time_buf14/10+0 x30);lcd_data(time_buf14%10+0 x30);lcd_order(0 x80+10);/分lcd_data(time_buf15/10+0 x30);lcd_data(time_buf15%10+0 x30);lcd_order(0 x80+13);/秒lcd_data(time_buf16/10+0 x30);lcd_data(time_buf16%10+0 x30);lcd

52、_order(0 x80+0 x40+3);/年lcd_data(time_buf11/10+0 x30);lcd_data(time_buf11%10+0 x30);lcd_order(0 x80+0 x40+6);/月lcd_data(time_buf12/10+0 x30);lcd_data(time_buf12%10+0 x30);lcd_order(0 x80+0 x40+9); /日lcd_data(time_buf13/10+0 x30);lcd_data(time_buf13%10+0 x30);lcd_order(0 x80+0 x40+14); /周lcd_data(tim

53、e_buf17+0 x30);void display_dur(unsigned char i,unsigned char j,unsigned char k,unsigned char nu,bit l)/显示函数if(nu=1)lcd_order(0 x83);lcd_data(1);if(nu=2) lcd_order(0 x83);lcd_data(2);if(nu=3)lcd_order(0 x83);lcd_data(3);if(nu=4)lcd_order(0 x83);lcd_data(4); if(l=0) lcd_order(0 x80+7);/小时lcd_data(i/1

54、0+0 x30);lcd_data(i%10+0 x30);lcd_data(:);lcd_order(0 x80+10);/分lcd_data(j/10+0 x30);lcd_data(j%10+0 x30);lcd_data(:);lcd_order(0 x80+13);/秒lcd_data(k/10+0 x30);lcd_data(k%10+0 x30); else lcd_order(0 xc0+6);lcd_data();lcd_order(0 xc0+7);/小时lcd_data(i/10+0 x30);lcd_data(i%10+0 x30);lcd_data(:);lcd_or

55、der(0 xc0+10);/分lcd_data(j/10+0 x30);lcd_data(j%10+0 x30);lcd_data(:);lcd_order(0 xc0+13);/秒lcd_data(k/10+0 x30);lcd_data(k%10+0 x30); 29#include ds1302.hunsigned char time_buf18 = 20,14,3,15,12,51,0,6;/空年月日时分秒周unsigned char time_buf8 ; /空年月日时分秒周/*- 向 DS1302 写入一字节数据-*/void Ds1302_Write_Byte(unsigned

56、 char addr, unsigned char d)unsigned char i;RST_SET;/写入目标地址:addraddr = addr & 0 xFE; /最低位置零for (i = 0; i 1;/写入数据:dfor (i = 0; i 1;RST_CLR;/停止 DS1302 总线/*- 从 DS1302 读出一字节数据-*/unsigned char Ds1302_Read_Byte(unsigned char addr) unsigned char i;unsigned char temp;RST_SET;/写入目标地址:addraddr = addr | 0 x01;

57、/最低位置高for (i = 0; i 1;/输出数据:tempfor (i = 0; i 1;if (IO_R) temp |= 0 x80;else temp &= 0 x7F;SCK_SET;SCK_CLR;RST_CLR; /停止 DS1302 总线return temp;/*- 向 DS1302 写入时钟数据-*/void Ds1302_Write_Time(void) unsigned char i,tmp;for(i=0;i8;i+) /BCD 处理tmp=time_buf1i/10;time_bufi=time_buf1i%10;time_bufi=time_bufi+tmp*

58、16; Ds1302_Write_Byte(ds1302_control_add,0 x00);/关闭写保护 Ds1302_Write_Byte(ds1302_sec_add,0 x80);/暂停 Ds1302_Write_Byte(ds1302_charger_add,0 xa9);/涓流充电 Ds1302_Write_Byte(ds1302_year_add,time_buf1);/年 Ds1302_Write_Byte(ds1302_month_add,time_buf2); /月 Ds1302_Write_Byte(ds1302_date_add,time_buf3);/日 Ds130

59、2_Write_Byte(ds1302_day_add,time_buf7);/周 Ds1302_Write_Byte(ds1302_hr_add,time_buf4);/时 Ds1302_Write_Byte(ds1302_min_add,time_buf5);/分Ds1302_Write_Byte(ds1302_sec_add,time_buf6);/秒Ds1302_Write_Byte(ds1302_day_add,time_buf7);/周 Ds1302_Write_Byte(ds1302_control_add,0 x80);/打开写保护 /*- 从 DS1302 读出时钟数据-*/

60、void Ds1302_Read_Time(void) 33 unsigned char i,tmp;time_buf1=Ds1302_Read_Byte(ds1302_year_add);/年 time_buf2=Ds1302_Read_Byte(ds1302_month_add);/月 time_buf3=Ds1302_Read_Byte(ds1302_date_add);/日 time_buf4=Ds1302_Read_Byte(ds1302_hr_add);/时 time_buf5=Ds1302_Read_Byte(ds1302_min_add);/分 time_buf6=(Ds130

温馨提示

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

评论

0/150

提交评论