基于单片机的定时控制电路的设计
2015-12-31 来源:eefocus
临近毕业之际,特以此设计告慰我留恋的大学生活,从此,我将从这里步入社会这所大学;从此,生活将掀开新的一页!
1.1 所选课题的题目及课题来源本人所选课题的题目为《基于单片机的定时控制电路的设计 》。
电子学的基础是测量科学,是来自现场的第一手资料,现场数据所反应的技术缺陷和技术优势是我们研究和探讨的永远的话题。
单片机技术发展到现在,正在向低成本,高效率,高可靠性的方向发展。
继电器是一种用电流控制的开关装置。是各种自动控制电路中必不可少的执行器件。
1.2 本课题所做的主要工作本课题的主要工作:利用单片机最小系统外加尽可能少的元器件
1. 实现定时控制测量的低成本,高效率,高可靠性。
2. 提供一种更新颖更合理的定时控制测量方法。
2 定时控制器的软硬件设计环境 2.1 软件环境 2.1.1 Proteus仿真软件简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件[9]。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。④具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。
Proteus主要用于绘制原理图并可进行电路仿真,Proteus ARES 主要用于PCB 设计。ISIS 的主界面主要包括:1 是电路图概览区、2 是元器件列表区、3 是绘图区。绘制电路图的过程如下:
单击2 区的P 命令即弹出元器件选择(Pick Devices)对话框,Proteus 提供了丰富的元器件资源,包括30 余种元器件库,有些元器件库还具有子库。利用该对话框提供的关键词(Keywords)搜索功能,输入所要添加的元器件名称,即可在结果(Results)中查找,找到后双击鼠标左键即可将该元器件添到2 区,待所有需要的元器件添加完成后点击对话框右下角的OK 按钮,返回主界面。接着在2 区中选中某一个元器件名称,直接在3 区中单击鼠标左键即可将该元器件添加到3 区。
由于是英国的软件,特别要注意的是绘图区中鼠标的操作和一般软件的操作习惯不同,这正像是司机座位和人行道走向和国内不同一样。单击左键是完成在2 区中被选中的元器件的粘贴功能;将鼠标置于某元器件上并单击右键则是选中该元器件(呈现红色),若再次单击右键的话则删除该元器件,而单击左键的话则会弹出该元器件的编辑对话框(Edit Component);若不需再选中任何元器件,则将鼠标置于3 区的空白处单击右键即可;另外如果想移动某元器件,则选中该元器件后再按住鼠标左键即可将之移动。
元器件之间的连线方法为:将鼠标移至元器件的某引脚,即会出现一个“×”符号,按住鼠标左键后移动鼠标,将线引至另一引脚处将再次出现符号“×”,此时单击鼠标左键便可完成连线。连线时在需拐弯的地方单击鼠标左键即可实现方向的改变。绘制好电路后,可利用1 区的绿色边框对3 区的电路进行定位。
2.1.2 Keil编译及调试软件简介
目前流行的51系列单片机开发软件是德国Keil公司推出的Keil C51软件,它是一个基于32位Windows环境的应用程序,支持C语言和汇编语言编程,其6.0以上的版本将编译和仿真软件统一为μVision(通常称为μV2)。Keil提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:μVision IDE集成开发环境(包括工程管理器、源程序编辑器、程序调试器)、C51编译器、A51汇编器、LIB51库管理器、BL51连接/定位器、OH51目标文件生成器以及Monitor-51、RTX51实时操作系统。
应用Keil进行软件仿真开发的主要步骤为:编写源程序并保存——建立工程并添加源文件——设置工程——编译/汇编、连接,产生目标文件——程序调试。Keil使用“工程”(Project)的概念,对工程(而不能对单一的源程序)进行编译/汇编、连接等操作。工程的建立、设置、编译/汇编及连接产生目标文件的方法非常易于掌握。首先选择菜单File—New…,在源程序编辑器中输入汇编语言或C语言源程序(或选择File—Open…,直接打开已用其他编辑器编辑好的源程序文档)并保存,注意保存时必须在文件名后加上扩展名.asm(.a51)或.c;然后选择菜单Project—New Project…,建立新工程并保存(保存时无需加扩展名,也可加上扩展名.uv2);工程保存后会立即弹出一个设备选择对话框,选择CPU后点确定返回主界面。这时工程管理窗口的文件页(Files)会出现“Target1”,将其前面+号展开,接着选择Source Group1,右击鼠标弹出快捷菜单,选择“Add File to Group ‘Source Group1’”,出现一个对话框,要求寻找并加入源文件(在加入一个源文件后,该对话框不会消失,而是等待继续加入其他文件)。加入文件后点close返回主界面,展开“Source Group1”前面+号,就会看到所加入的文件,双击文件名,即可打开该源程序文件。紧接着对工程进行设置,选择工程管理窗口的Target1,再选择Project—Option for Target ’Target1’(或点右键弹出快捷菜单再选择该选项),打开工程属性设置对话框,共有8个选项卡,主要设置工作包括在Target选项卡中设置晶振频率、在Debug选项卡中设置实验仿真板等,如要写片,还必须在Output选项卡中选中“Creat Hex Fi”;其他选项卡内容一般可取默认值。工程设置后按F7键(或点击编译工具栏上相应图标)进行编译/汇编、连接以及产生目标文件。
成功编译/汇编、连接后,选择菜单Debug—Start/Stop Debug Session(或按Ctrl+F5键)进入程序调试状态,Keil提供对程序的模拟调试功能,内建一个功能强大的仿真CPU以模拟执行程序。Keil能以单步执行(按F11或选择Debug—Step)、过程单步执行(按F10或选择Debug—Step Over)、全速执行等多种运行方式进行程序调试。如果发现程序有错,可采用在线汇编功能对程序进行在线修改(Debug—Inline Assambly…),不必执行先退出调试环境、修改源程序、对工程重新进行编译/汇编和连接、然后再次进入调试状态的步骤。对于一些必须满足一定条件(如按键被按下等)才能被执行的、难以用单步执行方式进行调试的程序行,可采用断点设置的方法处理(Debug—Insert/Remove Breakpoint或Debug—Breakpoints…等)。在模拟调试程序后,还须通过编程器将.hex目标文件烧写入单片机中才能观察目标样机真实的运行状况。
Keil软件Eval版(免费产品)的功能与商业版相同,只是程序的最大代码量不得超过2kB,但对初学者而言已是足够。Keil软件由于其强大的软件仿真功能,友好的用户界面以及易于掌握的特点而受到工程技术人员的欢迎,有人甚至认为Keil是目前最好的51单片机开发应用软件。
编译环境如下:
2.2 关键元器件2.2.1 AT89C51单片机工作原理
2 单片机的雏形
MCS-48单片机是美国INTE公司于1976年推出,它是现代单片机的雏形,包含了数字处理的全部功能,外接一定的附加外围芯片即构成完整的微型计算机,其主要的功能特征为:
8位CPU(中央处理器)、内置程序存储器(ROM)、随机存取数据存储器(RAM)和输入输出端口(I/O)全部集成在单一的芯片上而构成了完整的微型计算机。
1) 8位CPU。
2) 双列直插40PinDIP封装。
3) 所有指令均为1-2个机器周期。
4) 96条指令,大部分为单字节指令。
5) 2个工作寄存器。
6) 2个可编程定时/计数器。
7) 8层堆栈。
8) 单一+5V电源供电。使用6MHz外接石英晶体管振荡器,此时机器周期为2.5us。
2 单片机的发展,MCS-48系列单片机
8048和8748是最早期的产品,8048本身具有64x8位RAM,1kx8位的ROM,而后期的8049中的RAM大到256字节,ROM却增加到了4kBytes,这个成绩在当时是相当可喜的。还有一类的产品本身是不带程序存储器的,象8035和8039,它的程序存储器只能外接,当时常用的是EPROM(紫外线擦除电写只读程序存储器)一类的ROM。
MCS-48系列单片机还有几个产品,象8021和8022单片机,8021该系列中的低价型单片机,而8022则是包含了单片机所有功能,并集成了A/D转换器的产品。
现在MCS-48系列单片机已完全退出了历史舞台,由MCS-51系列单片机取而代之。
2.2.2 LED数码管的工作原理
(1)LED介绍
LED是一种较为常用的发光元件。目前以LED为发光元件而研制的显示屏应用可作为实时工业控制系统中的远距离实时信息显示器,对高要求的工艺流程进行实时显示。
目前,LED显示器的主要形式有两种,一种是能够显示各种字符、汉字和图像信息的阵列式LED。另一种则是只能显示0~9这10个阿拉伯数字及少数几个英文字母的数码式LED,即八段数码管。尽管阵列式LED从功能上来说完全取代数码式LED,但由于前者的成本造价要比后者高得多,实现方法要比后者复杂,故在很多场合还经常用到数码式LED。
(2)本电路采用共阴的七段LED。
2.2.3 继电器简介
2 继电器的构造和工作原理
电磁继电器是一种常见的继电器,其中 4098 型超小型继电器使用最为广泛。图 3-24 是这 种继电器的结构示意图
图 3—24 4098 型继电器继电器的工作原理是,当继电器线圈通电后,线圈中的铁芯产生强大的电磁力,吸动衔铁带动簧 片,使触点 1、2 断开,1、3 接通。当线圈断电后,弹簧使簧片复位,使触点 1、2 接通,1、3 断开。我们只要把需要控制的电路接在触点 1、2 间(1、2 称为常闭触点)或触点 1、3 间(称为常开触点),就可以利用继电器达到某种控制的目的。
4098 型继电器线圈的工作电压有 3 伏、6 伏、9伏、12 伏等多种规格。吸合时线圈中通过 的电流约为 50 毫安左右,触点间允许通过的电流可达 1 安培(250 伏)。
2 继电器的检测
1.可用万用表欧姆档 R×100 档测量继电器线圈的电阻。4098(6V)继电器线圈的电阻约为
100 欧姆左右。如电阻无限大,说明线圈已断路,若电阻为零,则说明线圈短路,均不可使用。
2.将线圈引脚 4、5 两端加上直流电压。逐渐升高电压,当听到“塔”的一声,衔铁吸合时电压值为继电器吸合电压。此电压值应小于工作电压值。继电器吸合后,再逐渐降低电压,再听到“咯”的一声释放衔铁时,衔铁复位;一般释放电压应为吸合电压的 1/3 左右,否则继电器工作将不可靠。
3 定时控制器的系统设计 3.1 定时控制器的硬件设计 3.1.1 电路模块框图
本电路采用基于MCS-51单片机,用LED进行显示的硬件设计方法,电路硬件模块图如下:
|
3.1.2 电路原理图
|
3.1.3 稳压直流电源设计
本系统设计为12V直流稳压电源输入,DC12V输入电压经电容滤波电路,经7805稳压管稳压,再进行二次滤波,输出较稳定的5V电压,给本系统供电。
流程图如下图所示:
3.1.4 数码管的驱动电路设计
(1)LED介绍
LED是一种较为常用的发光元件。目前以LED为发光元件而研制的显示屏应用可作为实时工业控制系统中的远距离实时信息显示器,对高要求的工艺流程进行实时显示。
目前,LED显示器的主要形式有两种,一种是能够显示各种字符、汉字和图像信息的阵列式LED。另一种则是只能显示0~9这10个阿拉伯数字及少数几个英文字母的数码式LED,即八段数码管。尽管阵列式LED从功能上来说完全取代数码式LED,但由于前者的成本造价要比后者高得多,实现方法要比后者复杂,故在很多场合还经常用到数码式LED。
(2)本电路采用共阴的七段LED。
3.1.5 继电器驱动电路
原理图设计如下
当JDQ0为高电平时,继电器K1导通,继电器K1 1脚输出低电平,JDQ2为低电平时,继电器K2处于常闭状态,继电器K2 1脚输出高电平,加载到电机两端的电压12V,电机转动。
3.2 系统仿真
系统设定定时时间为100秒,启动系统则自动进入倒计时状态,当倒计数值为0时,系统打开继电器开关,电机转动,带动负载。
3.2.1 电机未启动效果如下图所示
3.2.2 电机启动效果如下图所示
3.2.3 显示部分仿真
3.3 系统软件设计3.3.1 软件开发环境
软件采用C语言编制,采用proteus进行电路仿真。
软件环境:
Windows98、Windows2000、WindowsXP 操作系统
硬件环境:
电脑一台:配置CPU PII266M以上、内存64M以上、硬盘1G以上
3.3.2 状态驱动程序
本软件采用状态驱动程序的编程方法,即将所有程序的运行状态都统一编号,然后根据程序运行到的状态来执行相应的软件功能。通过统一编号能够将程序的运行情况系统的分析清楚,然后根据编号来完成功能。这样做的好处是编程者可以将复杂的应用程序通过状态来细化程序,把一个大系统人为分割成一个一个小的状态系统,大大降低了程序的编程难度。现在我们逐一介绍下本系统各个状态的实现功能。本系统我们分为二个运行状态。
●状态1:程序上电后自动进入检测定时控制状态,此状态可以实时显示定时控制和根据定时控制来控制继电器。在状态1下按设置键进入状态2。
●状态2:设置定时控制状态。当状态1下按设置定时控制键后可以进入设置定时控制状态。可以按加一键设置定时控制加一,可以按减一键设置定时控制减一,按下确认键回到状态1。
3.3.3 显示数码管程序
单片机通过IO来控制数码管点亮顺序来点亮数码管,其中showbuff数组是显示缓冲区,1位是十位,2位是个位。
void display()//数值显示
{
disdata[0]=0;
disdata[1]=tvalue/100;//百位数
disdata[2]=tvalue%100/10;//十位数
disdata[3]=tvalue%10;
if(disdata[1]==0) //如果百位为0,不显示
{
disdata[1]=10; //如果百位为0,不显示
if(disdata[2]==0)
disdata[2]=10; //如果百位为0,十位为0也不显示
}
if(tflag==1)
{
disdata[1]=11;
}
// LE = 0;
P0=ledcode[disdata[3]]; //显示个数位
// LE = 1;
COM4=0;
delay1ms(5);
COM4=1;
// LE = 0;
P0=ledcode[disdata[2]]; //显示十位数
// LE = 1;
COM3=0;
delay1ms(5);
COM3=1;
// LE = 0;
P0=ledcode[disdata[1]]; //显示百位数
// LE = 1;
COM2=0;
delay1ms(5);
COM2=1;
// LE = 0;
P0=ledcode[disdata[0]]; //显示编号
// LE = 1;
COM1=1;
delay1ms(5);
COM1=1;
}
4 致 谢
经过半年的忙碌和工作,本次毕业设计已经接近尾声,作为一个本科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及一起工作的同学们的支持,想要完成这个设计是难以想象的。
在这里要感谢我的导师老师。她平日里工作繁多,但在我做毕业设计的每个阶段,从外出实习到查阅资料,设计草案的确定和修改,中期检查,后期详细设计,装配草图等整个过程中都给予了我悉心的指导。我的设计较为复杂烦琐,但是指志老师仍然细心地纠正图纸中的错误。除了敬佩指导老师的专业水平外,她的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。
最后还要感谢大学四年来所有的老师,为我们打下专业知识的基础;同时还要感谢所有的同学们,正是因为有了你们的支持和鼓励。此次毕业设计才会顺利完成。
[1] 李文石,电子锁的发展和设计综述,五金科技,3:3-6,1993
[2] 王磊,PLC 控制的多功能磁卡式电子密码锁设计,河南大学学报,28(3):58-61,1998
[3] 宋文阁,李明颖,王学俊, 单片机控制IC卡电子锁,大连轻工业学院学报 18(2):111-115,1999
[4] 宁爱民,应用AT89C2051单片机设计电子密码锁 淮海工学院学报 12(2):28-31,2003
[5] 张迎新等.单片机原理及应用.电子工业出版社.2006.
[6] 李朝青等.无线发送/接收IC芯片及其数据通信技术选编(1).北京航空航天大学出版. 1999.
[7] 彭 为等.单片机典型系统设计实例精讲.电子工业出版社.2006.
[8] 楼然苗等. 李光飞.51系列单片机设计实例[M].北京:北京航空航天大学出版社,2003.
[9] 李鲁群. 编写Palm J2ME红外线“聊天”程序 .http://www.tele21.com.cn
[10] 李朝青.1998.单片机原理及接口技术.北京:北京航空航天大学出版社;
[11] 李朝青. 2000.PC机及单片机数据通信技术.北京航空航天大学出版社;
[12] 李军.2004.51系列单片机 高级实例开发指南.北京航空航天大学出版社;
[13] 全国大学生电子设计竞赛组委会.2005.全国大学生电子设计竞赛获奖作品选编(2003).北京:北京理工大学出版社;
[14] 张文峥,李先亮,张其善等. 2000.IrDA红外通信在导航仪中的应用. 电子技术应用;
[15] 邱玉春,李文俊. 2000.单片机系统中的红外通信接口.电子产品世界;
[16] 杨将新,李华军,刘到骏等.2006.单片机程序设计及应用(从基础到实践).电子工业出版社;
[17] 周立功.2004.LPC900系列Flash单片机应用技术,北京航空航天大学出版社;
[18] 周彦明. 2002.一种高可靠低功耗的89C2051系统.电子报;
[19] 黄耀军,周云,严国萍等. 2000.计算机红外无线互连的设计几实现. 电子技术;
[20] 黄智伟.2005.全国大学生电子设计竞赛训练教程.北京:电子工业出版社;
[21] 匿名. 2003.用PT2262实现可遥控式电子密码锁.电子设计应用;
[22] 薛宗祥,鹿树理,朱惠英等.1999.EPSON 8位单片机原理与应用.北京航空航天大学出版社;
[23] Intel corporation.1981.MCS-51(tm) family of single chip microcomputers: Users manual.Santa Clara: Intel Corporation
[24] M Mizumoto.1995.Realization of PID Controls by Fuzzy Control Methods.Fuzzy Sets and Systems
[25] Serial Infrared Physical Layer Specification, Version 1.3. October 15,1998,IBM corporation ,Hewlett-Packard Company, Sharp Inc.
[26] Link Management Protocol ,Version 1.1.January 23,1996,IBM Corporation.
[27] Serial Infrared Link Access Protocol(IrLAP),Version 1.1. June 16, 1996,IBM Corporation , [20]Hewlett-Packard Company, Apple Computer, Inc., Counterpoint Systems Foundry, Inc.
- 英飞凌携手马瑞利采用AURIX™ TC4x MCU系列推动区域控制单元创新
- 纳芯微联合芯弦推出NS800RT系列实时控制MCU
- GD32F103C8单片机的PWM输出试验
- GD32F103C系列单片机的PWM捕获功能
- 设计笔记 | 采用GD32F130系列MCU设计冰箱压缩机变频板方案
- 基于GD32L235系列MCU的微型便携式微型电源方案
- 基于GD32L235系列MCU的土壤湿度检测带磁力翻转式显示方案
- GD32VF103:采用RISC-V内核设计的MCU
- 德州仪器推出新款实时微控制器系统 可在汽车与工业应用中实现更智能的处理流程
- 关于GD32F2系列增强型MCU的介绍和应用