毕业设计-基于单片机的作息时间控制.doc_第1页
毕业设计-基于单片机的作息时间控制.doc_第2页
毕业设计-基于单片机的作息时间控制.doc_第3页
毕业设计-基于单片机的作息时间控制.doc_第4页
毕业设计-基于单片机的作息时间控制.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

- 19 -基于单片机的作息时间控制江宁校区 09机电一体化 刘荣指导老师 赵华【摘要】目前,我国单片机的应用领域主要是工业生产过程控制,数据采集与处理、实时控制及优化控制。单片机应用带来了巨大的经济效益,提高了效率,降低了成本,提高了产品质量,推动着生产力的发展。本次设计主要介绍单片机的应用实例,加深了对单片机的理解,进一步开拓视野,为今后应用微机解决生产实际问题起了一个入门的作用。通过本次设计,我掌握了解决问题的思路和方法使自己分析问题和解决问题的能力大为提高。关键字:单片机 接口芯片 寄存器目录1 课题目的意义 11. 1 课题的提出及意义22 总体方案设计32. 1总体设计及系统原理12-132. 2 芯片比较32.2.1 单片机选型 3-42.2.2键盘显示器接口芯片8279的使用 4-72.2.3存储器的选择7-92.2.4继电器的选择9-123 硬件设计 133.1寄存器部分22-253.2 电源与复位电路部分253.2.1电源部分 253.2.2复位电路 253.3 电铃和继电器部分 264 软件设计 2741 主程序设计274. 2 子程序设计 295 系统安装与调试 3151 软件调试3152 系统调试31致谢 31参考文献 321 课题目的意义1. 1 课题的提出及意义单片机作息时间控制实现了对时间控制的智能化,摆脱了传统由人来控制时间的长短的不便,是现代学校必不可少的设备。2 总体方案设计2. 1总体设计及系统原理在确定系统的大体形式之后,画出本系统的结构布局,电路原理如图2-2所示。单 片 机电源电路自动复位电路继电器电路显示电路电铃电路 图2-22. 2 芯片比较2.2.1 单片机选型当今单片机厂商琳琅满目,产品性能各异。常用的单片机有很多种:Intel8051系列、Motorola和M68HC系列、Atmel的AT89系列、荷兰Pilips的PCF80C51系列、Microchip公司的PIC系列、Atmel的AT90S系列、韩国三星公司的KS57C系列4位单片机、台湾义隆的EM-78系列等。我们最终选用了ATMEL公司的AT89C52单片机。AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8Kbytes的可反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和FLASH存储单元,功能强大AT89C52单片机适用于许多较为复杂控制应用场合。2.2.2键盘显示器接口芯片8279的使用单片机系统中有两种LED显示方式,即静态显示和动态显示,静态显示的优点是显示效果好,编程简单,但由于输出的每一位都需要锁存,使用的硬件较多;动态显示方式中,各位数码管的ah端并连在一起,每一时刻只有一位数码管被点亮,各位依次轮流被点亮,硬件电路简单,但由于需要不停地进行刷新显示,降低了CPU的效率,而且编程的工作量很大。为了解决动态显示中存在的问题,Intel公司研制出了专用的键盘、显示器接口电路芯片8279,该芯片能自动完成对显示的刷新,同时还可以对键盘自动扫描,识别闭合键的键号,使用非常方便。8279用A0来区分信息特征,当A0为0时,CPU从8279读出的是状态,写入的是命令,且每个命令也有自己的特征;当A0=1时读出和写入的都是数据。8279内部有两个缓冲区,即一个8字节的FIFO(FirstInFirstOut)键盘RAM和一个16字节的显示RAM,显示数据时只要将待显示数据的段码写入显示RAM即可;当有键闭合时,8279会自动执行去抖、得到键值、等待按键释放等操作,最后,将键值存入FIFORAM中,程序只需从FIFO中读取键值即可,编程十分简单,具体实验线路图17所示。8279键盘、显示器接口器件是实现人机对话的主要部件,它已为广大用户欢迎和广泛应用。然而在有些应用场合,既要键盘具有普通的数据输入和控制功能,又要键盘具备按钮功能。例如,微机控制的注塑机,在手动控制时需要有点动功能:按钮按下进行调模运动,按钮松开,调模运动停止。本文介绍使8279构成的键盘具有以上功能的实现方法,供读者参考使用。为了使8279具有合适的键盘、显示功能,首先要对芯片初始化。可适当地挑选8279的控制字,例如:使8279具有8位显示、右端输入、编码键盘、双键锁定时可选控制字10H.这时每次按键都将产生键特征码,并且存放在FIFOROM中,同时使8279的IRQ引脚变为高电平,可作为向CPU申请中断信号,如果CPU是中断开放的,则转向中断服务程序,可在中断服务程序中读取特征码。每当CPU读取FIFOROM中的数据后,8279自动撤消IRQ信号,IRQ引脚变为低电平。CPU返回主程序后,可由键特征码来决定程序的流向。问题是,当CPU从8279的FIFOROM中读取键特征码后,IRQ虽然恢复底电平,但FIFOROM中的数据并没有消失,仍保存在里面,这时即使使用对改8279清除的指令D3H,也不能将FIFOROM中的数改变,只有按其它键才能改变FIFOROM中的数据,因这样是无法实现按钮功能的。为了使键盘具有按钮功能,应该利用8279的传感方式功能,在传感器方式中,8279每当检测到传感状态变化时,IRQ就变为高电平,图1是以8031CPU构成的系统为例,说明IRQ引脚电平的翻新过程。 8279的IRQ端经反相器接到8031的INT1端(即P3.3引脚)。先将8279设置成编码键盘,允许INT1中断,当键按下时,反相器输出低电平,CPU进入中断服务程序,读取键特征码后,又为高电平。返回主程序后,转向功能程序(例如调模进)。输出控制信号(例如P1.0为“1”时调模进电磁阀得电)后,将8279设置为传感器方式,并且不允许INT1中断,然后调试P3.3是否为低电平。如果按键松开,8279将测出传感器状态发生变化,而使IRQ由低电平转为高电平。也就是说P3.3脚为低电平时,按键已经松开,程序重新设置8279为编码键盘,INT1中断开放,以便使键盘脱离按钮功能。实现以上功能的程序清单如下:中断服务程序略,以上方法在注塑机控制器上使用,证明是完全正确的。2.2.3存储器的选择由于计算机集成芯片技术的发展,存储器的价格已下降,因此,为保证应用项目的正常投运,一般要求PLC的存储器容量,按256个I/O点至少选8K存储器选择。需要复杂控制功能时,应选择容量更大,档次更高的存储器。(一) 冗余功能的选择、 控制单元的冗余() 重要的过程单元:CPU及电源均应1比冗余。() 在需要时也可选用PLC硬件与热备软件构成的热备冗余系统、重化或重化冗余容错系统等。、 I/O接口单元的冗余() 控制回路的多点I/O卡冗余配置。() 重要检测点的多点I/O卡可冗余配置。() 根据需要对重要的I/O信号,可选用重化或重化的I/O接口单元。(二) 经济性的考虑选择PLC时,应考虑性能价格比。考虑经济性时,应同时考虑应用的可扩展性、可操作性、投入产出比等因素,进行比较和兼顾,最终选出较满意的产品。 输入输出点对价格有直接影响。每增加一块输入输出卡件就需增加一定的费用。当点数增加到一数值后,相应的存储器容量、机架、母板等也要相应增加,因此,点数的增加对CPU选用、存储器容量、控制功能范围等选择都有影响。在估算和选用时应充分考虑,使整个控制系统有较合理的性能价格比。引脚功能CS:片选信号。高电平有效,低电平时进入等待模式。在连续的指令之间,CS信号必须持续至少250ns的低电平,才能保证芯片正常工作。CLK:串行时钟信号。在CLK的上升沿,操作码、地址和数据位进入器件或从器件输出。在发送序列时,CLK最好不停止,以防止读/写数据的错误。DI:串行数据输入。可在CLK的同步下输入开始位、操作码、地址位和数据位。DO:串行数据输出。在CLK同步下读周期时,用于输出数据;而在地址擦/写周期或芯片擦/写周期时,该端用于提供忙/闲信息。VSS:接地。VCC:接5V电源。ORG:存贮器构造配置端。该端接VCC或悬空时,输出为16位;接GND时,输出为8位。指令及时序地址擦指令(ERASE)该指令用于强迫指定地址中所有数据位都为“1”。一旦信息在DI端上被译码,就需使CS信号保持至少250ns的低电平,然后将CS置为高电平,这时,DO端就会指示“忙”标志。DO为“0”,表示编程正在进行;DO为“1”,表示该指定地址的寄存器单元已擦完,可以执行下一条指令。擦/写允许指令(EWEN)由于在上电复位后AT93C46/56/66首先将处于擦写不允许状态。故该指令必须在所有编程模式前执行,一旦该指令执行后,只要外部没有断电就可以对芯片进行编程。地址写指令(WRITE)写指令时,先写地址,然后将16位的或8位数据写入到指定地址中。当DI端输出最后一个数据位后,在CLK时钟的下一个上升沿以前,CS必须为低,且需至少保持250ns,然后将CS置为高电平。地址读指令(READ)读指令用于从指定的单元中把数据从高位到低位输出至DO端,但逻辑“0”位先于数据位输出。芯片擦指令(ERAL)该指令可将整个存贮器阵列置为,其它功能与地址擦指令相同。芯片写指令(WRAL)该指令可将命令中指定的数据写入整个存贮器阵列,其它功能与地址写指令相同。该指令周期所花费时间的最大值为30ms。擦/写禁止指令(EWDS)使用该指令可对写入的数据进行保护,操作步骤与擦/写允许指令相同。2.2.4 继电器的选择1) 按使用环境选型 使用环境条件主要指温度、湿度、低气压、振动和冲击。此外,尚有封装方式、安装方法、外形尺寸及绝缘性等要求。由于材料和结构不同,继电器承受的环境力学条件各异,超过产品标准规定的环境力学条件下使用,有可能损坏继电器,可按整机的环境力学条件或高一级的条件选用。对电磁干扰或射频干扰比较敏感的装置周围,最好不要选用交流电激励的继电器。选用直流继电器要选用带线圈瞬态抑制电路的产品。2) 按输入信号不同确定继电器种类按输入信号是电、温度、时间、光信号确定选用电磁、温度、时间、光电继电器,这是没有问题的。这里特别说明电压、电流继电器的选用。若整机供给继电器线圈是恒定的电流应选用电流继电器,是恒定电压值则选用电压继电器。3) 输入参量的选定与用户密切相关的输入量是线圈工作电压(或电流),而吸合电压(或电流)则是继电器制造厂控制继电器灵敏度并对其进行判断、考核的参数。对用户来讲,它只是一个工作下极限参数值。控制安全系数是工作电压(电流)/吸合电压(电流),如果在吸合值下使用继电器,是不可靠的、不安全的,环境温度升高或处于振动、冲击条件下,将使继电器工作不可靠。整机设计时,不能以空载电压作为继电器工作电压依据,而应将线圈接入作为负载来计算实际电压,特别是电源内阻大时更是如此。当用三极管作为开关元件控制线圈通断时,三极管必须处于开关状态,对6VDC以下工作电压的继电器来讲,还应扣除三极管饱和压降。当然,并非工作值加得愈高愈好,超过额定工作值太高会增加衔铁的冲击磨损,增加触点回跳次数,缩短电气寿命,一般,工作值为吸合值的1.5倍,工作值的误差一般为10%。4) 根据负载情况选择继电器触点的种类和容量触点组合形式和触点组数应根据被控回路实际情况确定。动合触点组和转换触点组中的动合触点对,由于接通时触点回跳次数少和触点烧蚀后补偿量大,其负载能力和接触可靠性较动断触点组和转换的动断触点对要高,整机线路可通过对触点位置适当调整,尽量多用动合触点。根据负载容量大小和负载性质(阻性、感性、容性、灯载及马达负载)确定参数十分重要。认为触点切换负荷小一定比切换负荷大可靠是不正确的,一般说,继电器切换负荷在额定电压下,电流大于100mA、小于额定电流的75%最好。电流小于100mA会使触点积碳增加,可靠性下降,故100mA称作试验电流,是国内外专业标准对继电器生产厂工艺条件和水平的考核内容。极性转换、相位转换负载场合,最好选用三位置的K型触点,不要选用二位置的Z型触点,除非产品明确规定用于三相交流负载转换。否则随着产品动作次数的增加,其燃弧也会增大,Z型触点可能导致电源被短路。在切换不同步的单相交流负载时,会存在相位差,所以触点额定值应为负载电流的4倍,额定电压为负载电压的2倍。适合交流负载的触点不一定适合于几个电源相位之间的负载切换,必要时应进行相应的电寿命试验。 3 硬件设计 3.1存器部分状态寄存器: 状态寄存器包括四个非易失性控制位,两个易失性状态位。控制位可以设置看门狗定时器的操作,存储块锁存保护,状态寄存器被设计成“状态记录员”。状态寄存器(缺省状态为30H)7654321000WD1WD0BL1BL0WELWIP写入程序位(WIP)是一个易变性的、只读位,指示装置的是否忙于内部非易变性写操作。使用RDST指令可以使WIP位被读出。当设置为1时,非易变性写操作在进行中,当设置为0时,进行中没有写操作。 写使能锁存位(WEL)指示“写使能”锁存的状态。当WEL为1时,锁存器被置位;当WEL为0时,锁存器被复位。WEL是一个易变性的、只读位。WREN指令可以设置WEL位,WROS指令可以使WEL位复位。块锁存位BL0和BL1,设置块锁定保护的标准。这些非易变位可以用WRSR指令编程,允许使用者保护存储器序列的1/4,1/2,全部或空。被块锁存保护排列的任一部分只能读不能写。它将保护到BL位被改变使存储器部分不能块锁存保护。状态寄存器位序列地址保护BL1BL0X5043/X504500无01$180-$1FF10$100-$1FF11$000-$1FF读状态寄存器: 读状态寄存器,把/CS降为低电平来选择该装置,接着发送8位RDSR指令。状态寄存器的内容被转移到SO引线上,通过CLK计时。状态寄存器在任何时间都可以被读出,甚至在写周期过程中。写状态寄存器: 在写数据到写状态寄存器之前,先发布WREN指令来设置“写使能”锁存器(WEL)。首先使/CS变为低电平,对该装置定时WREN指令,再把/CS拉成高电平。再次把/CS拉成低电平,在8位数据之后,进入WRSR指令。这8位数据与状态寄存器的内容一致。当/CS变为高电平时操作结束。如果在WREN和WRSR之间/CS没有变成高电平,WRSR指令将无效。芯片保护矩阵WREN命令 (WEL)芯片引脚 (WP) 存储块状态寄存器(BL0,BL1,WD0,WD1)被保护的区域不被保护的区域0X被保护被保护被保护X0被保护被保护被保护11被保护写使能写使能图3-7:读状态寄存器时序图3-8:写状态寄存器时序读存储序列: 当从EEPROM存储序列中读时,首先把/CS拉成低电平以选择芯片,8位READ指令被传输到芯片中,接着是8位的地址。READ指令的第3位选择芯片的高位或地位,在READ代码和地址被发送以后,在选择的地址中且存储在存储器中的数据被转移到SO引线上。存储器下一个地址存储的数据通过继续提供时钟脉冲可以被读出。每一个数据的字节被转移以后地址将自动增加到更高的地址。当达到最高地址,地址计算器变为000,允许读周期无限的继续。当把/CS引脚拉成高电平时,读操作停止。写存储序列:在写数据到存储器序列之前,先发布WREN指令来设置“写使能”锁存器(WEL)。首先使/CS变为低电平,对该装置定时WREN指令,再把/CS拉成高电平。再次把/CS拉成低电平,在8位地址之后,进入WRITE指令,接着数据就被写入。WRITE指令的第3位包含地址位A8,可以选择序列的高位或低位。如果在WREN和WRITE之间/CS没有变成高电平,WRITE指令将无效。WRITE指令至少需要16个时钟周期,CS在整个操作过程中必须保持低电平。操作者可以继续写入16字节的数据。唯一的限制是这16个字节必须存在同一页中。一页的地址开始于地址x xxxx 0000 ,结束于地址xxxxx 1111。如果字节地址达到了该页的最后一个字节,并且时钟仍然继续,计算器将返回到该页的第一个地址,写在以前写过的数据上。为了写操作能被完成,在时钟周期内被写入的最后的数据字节的0位以后CS必须被拉成高电平。如果它在任何时间没有被拉成高电平,写操作将不能完成。 在写过程中跟随着一个状态寄存器或存储序列写时序,状态寄存器可以被读入来检查WIP位。非易变写过程中WIP处于高电平。图3-9:存储序列时序图3-10:写存储时序3. 2 电源与复位电路部分 3.2.1 电源部分 本次设计应用的电压有+5V。220V交流电源经变压器,整流,滤波后分别进入芯片7805,产生+5V,这些电源的具体应用情况如下:+5V电源:单片机及外围电路所用电源+9V电源:压电喇叭所用电源3.2.2复位电路当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。 上电复位要求接通电源后,自动实现复位操作。常用的上电复位电路如图3-12(a)中左图所示。图中电容C1和电阻R1对电源十5V来说构成微分电路。上电后,保持RST一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻R1,也能达到上电复位的操作功能,如图3-12(a)中右图所示。 图 3-12要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。常用的上电或开关复位电路如图3-14(b)所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。根据实际操作的经验,下面给出这两种复位电路的电容、电阻参考值。图3-12(a)中:Cl10-30uF,R11k图3-12(b)中:C21uF,Rllk,R210k本系统的复位电路采用上电复位。3. 6 电铃和继电器部分 当定时时间到了,压电喇叭则发出一阵声响,时间到时发出一阵声响,按下K4键可以停止声响。也可以启动继电器,由继电器可以控制放音机。4 软件设计单片机作息时间控制的动作利用时间计时处理来做秒计数,当所设置的时间到了,则发出一阵声响,启动继电器,由继电器可以控制放音机开启或关闭。单片机定时器负责定时的计数,不会因为按键处理而中断时间秒数的增加,时,分,秒数据是存在变量内并写入七段显示器的缓冲区内,而由显示器扫描程序中定时扫描而显示出时间。41 主程序设计 在主控程序循环中主要工作为扫描是否有按键,若有按键则应做相应的功能处理,同时也扫描显示器显示时间数据,并检查所设置的时间是否到了,图41为主程序控制的工作流程。时间计时处理程序是等过了1S后,则更新时间数据,将最新的时,分,秒的数据转换为数字数据并显示在七段显示器上。程序中是这样判断是否过了1S的:设一旧秒数变量,当新旧秒数变量不一样时,则表示已过了1S,要做相关程序时间处理了。主程序开始初始化定时器初始化变量继电器OFF,消除电铃标志LED闪动,表示程序开始执行扫描显示器更新时间数据,定时时间到K1:设置现在的时间K2:显示定时设置时间K3:设置定时时间K4:电铃ON/OFF是否按K1、K2、K3、K4键? 图 414. 2 子程序设计 主要控制子程序说明如下: T0_INT:定时器0计时中断程序每隔5ms中断一次; DELAY:延时子程序; DELAY1:控制七段显示器延时时间; LED_BL:工作LED闪动控制; SCAN1:七段显示器扫描一遍; LOAD_DATA:加载七段显示器显示数据“0”; INIT:初始化控制变量; INIT_TIMER:初始化定时器接口,使用定时器0模式0计时; TIME_PRO:更新时分秒数据; CONV1:将分及秒的数据转化为七段显示器显示数据并写入显示内存内; CONV:将时及分的数据转换为七段显示器显示数据并写入显示内存内; SET_TIME:设置现在的时间包括小时及分钟; TIME_OUT:过了1S后则更新时间并检查定时时间是否到了; LOOK_

温馨提示

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

评论

0/150

提交评论