1、 成 绩 评 定 表 学生姓名 班级学号 专 业 电子信息工程 课程设计题目 时间继电器设计 评 语 组长签字: 成绩 日期 20 年 月 日 课程设计任务书 学 院 信息科学与工程学院 专 业 电子信息工程 学生姓名 班级学号 课程设计题目 时间继电器设计 实践教学要求与任务: 1.能正确认识元器件; 2.能读懂电路原理图; 3.能正确掌握PCB图和原理图关系; 4.使用89S
2、52单片机设计时间继电器,可以通过键盘设置时间,通过数码管显示时间,并完成继电器控制。 工作计划与进度安排: 2016年12月12日—2016年12月30日为上机时间; 2017年01月05日上交课程设计报告 指导教师: 201 年 月 日 专业负责人: 201 年 月 日 学院教学副院长: 201 年 月 日 摘 要 随着科学技术的发展,温度的实时显示系统应用越来越广泛,比如空调遥控器上当前室温的显示,热水器温度的显示等等,同时温度的控制在各个领域也都有积极的意义。采用单片机对温度进行控制不仅具有控制方便、简单、灵活
3、性大等特点,而且还可以大幅度提高被控温度的技术指标。 传统的时间继电器用振荡电路来完成延时功能,其时间的长短由RC时间常数确定,存在误差而且延时时间不方便调。在自动化工业控制系统中,采用传统时间继电器组成不同控制电路,一旦组装完成,其功能就无法更改,维护非常困难。基于此,详细介绍了利用51单片机设计时间继电器的方法,解决了如何处理时间精度和方便调整时间的问题,该时间继电器是以51单片机为核心组成的小系统控制三路继电器,可以设定一天中的时间为继电器的开启时间和关闭时间,一共可以设定两组定时模式,延时开的模式和延时关的模式,并具有时间设定功能,用户可以根据实际情况设定需要延时的时间。 关键
4、字:继电器;AT89C51单片机;定时器;数码管 目 录 1 总体设计 1 1.1 设计任务 1 1.2 设计要求 1 1.3 方案论证 1 2 设计思想 1 2.1 硬件设计思想 1 2.2 软件设计思想 2 3 电路原理与电路图 2 3.1 电路原理 2 3.2 电路原理图 3 3.3 AT89S52单片机及其引脚说明 3 3.4 数码管显示系统电路 5 3.4.1 数码管的介绍 5 3.4.2 四位数码管的介绍 6 3.5继电器电路 7 4 系统程序的设计 9 4.1 主程序 9 4
5、2 显示子程序 10 4.3 定时器T0、T1中断服务程序 11 4.4 程序清单 11 5 仿真结果 14 5.1 仿真环境 14 5.2 仿真结果 15 6 设计总结 17 参考文献 17 沈阳理工大学创新实践课程设计 时间继电器设计 1 总体设计 1.1 设计任务 (1)实现STC89S52继电器控制。 (2)实现定时器倒计时并用数码管显示。 (3)实现单片机的三个控制键;开始键,分钟键和秒键。 1.2 设计要求 用STC89S52单片机时间继电器设计,可以通过键盘设定时间,时间在数码管上显示,最后控制继电器动作。 1.3 方案论证
6、方案一:用AT89C51作为主要芯片,采用排阻,并用汇编语言写程序,采用硬件消抖 方案二:采用三极管驱动数码管,C语言编写程序,在编写程序时进行软件消抖 相比之后方案二更简便,因为软件消抖更容易,C语言程序更容易懂,易修改,硬件电路更简单。 2 设计思想 2.1 硬件设计思想 数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。 设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制器,计时与显示电路和回零、启动等。主控制器采用单片机AT89S52,显示电路采用四位共阳极LED数码管显示计时时间。
7、由于本实验有四位数码管,如果采用静态显示要占用全部的I/O端口,所以本次试验采用静态显示, 建立最小单片机系统,在AT89S52单片机的P2端通过三极管接上4位七段共阴极数码管,P2.0脚接第一位数码管片选端,P2.1脚接第二位数码管片选端,P2.2脚接第三位数码片选端,P2.3脚接第四位数码管片选端,这四位分别显示秒时间的十位,个位,小数点后一位 ,小数点后两位显示的片选控制端。P2.4脚接小数点控制端。 秒表控制键盘。用P3.0接键盘开启计时键,P3.1接键盘计时暂停键,P3.2接键盘计时复位键。 2.2 软件设计思想 采用C语言编写程序,程序共有四部分; 第一部分是主程序,用于
8、对程序的中断控制、数据等的初始化,并且对秒表控制键盘的扫描。 第二部分时间产生程序,用定时/计数器0中断程序用时产生时间,利用每10m进入本中断程序一次 第三部分4位七段共阴极数码管动态显示程序,用定时/计数1中断程序每50ms对数码管各扫描一次,是利用人眼视觉暂留实现数码管的显示。 第四部分动态扫描延时程序,用于在对数码管动态扫描时,每扫描一个数码管后的延时程序。以实现四位数码时间同时显示的效果。 3 电路原理与电路图 3.1 电路原理 AT89S52单片机做为控制电路,用P1口做为数据输出端,P2口做为4位七段共阴极数码管的片选控制输出口,P3.0,P3.1,P3.2做为键
9、盘接口。时间显示器,由4位七段共阴极数码管构成。 3.2 电路原理图 图3-1 单片机系统电路原理图 3.3 AT89S52单片机及其引脚说明 AT89S52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。 AT89S52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内
10、含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。 主要功能特性: • 兼容MCS51指令系统 • 8k可反复擦写(>1000次)Flash ROM • 32个双向I/O口 • 256x8bit内部RAM • 3个16位可编程定时/计数器中断 • 时钟频率0-24MHz • 2个串行中断 •可编程UART串行通道 • 2个外部中断源 •共6个中断源 • 2个读写中断口线 • 3
11、级加密位 •低功耗空闲和掉电模式 •软件设置睡眠和唤醒功能 图3-2 51单片机引脚图 3.4 数码管显示系统电路 3.4.1 数码管的介绍 本系统输出结果选用4个LED显示。LED数码管的外形结构如图2-4,外部有10个引脚,其中3, 8脚为公共端也称位选端,其余8个引脚称为段选端,当要使某一位数码管显示某一数字((0-9中的一个)必须在这个数码管的段选端加上与数字显示数字对应的8位段选码(也称字形码),在位选端加上低电平即可。LED有共阴极和共阳极两种。如图2-4所示。 二极管的阴极连接在一起,通常此公共阴极接地,而共
12、阳极则将发光二极管的阳极连接在一起,接入+5V的电压。一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)a~g,另一个小数点为dp发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。为了保护各段LED不被损坏,需外加限流电阻。 共阴极 共阳极 图 3-3 LED数码管结构原理图 图3-4 LED数码管引脚图 数码管显示器有两种工作方式,即静态显示方式和动态扫描显示方式。为节省端口及降低功耗,本系统采用动态扫描显示方式。
13、动态扫描显示方式需要解决多位LED数码管的“段控”和“位控”问题,本电路的通过P1口实现:而每一位的公共端,即LED数码管的“位控”,则由P3口控制。这种连接方式由于多位字段线连在一起,因此,要想显示不同的内容,必然要采取轮流显示的方式,即在某一瞬间,只让其中的某一位的字位线处于选通状态,其它各位的字位线处于断开状态,同时字段线上输出这一位相应要显示字符的字段码。在这一瞬时,只有这一位在显示,其他几位则暗。在本系统中,字位线的选通与否是通过PNP三极管的导通与截止来控制,即三极管处于“开头”状态。 使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。
14、七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。TX实验板用共阴LED显示器,根据电路连接图显示16进制数的编码已列在下表。 表3-1 LED字形显示代码表 字型 共阳极段 共阴极段 字型 共阳极段 共阴极段 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 7D
15、H F 84H 71H 7 F8H 07H 空白 FFH 00H 8 80H 7FH P 8CH 73H 3.4.2 四位数码管的介绍 数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。四位数码管阳=阴极连接在一起,阳极分开有各自的位选,动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码
16、管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。 图3-5 数码管显示效果图 图3-6 数码管内部驱动电路 3.5继电器电路 继电器(英文名称:relay)是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起
17、着自动调节、安全保护、转换电路等作用。 图3-7 继电器 继电器线圈在电路中用一个长方框符号表示,如果继电器有两个线圈,就画两个并列的长方框。同时在长方框内或长方框旁标上继电器的文字符号“J”。继电器的触点有两种表示方法:一种是把它们直接画在长方框一侧,这种表示法较为直观。另一种是按照电路连接的需要,把各个触点分别画到各自的控制电路中,通常在同一继电器的触点与线圈旁分别标注上相同的文字符号,并将触点组编上号码,以示区别。继电器的触点有三种基本形式: 1、动合型(常开)(H型)线圈不通电时两触点是断开的,通电后,两个触点就闭合。以合字的拼音字头“H”表示。 2、动断型(常闭)(D型)线圈
18、不通电时两触点是闭合的,通电后两个触点就断开。用断字的拼音字头“D”表示。 3、转换型(Z型)这是触点组型。这种触点组共有三个触点,即中间是动触点,上下各一个静触点。线圈不通电时,动触点和其中一个静触点断开和另一个闭合,线圈通电后,动触点就移动,使原来断开的成闭合,原来闭合的成断开状态,达到转换的目的。这样的触点组称为转换触点。用“转”字的拼音字头“z”表示。 继电器是具有隔离功能的自动开关元件,广泛应用于遥控、遥测、通讯、自动控制、机电一体化及电力电子设备中,是最重要的控制元件之一。 继电器一般都有能反映一定输入变量(如电流、电压、功率、阻抗、频率、温度、压力、速度、光等)的感应机构(
19、输入部分);有能对被控电路实现“通”、“断”控制的执行机构(输出部分);在继电器的输入部分和输出部分之间,还有对输入量进行耦合隔离,功能处理和对输出部分进行驱动的中间机构(驱动部分)。作为控制元件,概括起来,继电器有如下几种作用: 1)扩大控制范围:例如,多触点继电器控制信号达到某一定值时,可以按触点组的不同形式,同时换接、开断、接通多路电路。 2)放大:例如,灵敏型继电器、中间继电器等,用一个很微小的控制量,可以控制很大功率的电路。 3)综合信号:例如,当多个控制信号按规定的形式输入多绕组继电器时,经过比较综合,达到预定的控制效果。 4)自动、遥控、监测:例如,自动装置上的继电器与其
20、他电器一起,可以组成程序控制线路,从而实现自动化运行。 图3-8 继电器驱动电路 4 系统程序的设计 4.1 主程序 本设计中,计时采用定时器T0中断完成,其余状态循环调用显示子程序,当端口开关按下时,转入相应功能程序。其主程序执行流程见下图。 开始 显示单元清0 调用显示子程序 允许T0中断 T0,T1设为16位计数器模式 键按下 是 否
21、 整分钟 否 是 进入功能程序 图4-1 主程序流程图 4.2 显示子程序 数码管显示的数据存放在内存单元70H-75H中。其中70H-71H存放秒数据,72H-73H存放分数据,74H-75H存放时数据,每一地址单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中。显示时,先取出70H-75H某一地址中的数据,然后查得对应的显示用段码,并从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。为了显示小数点及“-”、“A”等特殊字符,在显示班级及计时时采用不
22、同的显示子程序。
4.3 定时器T0、T1中断服务程序
定时器T0、T1用于时间计时,定时溢出中断周期可分别设为50ms和10ms.中断进入后,现判断是时钟计时还是秒表计时,时钟计时累计中断20次(即1s)时,对秒计数单元进行加1操作,秒表计时每10ms进行加1操作。在计数单元中采用十进制BCD码计数,满60(秒表功能时有100)进位,T0中断服务程序执行流程见下图:
图4-2 定时器流程图
4.4 程序清单
#include
23、 key1=P3^1; //定义按键接口 sbit key2=P3^2; sbit DP=P1^7; uint bb,shu; //定义变量 int aa=0; uchar table[]={ 0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F}; //寄存器地址定义 void delay(uint z);延时程序 void keyscan(); //键盘扫描程序 void display(aa); //显示程序 void delay(uint z);//延时子程序 { uint x,y; for(x=20;x
24、>0;x--);//每20秒延时一次 for(y=z;y>0;y--); } void keyscan();//键盘扫描,采用循环嵌套 { if(key1==0) //判断P1.0的电平,决定是否延时 { delay(10); if(key1==0) { shu=1; } while(!key1); } if(key2==0) { delay(10);
25、 if(key2==0) { shu=2; } while(!key2); } } void display(aa);//显示子程序,输出到七段四位数码管 { P1=~table[aa/1000]; P2=0x7f; delay(15); //延时 P2=0xff; P2=0xff; delay(1); P1=~table[aa/100%10]; DP=0; P2=0xbf;
26、 delay(15); P2=0xff; P2=0xff; delay(1); P1=~table[aa%100/10]; P2=0xdf; delay(15); P2=0xff; P2=0xff; delay(1); P1=~table[aa%10]; P2=0xef; delay(15); P2=0xff; P2=0xff; delay(1); } void time0() interrupt 1 //定时模块 {
27、 TH0=(65536-10000)/256; //TH0中断 TL0=(65536-10000)%256; //TL0中断 aa++; if(aa>9999) { aa=0; } } void main() //主程序 { TMOD=0X01; TH0=(65536-10000)/256; TL0=(65536-10000)%256; EA=1; ET0=1; while(1) { keyscan(); if(shu==1) { TR0=1; //寄存器初
28、始化 shu=0; } if(shu==2) { TR0=0; shu=0; } display(aa); } } 5 仿真结果 5.1 仿真环境 Proteus 是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系
29、统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 ②支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)、 8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。 ③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2、MPLAB等软件。 ④具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软
30、件,功能极其强大。 5.2 仿真结果 图5-1 仿真开始 运行开始前,数码显示管显示为00.00。 按下开始键后,秒表程序运行,数码管开始跑动,如图5-2所示。 图5-2 仿真倒计时 按下复位键,数码管清零,如图5-3所示。 图5-3 仿真清零 6 设计总结 在作此课程设计中,感觉比平时上课学习了很多东西,一方面自己在独立思考和动手的能力上有了一定的提高。另一方面在同学间合作上也有了进一步的认识和深入。在实验中发现,其实在难编写的程序都是由一些基础程序模块构成的,很多的基础模块前人就已经做好了,最重要的还是要自己的基础扎实,同时,自己的思路要非常的清晰。实验完
31、后,感觉到平时掌握的东西太少了,要真正实现学有所成、学有所用还有很长的路要走。 现在电子信息技术发展迅速,我们现在学的东西在社会上也许已经或即将被淘汰。因此在学校要学的不仅是书本上的东西,更重要的是自学的能力、独立思考的能力和动手的能力。要想在竞争异常激烈的现代社会立足,就必须有实力。在学校的时间是最好的学习机会,一定要珍惜好这有限的时间,多学知识,尽量充实自己,为以后进入社会多做准备。 参考文献 [1] 邹丽新,翁桂荣.单片机微型计算机原理,苏州大学出版社,2001.12 [2] 邹丽新,翁桂荣.单片机微型计算机及接口技术,苏州大学出版社,2002.4 [3] 徐爱钧,彭秀华.单片机高级语言环境编程与应用,北京电子工业出版社,2001.7 [4] 求是科技,单片机典型模块设计实例导航,北京人民邮电出版社,2004.5 [5] 高峰,单片微型计算机原理与接口技术,科学出版社,2007 [6] 李飞,单片机原理及其应用,西安电子科技大学出版社,2007 16






