您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 单片机最小系统的设计与制作
设计课题题目:单片机最小系统的设计与制作一、设计任务与要求自制一套单片机最小系统,具有显示和键盘输入,并设计该系统具有实现时钟、温度测量。1.显示日期功能(年、月、日、时、分、秒以及星期)。2.可通过按键随时调整年、月、日或时、分、秒。3.可显示温度。二、系统设计方案方案一、最小系统以51单片机为核心,其包括复位电路、晶振电路、按键电路、显示电路等。外围电路可以利用单片机控制温度传感器DS18B20进行实时的温度检测,并在其中加入DS1302时钟芯片以获取时间,利用按键进行随时的时间调节。系统框图:DS18B20通过一条I/O接口与单机机相连进行温度的读与写操作,DS1302与I/O接口相连获取时间,通过按键的扫描进行时间的调节,并在LCD1602上显示。三、单元电路分析与设计1.晶振电路单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为30pF。单片机晶振电路复位电路按键调节LCD1602显示DS18B20温度采集DS1302获取时间12.复位电路复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通常采用上电自动复位和按键手动复位两种方式,此电路系统采用的是按键手动复位电路,高电平时复位。当时钟频率选用12MHz时,C取10μF,R约为1K。3.按键电路因为本设计需要的键盘比较少,所以采用独立式键盘。在键盘的应用中,需要解决键盘消抖的问题,一般使用的是软件消抖的方法。加10k的上拉电阻用来提高抗干扰能力。其中K1是复位键,K2、K3个是调整时间增加、减少的键,K4是切换年、月、日及时、分、秒的显示状态并在所切换的显示状态下配合加减两个键调整时间。4.LCD1602显示电路(1)LCD1602主要技术参数:显示容量:16×2个字符芯片工作电压:4.5—5.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm(2)引脚接口说明:第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。2第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~4脚:D0~D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极(3)1602液晶,16*2可显示两行。1、基本操作时序读状态RS=L,RW=H,E=H读数据RS=H,RW=H,E=H写指令RS=L,RW=L,D0~D7=指令码E=高脉冲写数据RS=L,RW=H,E=H,D0~D7=指令码E=高脉冲2、RAM地址映射图0001020304050607….0F10….2740414243454647……4F50….671、数据指针设置指令码功能80H+地址码(0~27H,40~67H)设置数据地址指针5.DS18B20温度采集DS18B20最大的特点是单总线数据传输方式,DS18B20的数据I/O均由同一条线来完成,。采用外部电源供电方式,外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监系统经过单线接口访问DS18B20。必须遵循如下协议:初始化、ROM操作命令、存储器操作命令和控制操作。操作指令33H55HCCHF0HECH3DS18B20ROM操作DS18B20存储器操作DS18B20的特点:(1)只要求一个端口即可实现通信。(2)在DS18B20中的每个器件上都有独一无二的序列号。(3)实际应用中不需要外部任何元器件即可实现测温。(4)测量温度范围在-55°C到+125°C之间。6.DS1302时钟电路DS1302内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:RES复位线、I/O数据线、SCLK串行时钟。时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。DS1302工作时功耗很低保持数据和时钟信息时功率小于1mW。含义读ROM匹配ROM跳过ROM搜索ROM报警搜索ROM操作指令4EHBEH48H44HB8HB4H含义写读内部复制温度转化重新调出读电源4DS1302的主要特性:(1)实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年调整的能力(2)31*8位暂存数据存储RAM(3)串行I/O口方式使得管脚数量最少(4)宽范围工作电压:2.0~5.5V(5)工作电流2.0V时,小于300nA(6)读/写时钟或RAM数据时,有两种传送方式:单字节传送和多字节传送(字符组方式)。2.仿真分析如下图所示可以显示当前的温度值与星期,并显示温度。四、软件部分设计(各部分程序框图)主程序:4#includereg52.h#includeds1302.h#includelcd1602.h#includeds18b20.h#includetext.hvoidmain(){lcd1602_init();ds1302init();ds1302set();while(1){5keyscan();if(flag==0){xianshi();}}}主程序流程:温度读取流程:DS1302数据交换流程:按键k1扫描设置:开始初始化LCD1602、DS1302按键扫描读DS18B20温度值和DS1302寄存器值读出的值显示结束开始DS18B20初始化显示温度数据处理读取温度温度转化命令结束67五、系统测试与分析打开电源开关,按下k1按键进行扫描,k2、k3分别实现加减,把时间调节到现在你的电脑时间并显示,再关闭电源,等过了三四个小时后,再打开电源,看下此时的时间与电脑上的时间是否显示的相同。再放着一周过后,再打开,再次记录时间是否有误差,如此反复几次。由于DS1302是一种高性能、低功耗、带RAM的实时时钟电路,发现每次的时间几乎没有误差。当用手去触摸温度传感器一会儿时发现温度慢慢上升,移开时发现温度下降。温度传感器正常。六、结论与心得DS18B20通过一条I/O接口与单机机相连进行温度的读与写操作,DS1302与I/O接口相连获取时间,通过按键的扫描进行时间的调节,并在LCD1602上显示。这次设计基本上实现了显示日期功能(年、月、日、时、分、秒以及星期),通过按键随时调整年、月、日或时、分、秒,显示温度值。实验不足之处,PCB版画的不够好,元件之间的布局不够合理,器件的封装有点小问题,导致有时显示的时间会乱码。通过这次的软、硬件设计,不仅加深了我们对理论知识的理解,培养了我们的实践动手能力,还锻炼了我们遇到问题解决问题的能力。从开始接到任务时的无从下手,到查阅书籍、搜集资料,学习新知识,相互讨论,分析交流,解决好问题的这个过程本身就是对我们的锻炼。七、参考文献[1]、郭天祥.《51单片机c语言教程》电子工业出版社.2009[2]、边春元.C51单片机典型模块设计与应用[M].北京:机械工业出版社,2008[3]、高歌.《AltiumDesigner电子设计应用教程》清华大学出版社.2011[4]、戴仙金.《51单片机及其c语言程序开发实例》清华大学出版社.2008[5]、边春元.C51单片机典型模块设计与应用[M].北京:机械工业出版社,2008
本文标题:单片机最小系统的设计与制作
链接地址:https://www.777doc.com/doc-2594490 .html