《基于单片机的多路多点定时控制器设计ppt课件概要.ppt》由会员分享,可在线阅读,更多相关《基于单片机的多路多点定时控制器设计ppt课件概要.ppt(44页珍藏版)》请在三一办公上搜索。
1、多路多点定时控制器设计,第一讲系统方案设计,本项目是XX有限公司开发一款产品,最初是针对电视转播台每周每天不同时刻段需转播不同节目,如果所有节目通过人工切换,需要有人24小时值班成本高,并且容易出错,如果有一种设备每周设置好后能自动切换则可以减少人力资源,并时间准确,不易出错。所以XX有限公司通过市场调研决定研发该产品。技术指标:1、显示年、月、日、时、分、秒、星期2、设置年、月、日、时、分、秒3、设置定时时间,时、分、秒4、15路控制,每路最多定时36个时间点5、每路定时时间到有显示、控制动作,并有声音报警功能6、有声音开关控制、背光控制功能7、量产后控制整套成本在240元内(材料、生产、销
2、售)8、采用图形化界面,界面友好,操作方便9、动画logo效果,1.任务描述,第一讲系统的方案设计,通过本项目学习,使学员在遵守操作规程,满足现场6S管理规范的前提下,能根据客户需求,设计产品总体开发方案、开发硬件电路设计,设计软件,进行部件(模块)与整机调测,并编写相关技术文档。养成遵守规程、安全操作等良好的职业素养。,2.项目目标,第一讲系统的方案设计,根据项目硬件系统应该包括:单片机、点阵LCD显示(带背光)、时钟芯片,按键、继电器、存储器等。那么该采用什么单片机呢?从性价比分析决定采用最通用的51系列单片机,考虑到程序量较大,大概在12-16KB左右,选用了WB54B,本产品控制路数多
3、,需要IO口多,增加了一个Intel8255用于IO口扩展,LCD采用128X64点阵屏,时钟常用的有PCF8563、DS1302两种芯片,前者是I2C总线,后者为SPI总线的,价格上DS1302要便宜的多,所以选用了DS1302,存储器常用的并行E2PROM、FLASH、串行的E2PROM,综合所需单片机IO口、成本等因素,选用了串行的I2C总线的24C512,继电器采用与单片机电源电压一致的5V控制继电器,键盘采用5键。,3.系统模型建立与选择,第一讲系统的方案设计,3.系统模型建立与选择,多路定时器模块结构图,第一讲系统的方案设计(项目资讯),本项目所用新知识主要是AT24C512和DS
4、1302芯片的应用,需AT24C512芯片采用的为 I2C总线串行技术,DS1302芯片采用的为SPI串行总线技术。,第一讲系统的方案设计(项目资讯),一、I2C总线基本知识,1.I2C总线特性 在现代电子产品开发过程中,为了简化系统,提高系统的可靠性,缩短产品开发周期增加硬件构成的灵活性,PhiliPS公司推出了一种高效、可靠、方便的总线方式I2C串行总线。在单片机应用系统中推广I2C总线后将会大大改便单片机应用系统结构、性能,对单片机的应用开发带来很大的好处。具体如下:1、总线可实电路统的模块化、标准化设计。在I2C总线上各单元电路相互之间没有其它连线,用户常用的元电路基本与系统电路无关,
5、故极易形成用户自己的标准化、模块化设计。2、可最大限度地简化结构。二线制的I2C串行总线使得各单元电路之间只需最简单的两线连接,而且总线接口都已集成在器件中,不需另加总线接口电路,这样减少电路板面积,提高了可靠性,降低了成本。3、各节点具有独立的电气特性,各节点单元电路能在相互不受影响的情况下,甚至在系统供电情况下接入或撤队,且系统可方便地对某一节点电路进行故障诊断与跟踪,有极好的可维护性。总线系统构成具有最大的灵活性、系统改型设计、或对已加工好的电路板需扩展功能时,对原有设计及电路板系统影响最小,同时可进行标准I2C总线模块的组合开发大大地缩短了新品的开发周期。,第一讲系统的方案设计(项目资
6、讯),一、I2C总线基本知识,2.I2C总线结构 I2C总线通过2根线:串行数据(SDA)和串行时钟(SCL)线,在总线连接的器件之间传送信息,采用软件寻址方式识别每个器件。连接到总线上的任何一个器件,每个器件应有一个唯一的地址,而且它们都可以作为一个发送器或接收器。此外,器件在执行数据传输时也可以被看作是主机或从机。发送器:本次传送中发送数据(不包括地址和命令)到总线的器件。接收器:本次传送中从总线接收数据(不包括地址和命令)的器件。主机:初始化发送、产生时钟信号和终止发送信号的器件,它可以是发送器或接收器。主机通常是微控制器。从机:被主机寻址的器件,它可以是发送器或接收器。SDA和SCL都
7、是双向线路,连接到总线的器件的输出级必须是漏极开路或集电极开路,都通过一个电流源或上拉电阻(一般是10K)连接到正的电源电压,这样才能够实现线与功能。当总线空闲时,这两条线路都是高电平。在标准模式下,数据传输的速度为0100kbit/s,高速模式时可达400kbits/s。,第一讲系统的方案设计(项目资讯),一、I2C总线基本知识,3.数据传输位传输:I2C总线上每传输一个数据位必须产生一个时钟脉冲。SDA线上的数据必须在时钟线SCL的高电平周期才保持稳定,数据线SDA的电平状态只有在SCL线的时钟信号是低电平时才能改变,如图3-2所示。在标准模式下,高低电平宽度必须大于4.7S。,I2C总线
8、的位传输,第一讲系统的方案设计(项目资讯),一、I2C总线基本知识,3.数据传输起始和停止条件:在I2C总线中,唯一违反上述数据有效性的是起始(S)和停止(P)条件,如图3-3所示。起始条件(重复起始条件):在SCL线是高电平时,SDA线从高电平向低电平切换。停止条件:在SCL线是高电平时,SDA线由低电平向高电平切换。起始和停止条件一般由主机产生。起始条件作为一次传送的开始,在起始条件后总线被认为处于忙的状态。停止条件作为一次传送的结束,在停止条件以后,总线被认为再次处于空闲状态。重复起始条件既作为上次传送的结束,也作为下次传送的开始。,起始和停止条件,第一讲系统的方案设计(项目资讯),一、
9、I2C总线基本知识,3.数据传输字节格式:发送到SDA线上的每个字节必须为8位。每次传输可以发送的字节数量不受限制。每个字节后必须跟一个应答位。首先传输的是数据的最高位(MSB)(见图3-4所示)。,I2C总线的数据传输,第一讲系统的方案设计(项目资讯),二、AT24C512 芯片,1.AT24C512特性AT24C512是ATMEL公司新近推出的具有I2C总线容量达512Kbit(64K8)的E2PROM,该芯片的主要特性如下:存储容量为65536byte;与100kHz、400kHz、1MHzI2C总线兼容;100000次编程/擦写周期;单电源、读写电压为1.8V5.5V;ESD保护电压4
10、kV;数据可保存40年;写保护功能,当WP为高电平时,进入写保护状态;CMOS低功耗技术,最大写入电流为3mA;128byte页写入缓存器;自动定时的写周期;具有8引脚DIP及20引脚SOIC封装等多种封装形式。,第一讲系统的方案设计(项目资讯),二、AT24C512 芯片,2.AT24C512引脚排列及功能 AT24C512的DIP型封装及20引脚的SOIC型封装的引脚排列如图3-9所示,各个引脚的功能如下:SCL:串行时钟该引脚为一输入引脚,用于产生器件所有数据发送或接收的时钟。SDA:串行数据/地址双向串行数据/地址引脚,用于器件所有数据的发送或接收。SDA是1个开漏输出引脚,可与其它开
11、漏输出或集电极开路输出进行线接。WP:写保护当引脚WP连接到VCC时,所有存储数据变为写保护。当引脚WP接VSS时,则允许器件进行正常读写操作。A0,A1:器件地址输入这两个引脚为硬件连线或者不连接,通过连接VCC或VSS的组合可使单总线最多寻址4个AT24C512,当这些引脚没有连接时其默认值为0。,AT24C512引脚排列图,第一讲系统的方案设计(项目资讯),一、SPI总线基本知识,SPI:高速同步串行口。34线接口,收发独立、可同步进行,SPI是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处
12、理器上定义的。SPI接口主要应用在 EEPROM、FLASH、实时时钟、AD转换器、还有数字信号处理器和数字信号解码器之间。SPI总线特性 SPI是一种高速的、全双工、同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如DS1302。SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASH RAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。,第一讲系统的方案设计(项目资讯),一、SPI总线基本知识,2S
13、PI总线原理及组成SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时,本项目所用的DS1302就是三根线)。也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。(1)SDO-主设备数据输出,从设备数据输入(2)SDI-主设备数据输入,从设备数据输出(3)SCLK-时钟信号,由主设备产生(4)CS-从设备使能信号,由主设备控制 其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总线上
14、连接多个SPI设备成为可能。,第一讲系统的方案设计(项目资讯),二、DS1302时钟芯片,1DS1302简介 DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM,通过简单的串行SPI接口与单片机进行通信,实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM 指示决定采用24或12小时格式。DS1302 与单片机之间通信仅需用到三个口线RES复位、I/O 数据线、SCLK串行时钟线,时钟/RAM 的读/写数据以一个字节或多达31个字节的字符组方式通信,DS1302 工作时功耗很低
15、,保持数据和时钟信息时功率小于1mW。DS1302 是由DS1202 改进而来,增加了以下的特性:双电源管脚用于主电源和备份电源,供应Vcc1 为可编程涓流充电电源,附加七个字节存储器,它广泛应用于电话传真便携式仪器以及电池供电的仪器仪表等产品领域。下面将主要的性能指标作一综合:实时时钟,具有能计算2100 年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年调整的能力。,第一讲系统的方案设计(项目资讯),二、DS1302时钟芯片,3DS1302 的基本组成和工作原理,1)管脚描述X1 X2 32.768KHz 晶管脚GND 地RST 复位脚I/O 数据输入/输出引脚SCLK 串行时钟V
16、cc1,Vcc2 电源供电管脚,2)封装型号DS1302 串行时钟芯片8 脚DIPDS1302S 串行时钟芯片8 脚SOIC 200milDS1302Z 串行时钟芯片8 脚SOIC 150mil,第一讲系统的方案设计(项目资讯),二、DS1302时钟芯片,4DS1302特性31个8位暂存数据存储RAM。串行I/O 口方式使得管脚数量最少宽范围工作电压2.0 5.5V工作电流2.0V 时,小于300nA读/写时钟或RAM 数据时有两种传送方式单字节传送和多字节传送字符组方式8 脚DIP 封装或可选的8 脚SOIC 封装(根据表面装配)简单3 线接口与TTL 兼容Vcc=5V可选工业级温度范围-4
17、0+85与DS1202 兼容在DS1202 基础上增加的特性对Vcc1 有可选的涓流充电能力双电源管用于主电源和备份电源供应备份电源管脚可由电池或大容量电容输入,第二讲硬件电路设计与制作,一、系统框图,多路多点定控制时器模块结构图,第二讲硬件电路设计与制作,二、原理图设计流程,第二讲硬件电路设计与制作,三、原理图设计-库元件绘制,原理图库元件绘制,第二讲硬件电路设计与制作,三、原理图设计模块电路设计,DS1302电路,AT24C512电路,液晶显示接口电路,第二讲硬件电路设计与制作,三、原理图设计,系统原理图绘制,第二讲硬件电路设计与制作,四、PCB设计流程,第二讲硬件电路设计与制作,五、PC
18、B设计元件封装制作,封装制作,7805,DS1302,DS1302/8255A,继电器,插接件,蜂鸣器,三极管,第二讲硬件电路设计与制作,五、PCB设计,系统主控板设计,第二讲硬件电路设计与制作,六、硬件装接调试(电路板焊接要领),在焊接时要保持烙铁尖与被焊引脚是并行的。尽可能防止焊锡过量而发生连接现象如果出现粘连也不必立即处理待全部焊接完毕后再统一处理同时也要闭免发生假焊现象。焊接时用烙铁尖接触脚成电路引脚的末端直到看焊锡注入引脚可随时向烙铁尖加上少量焊锡。电烙铁不要长时间的停留在元件引脚上以免过热损坏器件或焊锡过热而烧焦PCB板。,第二讲硬件电路设计与制作,六、硬件装接调试(安装实物),继
19、电器控制板实物,第二讲硬件电路设计与制作(考核评价),操作过程考核具体要求与评价标准,第二讲硬件电路设计与制作(考核评价),作品考核具体要求与评价标准,第三讲软件设计(程序流程图),1主程序流程,主程序的主要功能是有关初始化,菜初显示和菜单操作处理,有关当前时间的读取、判断有没有那路定时时间到,及时间到相应路数进行开/关操作等都是由定时器中断服务程序来实现,有关这方面程序设计思路读者可参考附录中多路抢答器完整源程序,理解其程序设计思路,也可以自己画出定时器中断服务程序的流程。时钟模块:主要功能是实现通用数码时钟的功能 日期时间设置模块:通过设置当前日期时间,并同时修改DS1302对应年、月、日
20、、时、分、秒 定时时间设置模块:设置界面,设置路数、时间、开/关 系统设置:设置按键声音开/关,背光开/关,声光报警开/关,周/日循环等。,第三讲软件设计(程序流程图),1主程序流程,主程序流程图,第三讲软件设计(程序流程图),224C512读写流程图,24C512读数据流程,24C512写数据流程,第三讲软件设计(程序源码),unsigned char time_buf8;/年月日时分秒周sbit CLK=P10;sbit DAT=P11;sbit RST=P12;void delay(void)_nop_();_nop_();_nop_();_nop_();void ds1302_writ
21、e_byte(unsigned char add,unsigned char dat)/写单个字节。unsigned char i;add,1 DS1302读写日期、时间源程序,第三讲软件设计(程序源码),1 DS1302读写日期、时间源程序,unsigned char ds1302_read_byte(unsigned char add)/写单个字节。unsigned char i,result=0;add|=0 x1;RST=1;_nop_();for(i=0;i1;_nop_();CLK=1;_nop_();CLK=0;_nop_();for(i=0;i1;if(DAT)result=r
22、esult|0 x80;elseresult=result,第三讲软件设计(程序源码),1 DS1302读写日期、时间源程序,void ds1302_write_time(void)/*向DS302写入时钟数据*/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);/年
23、ds1302_write_byte(ds1302_month_add,time_buf2);/月 ds1302_write_byte(ds1302_date_add,time_buf3);/日 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(
24、ds1302_control_add,0 x80);/打开写保护 void ds1302_read_time(void)/*从DS302读出时钟数据*/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)/周,第三讲软件设计(程序源码),2I2C总线24C02程序,UINT8 EEP
25、ROMByteRead0(UINT8 addr1)/读addr1单元内容UINT8 bytedata,j;I2cStart();Ack=I2cSentByte(0 xa0);if(Ack=0)return(0);Ack=I2cSentByte(addr1);if(Ack=0)return(0);I2cStart();Ack=I2cSentByte(0 xa1);if(Ack=0)return(0);ISDA=1;for(j=0;j8;j+)_nop_();ISCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();ISCL=1;_nop_();_nop_();
26、_nop_();_nop_();bytedata=1;if(ISDA)bytedata|=0 x01;_nop_();_nop_();ISCL=0;_nop_();_nop_();_nop_();_nop_();ISCL=1;I2cStop();return(bytedata);,第三讲软件设计(程序源码),2I2C总线24C02程序,void I2cStart(void)/发起始信号ISDA=1;ISCL=1;_nop_();_nop_();_nop_();ISDA=0;_nop_();_nop_();_nop_();ISCL=0;_nop_();_nop_();void I2cStop(v
27、oid)/发停止信号ISDA=0;ISCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();ISDA=1;_nop_();_nop_();_nop_();_nop_();ISCL=0;,第三讲软件设计(程序源码),2I2C总线24C02程序,UINT8 I2cSentByte(UINT8 c)/写一个字节命令data UINT8 temp1,temp2,ack;for(temp1=0;temp18;temp1+)temp2=c,第四讲系统调试,一、系统调试方法有关单片机产品调试方法在项目一已讲述,根据单片机产品调试方法制订本项目调试步骤如下:1、78E54B
28、单片机最小系统测试2、系统LCD接口电路及程序3、系统键盘及键盘扫描程序4、24C512电路及读写字节程序5、时钟芯片DS1302电路及程序6、软件测试模块LOGO画面显示主菜单显示及选择处理时钟模块日期时间设置模块定时参数设置模块系统参数设置模块定时到处理程序综合程序调试,第四讲系统调试,1、78E54B单片机最小系统测试,单片机的最小化系统主要由单片机、时钟电路和复位电路。在系统中,单片机采用的是78E54B芯片。单片机的时钟电路由12M的晶振和两个33P的小电容组成,它们决定了单片机的工作时间精度为1微秒。复位电路由10UF的电容和2个1K的电阻及微动开关组成。判断单片机芯片及时钟系统是
29、否正常工作有一个简单的办法,就是用万用表测量单片机晶振引脚(18、19脚)的对地电压,以正常工作的单片机用数字万用表测量为例:18脚对地约2.24V,19脚对地约2.09V。对于怀疑是复位电路故障而不能正常工作的单片机也可以采用模拟复位的方法来判断,单片机正常工作时第9脚对地电压为零,可以用导线短时间和5V连接一下,模拟一下上电复位,如果单片机能正常工作了,说明这个复位电路有问题。,第四讲系统调试,2、系统LCD接口电路及程序测试 系统显示电路采用带汉字库的128X64的LCD点阵屏,LCD的数据端与单片机的P0口相连,控制线RS、R/W、E分别单片机的P23P25相连,单片机与LCD的通信采
30、用并行方式,在调试过程中直接对LCD写入相应的显示数据,以判断LCD显示电路是否正常。,3、系统键盘及键盘扫描程序 系统提供了5个按键实现对控制器的系统设置和操作,S1S5分别与单片机的P30、P31、P33、P34、P35相连为了提高按键的可靠性,按键与单片机相连的引脚上外加了一个10K的上拉电阻。在测试的过程中为了直观判断键盘电路及程序是否正常,首先确保系统的蜂鸣电路工作正常,测试程序首先判断是否有键按下,当确认有键按下,程序对蜂鸣电路控制引脚进行连续取反操作,使蜂鸣器发声,再次按键则停止对其取反,蜂鸣器停止发声,通过上述操作以判断按键电路的工作是否正常。,第四讲系统调试,4、24C512
31、电路及读写字节程序 在测试的过程中为了直观判断24C512电路及读写程是否正常,此部分的测试采用了LCD模块电路联调的方法,首先在LCD调试成功的基础上,对24C512电路进行操作,先数数据“55H”写入到24C512中,然后将其读取并显示在LCD液晶屏上,若显示数据与读写数据一致则此部分电路工作正常,若显示没有反应则先通过万用表测试各点电压和电阻。排除电路故障,然后再逐条语句检查程序问题。5、时钟芯片DS1302电路及程序 时钟电路的检测方法与24C512电路类似,仍采用与LCD联调的方法检查是否正确,若有误,则分电路和程序二路排除故障。,第四讲系统调试,6、软件测试模块LOGO画面显示主菜单显示及选择处理时钟模块日期时间设置模块定时参数设置模块系统参数设置模块定时到处理程序综合程序调试,