还剩38页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
多路定时器的电路设计与制作摘要多路定时器的电路简单,实现容易,操作方便,在日常生活中有广泛的应用以单片机AT89S51为核心的多路定时控制器,可以对多路家用电器进行定时开关控制,实现一个控制器可以控制多路用电设备,同时还具有时钟校准、时间显示、报警等功能,为以后实现网络控制的数字家庭提供一些基础在本文中,着重介绍了多路定时器的实现方法,元器件的选择首先,本文介绍了多路定时控制器的背景及其设计思路其次,本文着重介绍了单片机应用系统的设计和元器件的选择,以及他们的工作原理最后,实物的制作,介绍了电路板的焊接以及焊接时的注意事项在附录中,本文给出了定时控制器的设计程序关键词单片机,定时器,元器件ThedesignandproductionofmultipletimercircuitAuthor:JiangshuangshuangTutor:TanghailingAbstractSummarymultipletimercircuitissimpleachievingeasyeasytooperateandhasawiderangeofapplicationsineverydaylife.Withthecoreofsingle-chipAT89S51multiplextimecontrollertimeswitchcontrolsovermultipleappliancesimplementsacontrollercancontrolmultipledevicesandalsohasatimeclockcalibrationdisplayalarmfunctionimplementedforthefuturedigitalhomeprovidessomebasisfornetworkcontrol.InthisarticlefocusesonthemethodofmultiplexingtimerandThechoiceofcomponents.Firstofallthisarticlediscussesanoverviewofmultiplextimecontrollerandtheemergenceoftheinevitabilityanddesignideas.Secondthisarticlefocusesonsingle-chipmicrocomputerapplicationsystemdesignandcomponentselectionandhowtheywork.FinallythearticlewasusinguniversalplatemadeinkindintroducedtheBoardsconsiderationsforweldingandsoldering.IntheAppendixthetimecontrollerdesignproceduresaregiveninthisarticle.Keywords:Monolithicintegratedcircuit,Timer,Components目录TOC\o1-3\h\z\u1绪论………………………………………………………………………….……
11.1设计背景……………………………………………………………..……..
2.2硬件电路设计框图………………………………………………………...23单片机应用系统的硬件设计……………………………………………………..
33.1单片机的选择………………………………………………………………...
33.2单片机最小应用系统…………………………………………………………
33.
2.1时钟电路的设计……………………………………………………..…...
53.
2.2复位电路的设计………………………………………………………….
63.3蜂鸣器电路的设计……………………………………………………………
93.
93.
103.
113.
133.
133.
153.
7.
153.
7.
153.
7.
1.1设计背景人类最早使用的定时工具是沙漏或水漏,但在钟表诞生发展成熟之后,人们开始尝试使用这种全新的计时工具来改进定时器,达到准确控制时间的目的随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测的更新,定时、延时装置在工业控制中得到广泛利用它可以实现信号的异步传送,同时它也被广泛的利用在仪表、通信、家电控制等在实时检测和自动控制的单片机应用系统中,单片机通常是作为一个核心部件来使用,根据硬件结构和具体应用对象的特点,通过与软件的结合来加以完善单片机由于具有独特的定时和计数功能得以广泛利用
[1]定时器一般分两种类型,一种是基于模拟技术的传统产品,曾经被广泛的应用过,但现在已进入淘汰之列另一种是基于数字技术的心产品,该产品功能强大,已取代了前者随着单片机性能比的不断提高,新一代产品的应用越来越广泛,大的可以构成复杂的工业过程控制系统,完成复杂的控制功能,小的可以用于家电控制,甚至能够用来做儿童的电子玩具等新产品功能强大,灵活好用,体积小,与适当的接口芯片配合连接,可以构成各种功能各异的微电子产品
[2]
1.2设计内容本文主要设计一个多路定时控制器,它是在完成单片机最小系统板设计与制作的基础上通过软件设计的一款多路定时器,使它具有正常数字钟功能,包括时间校正,具有至少两路定时开关控制功能,每路定时时间可以任意设置其可以控制多种家电如点灯、电视、录音机、热水器、空调、电饭煲等要求控制精确、时间误差小,主要考虑如何实现精确定时及定时长度问题2整体设计方案
2.1设计思路本设计是基于AT89S51的多路定时器的设计,所以51单片机是核心
(1)用时钟芯片DS1307作为系统的时钟/日历,当前的时间通过它来读出
(2)系统的显示采用的4位数码管,分别用74LS48和ULN2803来作为LED的段驱动和位驱动芯片,从而控制数码管的显示
(3)时间调整与定时时间的输入通过接入按键电路实现,分别定义为SET键(时间调整设置位)其功能是当该键按下时,进入时间调整功能ALM键(定时时间设置键)其功能是当该键按下时,进入定时时间输入功能+1键其功能是当该键按下时,被调整位加一RET键其功能是当该键按下时,指向下一个要调整的位
(4)报警声响由蜂鸣器产生
(5)外部电路电源的通断用继电器来完成
2.2硬件电路的设计框图根据设计思路,硬件电路设计框图如图
1.1所示其中包括七个部分按键输入电路、时钟与复位电路、蜂鸣器电路、LED显示器及驱动电路、继电器电路、电源电路和时钟、日历电路图
1.1硬件电路设计框图3硬件设计单片机应用系统是指以单片机为核心,配以一定的外围电路和软件,能实现某种或几种功能的应用系统一个单片机应用系统的硬件设计包括两部分内容一是单片机系统的扩展部分设计,它包括存储器扩展和接口扩展存储器扩展指EPROM、EEPROM和RAM的扩展接口扩展是指
8255、
8155、8279以及其他功能器件的扩展二是各功能模块的设计,根据系统功能要求配置相应的A/D,D/A,键盘,显示器,打印机等外围设备
[1]
2.1单片机的选择AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISPIn-systemprogrammable的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案AT89S51具有如下特点40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器
[2]图
2.1AT89S51引脚配置图AT89S51各引脚功能VCC AT89S51电源正端输入,接+5VVSS:电源地端XTAL1系统时钟的反相放大器输入端XTAL2系统时钟的反相放大器输出端,一般只要在XTAL1和XTAL2上接一个石英振荡晶体系统就可以了,此外可以在两引脚与地之间加入一个30PF的小电容,可以使系统更稳定,避免噪声干扰从而死机RESET复位输入当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间EA/Vpp访问程序存储器控制信号/编程电源输入当EA端保持高电平时,访问内部程序存储器,访问地址范围为0-4KB在FLASH编程期间,此引脚也用于施加12V编程电源(Vpp)ALE/PROG低八位地址锁存器启用信号AT89S51可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0~A7)锁进锁存器中,可以用来驱动其他周边晶片的时基输入PSEN外部程序储存的读选信号输出端,低电平有效AT89S51可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围PORT0(P
0.0~P
0.7)8位通用输入/输出端口和片外8位数据,低8位地址复用总线端口当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0~A7)及数据总线(D0~D7)必须外加一个锁存器将端口0送出的地址锁存成为A0~A7,再配合端口2所送出的A8~A15合成一个完整的16位地址总线,而定址到64K的外部存储器空间PORT1(P
1.0~P
1.7)一个内部提供上拉电阻的8位双向I/O口,其输出缓冲器可以推动4个LSTTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据PORT2(P
2.0~P
2.7)8位通用输入/输出端口和片外8位数据,高8位地址复用总线端口将端口2的输出设为高电平时,此端口便能当成输入端口来使用P2除了当作一般I/O端口使用外,若是在AT89S51扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当作I/O来使用了PORT3(P
3.0~P
3.7)8位通用输入/输出端口,具有第二功能串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能其引脚分配如下P
3.0RXD,串行通信输入P
3.1TXD,串行通信输出P
3.2INT0,外部中断0输入P
3.3INT1,外部中断1输入P
3.4T0,计时计数器0输入P
3.5T1,计时计数器1输入P
3.6WR,外部数据存储器的写入信号P
3.7RD,外部数据存储器的读取信号
[3]
2.2主单片机最小应用系统用AT89S51芯片构成最小应用系统时,只需将单片机接上时钟电路和复位电路即可如图
2.4所示
2.
2.1时钟电路的设计单片机的晶振电路是一种典型电路,分为内部时钟和外部时钟,本文采用的是内部时钟方式选择一个12MHZ的晶振外接两个30PF的谐振电容,电路图如图
2.2所示图
2.2时钟电路AT89S51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器由于该晶振使用的是12MHZ的晶体,因此它的时间周期是
0.167us,机器周期为1us
2.
2.2复位电路的设计单片机的复位是由外部的复位电路来实现的,只要在REST复位引脚接一个电容到VCC,接一个电阻到地就可以了其原理在给系统通电时,电容两端相当于是短路,从而加到REST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,单片机开始正常工作电路图如下图
2.3复位电路图
2.4单片机最小应用系
2.3蜂鸣器电路的设计按设计要求,当定时时间到时要有声音提醒信号产生,可选择一只蜂鸣器来实现这一功能压电式蜂鸣器(HA)工作时约需10mA的驱动电流,并设计一个相应的驱动及控制电路电路设计如图
2.5所示,蜂鸣器(HA)作为三极管VT1的集电极负载,当VT1导通时,蜂鸣器发出鸣叫声音,VT1截止时,蜂鸣器不发声R3是限流电阻(防止BE结过流损坏以及减轻对前级的影响)图
2.5蜂鸣器电路原理图蜂鸣器电路与单片机的接口VT1的基极接到单片机P1口的P
1.7引脚,P
1.7引脚作为输出口使用当P
1.7=0时,VT1导通,使蜂鸣器中有电流通过,而产生蜂鸣音当P
1.7=1时,VT1截止,蜂鸣器的两引脚间的直流电压接近于0V,蜂鸣器不发生
2.4按键电路设计与器件的选择按键是一组常开的按键开关,闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动为了消除抖动,本文在软件中采用了相应的软件程序来处理,当发现有键按下时,延时10-20ms再查询是否有键按下,若没有键按下,说明上次查询结果为干扰或抖动;若仍有键按下则说明闭合键已稳定在本设计中需要4个按键,因此选择独立式键盘如图
2.6所示,电路由按键和4个电阻组成,按键分别命名为SET、ALM、+1和RET键,按键可以采用轻触开关图
2.6键盘接口电路原理图
(1)当SET键被按下时,,在单片机的INT1引脚产生一个低电平触发中断请求信号,CPU响应中断请求时,就转移到INT1中断服务程序入口地址,执行INT1的中断服务程序设计INT1的中断服务程序的功能是调整当前时间
(2)当ALM键被按下时,在单片机的INT0引脚产生一个低电平触发中断信号,CPU响应中断请求时,就转移到INT0中断服务程序的入口地址,执行INT0的中断服务程序INT0的中断服务程序的功能是输入定时时间
(3)+1调整健功能分别对时间值的分十位、分个位、秒的十位、秒的个位进行+1调整,即该键每按下一次,对应的时间调整位+1闸管的伏安特性和主要参数
(4)RET确认键功能确认,即对+1调整位进行确认,当该键按下时,说明被调整位的值已经确定,转去调整下一位[4~6]
2.5LED显示器电路设计与元器件的选择LED显示器的驱动是一个非常重要的问题,由系统硬件设计框图可知,显示电路由LED显示器、段驱动电路和位驱动电路组成由于单片机的并行口不能直接驱动LED显示电路,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能够正常工作如果驱动能力差,即负载能力不够时,显示器亮度就低,而且驱动电路长期在超负荷下运行容易损坏因此,在实际使用中必须接入LED驱动电路本文用到的4个数码管均是共阴极的当发光二极管导通时,它就会发光每个二极管就是一个笔划,若干个二极管发光时,就构成了一个显示字符将单片机的I/O口控制相应的芯片与数码管的a-g相连,高电平的位对应的发光二极管亮,这样,由I/O口输出不同的代码,就可以控制数码管显示不同的字符例如当I/O口控制芯片输出的代码是00111111时,数码管显示的字符为0这样形成的显示字符的代码称为显示代码或段选码
2.
5.1LED显示器的选择本设计中,选择4位一体的时钟型LED显示器,简称“4-LED”,如图
2.7所示用“”前的2位显示“分”的十位和个位,用“”后的2位显示“秒”的十位和个位图
2.74-LED显示器引脚4-LED显示器引脚如图所示,是一个共阴极接法的4位时钟型LED显示器其中a、b、c、d、e、f、g为4位LED各段的公共引出端D
1、D
2、D
3、D4分别是每一个的共阴极输出端,dp是小数点引出端4位一体时钟型LED显示器的内部结构是由4个单独的LED和一个“:”LED组成,每个LED的段输出引脚在内部并联后,引出到器件的外部对于这种结构的LED显示器,它的体积和结构都符合设计要求,由于4位LED阴极的各段已经在内部接在一起,所以是用动态扫描方式
2.
5.2LED段驱动芯片的选择在本设计中,可以选择BCD-7段译码/驱动器作为段驱动电路这类芯片的型号有74LS
47、74LS
48、74LS
247、74LS248等,该类芯片具有译码、驱动的功能即在输入端输入要显示字形的BCD码,在输出端可以得到具有一定驱动能力的7段显示字形码图
2.774LS48芯片引脚如图
2.7所示,引脚图中大写字母A、B、C、D为BCD码的输入端,小写字母a、b、c、d、e、f、g为字形码输出端,LT测试输入端,RBI为消隐输入,RBO为消隐输出在使用时,将该芯片的输入端引脚A、B、C、D与单片机的P0口连接,该芯片的输出端7个引脚,与LED显示器的7个段码引脚相连接74LS48的作用是接受来自单片机的BCD码型的输入信号,经过译码和放大后,输出7段字形码到LED显示器,完成对BCD码到7段字形码的译码和驱动的功能表
2.1给出了74LS48BCD-7段译码/驱动器的输入与输出信号的对应关系表
2.174LS48BCD-7段译码器输入/输出端信号对照表输入端电平输出端电平显示字形输入端电平输出端电平显示字形DCBAgfedcbaDCBAgfedcba
0000011111100101110110150001000011010110111110160010101101120111000011170011100111131000111111180100110011041001110111192.
5.3LED位驱动芯片的选择LED的位驱动较常用的芯片有ULN2003A和ULN2803前者是具有7个达林顿电路的集成芯片,后者是具有8个达林顿电路的集成芯片2803芯片的电路原理和2003完全相同,只是在结构上2803比2003多一路驱动器本文采用ULN2803,其引脚图和电路原理图如图
2.8所示图
2.8ULN2803芯片引脚图上图中的IN1~IN8引脚为输入端,OUT1~OUT8引脚为输出端在本设计中选用ULN2803作为位驱动电路,将该芯片的输入端引脚IN
1、IN
2、IN
3、IN
4、IN
5、IN
6、IN7与单片机的P2口连接,该芯片的输出端引脚OUT
1、OUT
2、OUT
3、OUT4与LED显示器的4个位码引脚D1~D4相连接ULN2803的作用是接受来自单片机的位码输入信号,经过反相放大后输出,送到LED显示器的位码引脚,完成对位码信号的反向和驱动的功能
2.
5.44-LED显示器接口电路可以采用单片机的P0口作为与LED的输出接口,即P0口的低四位作为LED的段码输出信号,P2口的低四位作为LED位码的输出控制信号硬件电路连接如图
2.8所示图
2.94-LED显示器接口电路原理图工作原理当P0口的低四位输出段码信号的BCD码后,通过74LS48芯片的译码和驱动作用,在其输出端输出具有一定驱动能力的七段字形码,由于4-LED的段码输入引脚是并联在一起的,所以每一位LED的段码输入引脚都能获得这个段码信号若要控制在每一时刻只有一位LED被点亮,必须靠位码信号控制P2口的低4位输出位码信号,经ULN2803A反向后接到LED的位码控制端,因此P2口的位码信号在每一时刻只有一位是“1”,其他位全为“0”,然后按时间顺序改变输出“1”的位置,控制在每一时刻只有一位LED被点亮,达到动态显示的目的
2.6继电器电路设计外部电路采用继电器控制,继电器的触点控制外部电源的通与断,触点闭合接通电源,触点断开切断电源三极管VT2电阻R4续流二极管VD1组成的继电器的控制电路当VT2的基极为低电平时,VT2导通,继电器线圈通电,控制触点闭合;当VT2的基极为高电平时,VT2截止,继电器线圈断电,控制触点断开从而实现了外部电路控制[6~7]控制电路如图
2.9所示图
2.9继电器输出电路图
2.7串行接口RTC芯片DS1307DS1307串行实时时钟芯片,是一种具有I2C总线接口的外围器件,该芯片内部具有BCD码时钟/日历和56个自己的非易失性SRAM的数据存储器;两线串行接口和频率可变的单方波输出;自动的掉电保护和开关循环等功能由于它具有可编程、低功耗、体积较小和引脚少的特点,特别适用于单片机应用系统中
2.
7.1DS1307时钟芯片的引脚功能DS1307的封装方式有8引脚DIP和16引脚SOIC方式,8引脚DIP封装方式如图
2.10所示图
2.10DS1307引脚图图
2.11DS1307内部结构图各引脚功能如下Vcc,GND直流电源接入引脚Vbat电池接入端,电池电压必须在
2.0V和
3.5V之间,能使DS1307再没有电源的情况下工作十年SCL时钟信号输入端,使数据在串行接口的传送同步进行,需外接上拉电阻SDA串行数据输入/输出的引脚,需外接上拉电阻SQW/OUT频率可变的方波输出端,有4种频率信号1Hz,4kHz,8kHz和32kHz可以选择SQW/OUT引脚需要外部上拉电阻X1,X2外接晶振引脚,与标准32kHz晶振相连,可以修正时钟的精确性
2.
7.2DS1307时钟格式和地址分配
2.
7.
2.1DS1307的内部寄存器与RAM地址分配DS1307的内部有存储器RAM与RTC时间寄存器两部分组成,地址分配如图
2.13所示RTC时间寄存器的地址从00H到07HRAM有56个字节,地址从08H到3FH在多字节数据存取时,地址指针自动加一,当地址指针指到RAM最后一位3FH时,自动循环到00H地址使用时,只要在程序中规定好第一个字节地址及读写字节数,读写N个字节与一个字节是一样方便图
2.11地址分配
2.
7.
2.2时钟和日历格式时间和日期都以BCD码形式分别存放在7个寄存器中,通过读这些相应的寄存器字节可以得到时钟和日期的信息通过写入相应寄存器字节可以设置时间和日期
(1)秒寄存器(地址00H)最高位CH(bit7)是时钟工作控制位,CH=0,晶振工作,当CH=1时,晶振停止工作其他7位是“秒”的时间值,bit6~bit4三位是“秒”的个位数数的范围00H~59H最初上电时,寄存器的状态没有被定义因此,在初始化时,首先将CH=0时振荡器工作
(2)分寄存器(地址01H)最高位bit=0,其他7位的含义与秒寄存器相同
(3)小时寄存器(地址02H)DS1307可以选择12小时或24小时两种工作模式小时寄存器的最高位bit=0,第6位(12/24)小时模式选择位若12/24位为1,选择12小时模式在12小时模式时,第5位是AM/PM设置位,高电平时为PM,第4位是小时的十数位;当12/24位为0时,DS1307工作在24小时模式在24小时模式下,第5位和第4位是小时的十数位,低4位是小时的个位数
(4)星期寄存器(地址03H)只使用了后3位表示星期值
(5)控制寄存器(地址07H)控制寄存器的功能是设置SQW/OUT引脚的输出方式以及输出方波的频率控制寄存器由8位组成,其中有4位的设置如下SQWE SQW/OUT引脚输出方波控制位,当SQWE=1时,SQW/OUT引脚的输出固定频率方波,方波频率决定于RS
1、RS0位的值当SQWE=0时,SQW/OUT引脚的输出由OUT位控制当输出方波的频率为1Hz时,时钟寄存器的值在方波下降沿时被更新OUT当方波输出无效时,控制SQW/OUT引脚的输出如果SQWE=0,当OUT=1时,SQW/OUT引脚输出高电平,当OUT=0时,SQW/OUT引脚输出低电平RS
1、RS0当方波输出有效时,这两位的值控制方波输出频率表列出了输出方波的频率表
2.2SQW/OUT引脚输出方波的频率与RS
1、RS0的对应关系RS1RS0输出方波的频率001Hz
014.096kHz
108.192kHz
1132.768kHz
2.
7.
2.3DS1307的操作时序DS1307的操作时序是由起始信号START、停止信号STOP、器件寻址、读/写操作、应答信号ACK和非应答信号NACK等组成,可以概括的归纳为以下几个步骤
(1)发送起始信号START
(2)发送DS1307的读/写命令字
(3)发送DS1307的读/写地址
(4)执行读写数据操作
(5)接受或发送应答信号
(6)发送停止信号STOP
1.器件地址格式与读写命令器件地址字含有2个部分第一部分是高7位,它们称为DS1307标识第二部分是最低位,它是读/写操作选择位,并用R/表示当R/=1时,执行读操作;当R/=0时,执行写操作
2.DS1307工作时有两种工作模式,即DS1307写操作和DS1307读操作
(1)DS1307写模式串行数据和时钟数据可通过SDA和SCL接受在接受到每一字节后,发送一个ACK信号表示数据收到在主机产生开始状态后,第一个接收到的是设备地址与读写命令字节,该字节包括两部分内容高7位是DS1307设备地址1101000),最低位是读写操作选择位(R/)在写操作时,该位R/=0,DS1307接受并译码设备地址后,对主机地址和写位地址确认后,在SDA输出一个确认信号ACK接下来主机传送一个DS1307寄存器地址,使DS1307设置寄存器地址指针,然后主机开始传送数据字节DS1307在每个字节收到后,发出确认信号ACK,终止写数据时由主机产生一个STOP信号来实现
(2)DS1307读模式在主机传送模式下,数据传送方向将改变在这个模式下,当串行时钟从SCL引脚输入时,串行数据从DS1307的SDA引脚被送出第一个字节(设备寻址字节)仍由7位DS1307地址1101000和读写标识位组成在DS1307读模式时,R/W=1,即DS1307的设备读命令字位D1H设备寻址完成后,DS1307从寄存器指针所指向的寄存器地址开始传送数据如果寄存器指针在读模式初始化时没有定义,则所读第一个数据的地址将由寄存器指针的当前值确定DS1307收到一个NOTACK(没有确认)信号时将结束读操作
[8]
2.8定时控制器的硬件电路原理图图
2.12多路定时器的原理图上图是定时控制器的硬件电路图,与电子时钟比较,多了4个LED数码管,位驱动电路芯片采用8位驱动器的2803芯片,显示器与单片机的接口是通过P
0、P2二个并行端口与74LS
48、UNL2803相连接组成用P0口输出段码信号BCD码,P2口输出位码信号值VT
1、R3组成蜂鸣器控制电路VT
4、R
6、R7组成DISP小数点驱动电路由DS1307芯片产生标准时间,通过读DS1307获得外部电路采用继电器控制,多个继电器并联实现多路的控制通过按键来调整当前时间以及设定好定时时间,再通过时钟芯片来显示当前时间,设定好定时时间后,由单片机P0口的低四位输出BCD码通过74LS48,经过译码和放大后,输出7段字形码送到LED显示器的段码引脚同时由单片机P2口的低四位接位驱动芯片,经过反相放大后输出,送到LED显示器的位码引脚,从而使得LED显示器显示倒计时,当定时时间到时,断开继电器,并且蜂鸣器发出报警该定时器的具有以下特点定时时间精确,定时时间长;应用范围广,可同时控制多个电器;操作简单,功能实用
[10]3软件设计定时控制器程序设计包括主程序设计,当前时间调整子程序的设计,定时时间输入子程序设计,LED动态扫描子程序设计,读时钟子程序设计等等相关程序在附录A中
[10],主程序流程图如图
3.1所示图
3.1主程序流程图4实物的制作及调试如下图所示,是该多路定时控制器的印制电路板接线图,此图是在电路原理图的基础上,利用PROTEL99SE画图工具生成的PROTEL99SE是应用于Windows9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以进行联网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作
[11]图
4.1PCB板图由于芯片太多不好排线,我利用双面布线画了一个双面板的PCB板图,但是因为学校的设备有限,只能制作出单面板的PCB板,所以我最终采取了用万能板焊接电路,完成实物的制作
4.1实物的制作流程本文采用的是万能板焊制电路板,首先,要绘制电路原理图,如
2.12的电路原理图所示,根据电路图的排版在万能板上大致的对应位置进行元器件的插装及焊接,焊接的方法一般遵循,先小后大(先焊接电阻、瓷片电容等较小的器件,然后焊接三极管,最后焊接较大的器件如电解电容)、先里后外(先焊接电路板中间的再焊接边上的)、先低后高(先焊接瓷片电容后焊接电解电容)焊完之后进行连线,确定整个电路全部焊接完毕之后,对照电路图和实际线路检查连线是否正确,有没有少接或错接等,再用万用表检测电路中有用万用表电阻档检查焊接和接插是否良好;元器件引脚之间有无短路,连接处有无接触不良,二极管、三极管、集成电路和电解电容的极性是否正确;电源供电包括极性、信号源连线是否正确;电源端对地是否存在短路(用万用表测量电阻)最后是最重要的一步,就是将附录中的程序导入到51芯片中去,在这之前得先确保程序的正确性,最后接通电源进行实物调试
4.2实物的调试结果
4.3元件焊接的相关知识1在焊接元器件时,需要注意以下几点
(1)在焊接时,元器件的选择要由小到大,由低到高,即先焊接个头小的元器件再焊接大元件
(2)焊接时间不宜过久,以免将铜线焊断,但也要将焊锡完全熔著,以免造成冷焊和虚焊
(3)在焊接时,焊点完全冷卻前,不可移动,否则,会造成虚焊,同时焊点的表面要平滑、有光泽
(4)电烙铁不用时要放置于电烙铁架上,防止烫伤人,并要随时保持烙铁头的清洁,防止有异物附着
(5)焊接完毕,要在烙铁头镀上薄层焊锡,避免氧化,并等冷却后再收存2焊接要领
(1)烙铁头与两被焊件的接触方式接触位置烙铁头应同时接触要相互连接的2个被焊件(如焊脚与焊盘),烙铁一般倾斜45度,应避免只与其中一个被焊件接触当两个被焊件热容量悬殊时,应适当调整烙铁倾斜角度,烙铁与焊接面的倾斜角越小,使热容量较大的被焊件与烙铁的接触面积增大,热传导能力加强如LCD拉焊时倾斜角在30度左右,焊麦克风、马达、喇叭等倾斜角可在40度左右两个被焊件能在相同的时间里达到相同的温度,被视为加热理想状态 接触压力烙铁头与被焊件接触时应略施压力,热传导强弱与施加压力大小成正比,但以对被焊件表面不造成损伤为原则
(2)焊丝的供给方法 焊丝的供给应掌握3个要领,既供给时间,位置和数量 供给时间原则上是被焊件升温达到焊料的熔化温度是立即送上焊锡丝 供给位置应是在烙铁与被焊件之间并尽量靠近焊盘 供给数量应看被焊件与焊盘的大小,焊锡盖住焊盘后焊锡高于焊盘直径的1/3既可
(3)焊接时间及温度设置 A、温度由实际使用决定,以焊接一个锡点4秒最为合适,最大不超过8秒,平时观察烙铁头,当其发紫时候,温度设置过高 B、一般直插电子料,将烙铁头的实际温度设置为(350~370度);表面贴装物料(SMC)物料,将烙铁头的实际温度设置为(330~350度) C、特殊物料,需要特别设置烙铁温度FPC,LCD连接器等要用含银锡线,温度一般在290度到310度之间 D、焊接大的元件脚,温度不要超过380度,但可以增大烙铁功率3焊接的操作步骤
(1)从烙铁架上拿出电烙铁,以45度靠紧焊接面进行预热;
(2) 然后将焊焊丝同时伸向被焊的元件脚及焊盘,一起接触被焊处;
(3) 焊锡丝熔化,向焊接处推入焊锡丝,使焊锡湿润焊盘與元件脚,当焊点上的焊锡成圆锥形时即抽离焊锡丝(影控制焊锡丝的熔化量不能过多,以免造成浪费);
(4) 在焊锡完全熔化候,移去烙铁头如焊锡过多,可把烙铁头上的焊锡甩干净,然后不用焊锡丝或极少量的焊锡丝重焊一遍,移去时正好吸去多余的焊锡;
(5) 如果焊点有连焊,也应将焊锡线(其中有助焊剂)与烙铁头一起接触在连焊的焊点之间,待焊锡丝与助焊剂一起熔化后,移去焊锡丝,再将烙铁头侧放着向下移走,吸去多余的焊锡;
(6) 如果要用电烙铁去除焊盘孔中的锡( 即挑孔),应该将印制板拿高,把烙铁头置于比印制板低的位置,将烙铁头在焊盘孔上擦几下,可以将焊盘孔中的焊锡吸流到烙铁头上去如果印制板较小,可以用烙铁将焊盘上的锡熔化, 然后迅速拿开烙铁,将印制板在工作台上轻敲一下,使焊盘上的熔锡振落;
(7) 将烙铁头上的多余焊锡甩在废锡盒中,再将电烙铁插入烙铁筒中
(8) 正常焊接时,电烙铁与平面应保持角度是45度
(9) 手拿锡线时,锡线头长度应留出3- 5CM
(10)焊点的标准是焊点呈锥形,焊锡要适量,表面有光泽,光滑,清洁等
(11)常见的不良焊点有虛焊,假焊,漏焊,锡球,锡尖等
(12) 烙铁尖上有锡渣时在焊锡棉上擦掉,焊锡棉要清洗干净,使用时要保持湿润
(13) 元件脚突出线路板太短会导致锡球或虚焊
(14) 排焊时,要把握用锡量,速度要快,拖到最后点应还有助焊剂
(15) 防止不良焊点的发生除要正确有焊接技术外,还应注意待焊接面必须是清洁的,如发现待焊接面不洁净,必须先处理光亮后,方可重焊
[12]结论本课题设计的多路定时控制器致力于多路家用电器进行定时开关控制实现一个控制器可以控制多个用电设备,同时具有时间校准、时间显示、报警等功能,可为人们的日常生活提供不少方便;设计克服了操作复杂,只能控制一个电器,定时时间误差大和定时时间短的缺点具备了操作简单,可同时控制多个电器,定时时间精确,定时时间长等优点但同时还存在的问题是,对继电器同时进行既开又关的动作存在一定的困难,可通过进一步的编程进行控制本设计是基于单片机实现的,较之前已经淘汰的基于模拟技术的传统技术来说,功能更强大,随着单片机性价比的提升,该定时器也被广泛的应用了,而且适用不同的电器,如电灯、空调、热水器、电视、电饭煲、儿童玩具、工业上复杂的控制系统等等致谢本课题在选题及研究过程中得到了唐海玲老师的悉心指导,她渊博的知识、严谨的治学态度和求实精神,精益求精的工作作风,深深地感染和时刻地激励着我从课题的选择到项目的最终完成都渗透了唐老师的大量心血和精力,她始终给予我细心的指导和不懈的支持,尤其是在对PCB板的制作上,唐老师给予了我极大的帮助,使我顺利的完成了实物的制作在论文的撰写方面,不厌其烦的对我进行指导和帮助,令我不但完成了论文,也学到了许多书本上学不到的知识,至此论文完成之际,特向导师致以诚挚的感激和深深的敬意在这次设计中,使自己多年来所学的理论知识与实践做到有机结合,进一步深化巩固自己所学的理论知识当然在设计过程中,还存在不少的问题,其主要是自己对大学四年所学的知识掌握不是十分牢固,这给设计带来一定的困难在做论文的过程中我重新复习和巩固了protel的有关操作以及单片机程序相关的知识,期间得到很多同学的帮助,对于他们的支持和帮助表示诚挚的感谢!最后向所有给予我帮助的老师、同学们再次表示衷心的感谢!参考文献
[1]邵贝贝.单片机认识与实践[M].北京清华大学出版社.2008
[2]许璟峰.看门狗定时器的设计与实施[J].北京电脑知识与技术.2010
[3]王志朴等.MCS—51单片机原理、接口及应用.北京北京理工大学出版社,2009
[4]范立南,谢子殿.单片机原理及应用教程[M].北京清华大学出版社,2003
[5]毕满清.电子技术实验与课程设计.山西机械工业出版社,2005
[6]李朝清.单片机原理及接口技术[M].北京航空航天大学出版社1996
[7]何立民.单片机应用文集[M].北京:北京航空航天大学出版社1991
[8]李建忠.单片机原理及应用.西安电子科技大学出版社2002
[9]谢瑞和.串行技术大全.北京清华大学出版社,2003
[10]刘丽莉.汇编语言程序设计.北京北京大学出版社,2010
[11]孙德刚.基于Protel的电子线路板设计[M].西安西安电子科技大学出版社,2009
[11]刘文涛.单片机应用开发实例[M].清华大学出版社.2005
[12]祁和义.电子制作实训.机械工业出版社,2010附录A
1.初始化程序SCLEQUP
1.1SDAEQUP
1.0ORG0000HLJMPCASH;设置主程序入口ORG0003HLJMPINTA;设置INT0中断服务程序入口ORG000BHLJMPT0_SEV;设置T0中断服务程序入口ORG0013HLJMPINTB;设置INT1中断服务程序入口ORG0030HCASH:MOVSP#60H;初始化程序,设置堆栈MOVA#00H;A寄存器清0MOV0HA;存储单元清0MOV31HAMOV32HAMOV33HAMOV34HAMOV35HACLR26HCLR27HCLR28HCLRRS0;设置0工作区CLRRS1MOVTMOD#01H;计数器初始化MOVTH0#0ECHMOVTL0#78HMOVTCON#10HMOVIE#8FH;开中断
2.主程序MAIN:MOV22H#04HMOV23H#08HMOV25H#01MOV26H#02MOV27H#05LP2:MOVR122HMOVR223HANLA#7FHRT:MOVR122HMOVR223HLCALLREAD;读时间LCALLBCDP26H:JNB26HP28HJNB27HRTNT:MOVR234HCJNER2#0J34HMOVR235HCJNER2#0J35H;判断定时时间到否SETBSDA;时间到,断开继电器SETB28H;开蜂鸣器,发出报警CLRSCLCLR26HSJMPBBJ34H:DEC34H;定时时间倒计时SJMPBBJ35H:DEC35HMOV34H#59SJMPBBP28H:JB8HNT1SJMPRTNT1:JBSCL27HSJMPRTP36H:MOVR236HCJNER2#59J36HCLR28HSETBSCLMOV36H#00HSJMPBBJ36H:INC36HBB:CLR27HLJMPRT
3.二进制树转换成BCD码子程序BCD:MOVR7#03;二进制数转换成BCD码MOVR1#40HMOVR0#2AHBCD1:MOVA@R0ANLA#0F0HSWAPAMOV@R1AINCR1MOVA@R0ANLA#0FHMOV@R1AINCR1DECR0DJNZR7BCD1RET
4.调整当前时间子程序INTA:PUSHACCPUSHBPUSHPSWMOV31H#08H;(31H)=08HMOV29H#00H;(29H)=00HLP0:JBP
1.5NEXT0;判断P
1.5键,无键按下转NEXT0LCALLDELAY1;有键按下,延时1msJBP
1.5LP0;判断是否松开,否,再判断LP1:JNBP
1.5LP1;是,转LP0INC29H;P
1.5松开后,(29H)+1MOV30H#1HSJMPLO1NEXT0:JBSCLL1;判断SCL键,无键按下转NEXT0LCALLDELAY1;有键按下,延时1msJBSCLNEXT0LD1:JNBSCLLD1MOV29H#0HMOV30H#1DJNZ31HLO1;是,(31H)-1SJMPLLLO1:MOVA31HCJNEA#08HLO2;是否时针十位?否,转LO2MOVA29HCJNEA#03HLA1;十位大于3吗?否,转LA1MOV29H#0H;是的,清零LA1:MOV40H29H;(29H)→40HSJMPL1;转L1LO2:MOVA31HCJNEA#07HLO3;是否时针个位?否,转LO3MOVA40HCJNEA#2A1MOVA29HCJNEA#4LA2MOV29H#0SJMPLA2A1:MOVA29HCJNEA#0AHLA2;是大于9?否,转LA2MOV29H#00H;(29H)清零LA2:MOV41H29H;(29H)→41HSJMPL1;转到L1LO3:MOVA31HCJNEA#06HLO4;是分针十位吗?否,转LO4MOVA29HCJNEA#06HLA3;大于6?否,转LA3MOV29H#00H;(29H)清零LA3:MOV42H29H;(29H)→42HSJMPL1;转L1LO4:MOVA29HCJNEA#0AHLA4;分针个位大于9?否,转LA4MOV29H#00H;(29H)清零LA4:MOV43H29H;(29H)→43HL1:MOVA31HCJNEA#04HLP0;(31H)=0返回,否则转LP0LL:MOVA40HANLA#0FHSWAPAADDA41HMOV32HAMOVA42HANLA#0FHSWAPAADDA43HMOV33HAPUSHPSWCLRRS0CLRRS1POPPSWPOPPSWPOPBPOPACCSETBEX0CLRTR0MOVTH0#0FFHMOVTL0#00HSETBTR0SETBET0MOVR126HMOVR225HMOVR032HLCALLWRITE;设置时间RETI
5.数码管扫描显示子程序T0_SEV:PUSHACC;LED定时扫描程序PUSHPSW;保护现场SETBRS1;RS
1、RS2=11HSETBRS0;选择3组工作寄存器CLRTR0;停止T0定时控制器CLRET0;停止T0中断ETBEA;关中断MOVR2#08H;设置显示器位数MOVR0#40H;设置段码首地址MOVR1#80H;设置位码首地址GO_ON:MOVAR2;送显示位数到ACJNEA31HNO_FLASH;判断是否闪烁位?否,转移到NO_FLASHDJNZ30HFLASH;是闪烁位,转移到FLASHNO_FLASH:MOVP2@R1;送位码到P2口MOVP0@R1;将段码送到P0口LCALLDELAY1;调延时子程序FLASH:INCR0;段码地址+1INCR1;位码地址+1DJNZR2GO_ON;判断8位都显示完否;没完继续显示下位MOVP2#00H;8位都显示完后,关显示器MOVTH0#0FCHMOVTL0#78H;重置T0计数初值POPPSWPOPACC;恢复现场SETBET0;允许T0中断SETBTR0;启动T0开始定时SETBEA;开中断RETI;中断返回DELAY1:MOVR3#02H;延时1ms子程序AGAIN:MOVR4#0F9HDELAY:DJNZR3AGAINRET
6.定时时间输入程序INTB:SETBP
1.5SETBSCLCLREX0CLREX1SETBEAPUSHACCPUSHBPUSHPSWMOV31H#04H;(31H)=04HMOV29H#00H;(29H)=00HLP0B:JBP
1.5NEXTB;判断P
1.5键,无键按下转NEXT0LCALLDELAY1;有键按下,延迟1msJBP
1.5LP1B;判断是否松开否,转LP0LP1B:JNBP
1.5LP0B;判断是否松开否,再判断INC29H;P
1.5松开后,29H+1MOV30H#1HSJMPLO1BNEXTB:JBSCLL1B;判断SCL键是否按下,否,转NEXT0LCALLDELAY1;有键按下,延迟1msJBSCLNEXTB;是否松开?否,转LP0LD1B:JNBSCLLD1BMOV29H#0;是否松开?否,转LD1,再判断MOV30H#1DJNZ31HLO1B;是,(31H)-1SJMPLLBLO1B:MOVA30HCJNEA#04HLO2BMOVA29HCJNEA#06HLA1BMOV29H#00HLA1B:MOV44H29H;(29H)→44HSJMPL1BLO2B:MOVA31HCJNEA#03HLO3BMOVA29HCJNEA#0AHLA2BMOV29H#0SJMPLA2BLA2B:MOV45H29H;(29H)→45HSJMPL1BLO3B:MOVA31HCJNEA#02HLO4B;是否分针十位?否,转LO4MOVA29HCJNEA#06HLA3BMOV29H#00HLA3B:MOV46H29HSJMPL1BLO4B:MOVA29HCJNEA#0AHLA4B;分针个位大于9?否,转LA4MOV29H#00HLA4B:MOV47H29H;(29H)→47HL1B:MOVA31HCJNEA#00HLP0B;31H=0返回,否则转LP0LLB:MOVA44HMOVB#10MULABADDA45HMOV35HAMOVA46HMOVB#10MULABADDA47HMOV34HAPOPPSWPOPBPOPACCCLRTR0MOVTH0#0FFHMOVTL0#00HSETBTR0CLRSDARETIEND附录B元器件列表元件大小数量AT89S51174LS481DS13071ULN2803A18脚排阻100欧1独立式按键4C
1、C230PF2C322µF1C
4、C512PF2VT
1、VT
2、VT
3、VT4901244-LED1VD
1、VD21N40012继电器JZC-32F/005V-HS32蜂鸣器1B112MHZ1Y132KHZ1BT12V1R1K7R
5.1K3R20Ω1R100Ω2。