基于单片机设计的电子万历毕业论文.doc

上传人:仙人指路1688 文档编号:4148798 上传时间:2023-04-07 格式:DOC 页数:32 大小:851KB
返回 下载 相关 举报
基于单片机设计的电子万历毕业论文.doc_第1页
第1页 / 共32页
基于单片机设计的电子万历毕业论文.doc_第2页
第2页 / 共32页
基于单片机设计的电子万历毕业论文.doc_第3页
第3页 / 共32页
基于单片机设计的电子万历毕业论文.doc_第4页
第4页 / 共32页
基于单片机设计的电子万历毕业论文.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《基于单片机设计的电子万历毕业论文.doc》由会员分享,可在线阅读,更多相关《基于单片机设计的电子万历毕业论文.doc(32页珍藏版)》请在三一办公上搜索。

1、 青岛农业大学海都学院 本科生毕业论文(设计)题 目: 基于单片机设计的电子万年历 姓 名: 曹聚贤 系 别: 工程系 专 业: 电气工程及其自动化 班 级: 2008.1 学 号: 200802029 指导教师: 刘立山 2012年6月18日基于单片机设计的电子万年历摘 要电子万年历是一种非常广泛日常计时工具,在现代社会越来越流行。它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周、时、分、秒和温度等信息,还具有时间校准等功能。但由于这种万年历是挂在墙上的,使用手动按键

2、很不方便,特别是按键的那一边放在了临近墙角的位置,对按键的调整带来了很大的困难。针对电子万年历的这些缺点,我设计了一套电子万年历,来改善这些缺点。通过利用红外调节的办法使电子万年历达到操作简单,方便轻松地目的。关键字:单片机、DS1302、DS18B20、步进电机、数码管、红外调控Single-chip design-based electronic calendarAbstract The electronic calendar is a very wide range of daily timing tool, more and more popular in modern society

3、. It can be on-year, month, day, Sunday, hours, minutes, seconds for timing, but also a leap year compensation functions, and the DS1302 long life, small error.Digital electronic calendar using intuitive digital display, can display year, month, day, weeks, hours, minutes, seconds, and temperature,

4、etc., but also has the function of the time calibration.This calendar is hanging on the wall, using the manual button inconvenient, especially buttons while on the near corner of the location button adjustment has brought great difficulties. In response to these shortcomings of the electronic calend

5、ar, I designed an electronic calendar, to improve these shortcomings. Electronic calendar, by using infrared adjustment approach to achieve simple operation, convenient and easy to purpose. Key word:SCM, DS1302, DS18B20, step motor, digital tube, infrared regulation目 录摘 要2Abstract3目 录4第一章 设计要求与方案论证5

6、1.1 设计要求51.2 系统基本方案选择和论证51.2.1 单片机芯片的选择方案和论证51.2.2 显示模块的选择方案和论证51.2.3 时钟芯片的选择方案和论证61.2.4 电机的选择方案和论证61.2.5 温度测试的选择方案和论证7第二章 系统的硬件设计与实现82.1 电路设计框图82.2 系统硬件概述82.3 主要单元电路的设计82.3.1 电源模块的设计82.3.2 单片机主控制模块的设计102.3.3 时钟电路模块的设计132.3.4 温度测量模块的设计142.3.5 画轴旋转模块的设计172.3.6 显示模块的设计202.3.7 调控模块的设计22第三章 系统的软件设计与实现23

7、3.1 程序流程框图233.2 读写DS1302子程序的编写243.3 读写DS18B20子程序的编写263.4红外接收子程序的编写28作品总结30致 谢30参考文献31附录一:系统电路图32附录二:PCB连接图33附录三:系统程序34第一章 设计要求与方案论证1.1 设计要求(1)基本要求 具有年、月、日、星期、时、分、秒等功能;万年历具有闰年识别显示功能; 具有测量室内温度功能。(2)创新要求 具有红外遥控调节电子钟的功能; 可以调整画轴的正反转,还把画轴的转动与声音的播放分离开来。1.2 系统基本方案选择和论证1.2.1 单片机芯片的选择方案和论证方案一:采用89C51来作为控制芯片,4

8、K字节可编程闪烁存储器寿命,1000写/擦循环,128*8位内部RAM,32个可编程I/O线,两个16位定时器/计数器,5个中断源,可编程通信,低功耗的闲置和掉电模式,片内振荡器和时钟电路。方案二:采用89C52来作为控制芯片,89C52是INTEL公司MCS-51系列单片机中基本的产品,它采用ATMEL公司可靠的CMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了CMOS的高速和高密度技术及CMOS的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统,属于89C51增强型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能,适合于类似马达控制

9、等应用场合。89C52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。此外,89C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。所以选择89C52作为主控制系统。1.2.2 显示模块的选择方案和论证方案一:采用1602 LED液晶显示屏,,工业字符型液晶,能够同时显示16x02即32个字符。(16列2行

10、)是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有也有间隔起到了字符间距和行间距的作用,但是价格昂贵,需要的接口线多,还有其使用的温度范围很窄,通用型液晶正常工作温度范围为0+55,存储温度范围为-20+60,所以在此设计中不采用LED液晶显示屏。方案二:采用8段数码管,数码管能在低电压、小电流条件下驱动发光,能与CMOS、TTL电路兼容;发光时间极短,高频特性好,单色性好,亮度高;体积小、重量轻,抗冲击性能好;寿命长,使用寿命在十万小时以上,甚至可达一百万小时,成本低;且采

11、用动态扫描法与单片机连接时,占用的单片机口线少。所以采用了LED数码管显示。1.2.3 时钟芯片的选择方案和论证方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大;且使用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,所以不采用此方案。方案二: 采用ds1302时钟芯片实现时钟的计时,具有涓细电流充电能力的高性能、低功耗、带RAM的实时实时时钟电路,可以对年、月、日、周、日、时、分、秒进行计时,且具有闰年补偿等多种功能,工作电压为2.5V

12、5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。 所以选用DS1302作为时钟计时工具。1.2.4 电机的选择方案和论证方案一: 使用直流电机来调节,直流电机是使机械能与电能相互转换的机械,直流电机把直流电能变为机械能。直流电机调速范围广,且易于平滑调节,过载、起动、制动转矩大;易于控制,可靠性高;调速时的能量损耗较小。缺点是制造比较贵,有碳刷,且碳刷和整流子存在磨损,因此有个寿命限制,并且噪音也较大。方案二: 使用步进电机来调节,步进电机是将电脉冲信号转变为角位移或线位移的开环

13、控制元件,它具有快速启、停的能力,在电机的负荷不超过它能提供的动态转矩时,可以通过控制脉冲来控制它在一瞬间的起动或停止。在非超载情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,也不受环境温度、气压、振动、电网电压的波动的影响,即给电机加一个脉冲信号,电机则转过一个步进角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点,使得步进电机在速度、位移等控制领域的控制操作非常简单。 所以选择步进电机作为调节画轴的工具。1.2.5 温度测试的选择方案和论证方案一:使用热敏电阻,热敏电阻是由于温度的变化,其阻值发生变化。分NTC和PTC 分别表示负温度

14、系数和正温度系数,但是热敏电阻阻值随温度变化的曲线呈非线性,而且每个相同型号的线性度也不一样,并且测温范围比较小。方案二:使用温度传感器DS18B20,DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。测温范围 55+125,采用12位

15、存贮温度值,最高位为符号位。其为单总线技术,这种技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。所以选择温度传感器DS18B20作为温度测量工具。第二章 系统的硬件设计与实现2.1 电路设计框图 硬件设计电路框图2.2 系统硬件概述本电路采用STC89C52作为主控制芯片,以DS1302作为时钟计数芯片,来实现时间的运行,用DS18B20作为温度传感器测量外界环境温度,通过ULN2803达林顿管驱动步进电机实现画轴的转动,并通过红外接收头接收来自遥控器的红外信号来实现电子万年历的方便调节,最后在通过74HC573来驱动数码管来显示。2.3 主要单元电路的设计2.3.1 电源模

16、块的设计电子万年历是通过220V的市电来供电,但单片机的工作电压是5V,所以需要把220V 的市电转换为5V的直流电来给单片机供电。要实现这个转换需要通过四个环节,即: 电源变压器将交流市电电压220V变换为整流需要的数值; 整流电路将交流电压变换为单向脉动直流电压,整流是利用二极管的单向导电性来实现的; 滤波电路将脉动直流电压中交流分量滤除,形成平滑的直流电压; 稳压电路其作用是当交流电网电压波动或负载变化时,保证输出直流电压稳定。 电源变压器采用220V到9V的电压转换变压器,以方便实现电压到5V的转换。 整流电路的功能是利用二极管的单向导电性将正弦交流电压转换成单向脉动电压,整流电路有电

17、路有单向整流和三相整流,有半波整流、全波整流、桥式整流等。我这里利用的单向桥式整流。利用桥式整流电路实现了将9V的交流电压转化成了9V的单向脉动电压。下图是桥式连接 桥式整流电路 滤波电路的作用是滤除整流电压中的纹波。常用的滤波电路有电容滤波、电感滤波、复试滤波及有源滤波等。这里使用的是电容滤波。电容滤波是最简单的滤波器,他是在整流电路的负载上并联一个电容C,电容为带有正负极性的大容量电容器,如电解电容。经过滤波电路后,既可保留直流分量、又可滤掉一部分交流分量,改变了交直流成分的比例,减小了电路的脉动系数,改善了直流电压的质量。下图是电源滤波电路 电容滤波电路 稳压电路采用集成稳压模块的780

18、5芯片,7805输出的是正电压。其正常工作时,输入、输出电压差为23V。C2为输入稳定电容,其作用是减小纹波、消振、抑制高频和脉冲干扰,它一般为0.11uF。C3为输出稳定电容,其作用是改善负载的瞬态响应,它一般为1uF。使用三端稳压器时要注根据输出电流的大小选择加散热器,否则会由于过热而无法工作到额定电流。但设计时最好都加上散热器,本电路的设计要加上散热器。下图是稳压电路的连接 稳压电路2.3.2 单片机主控制模块的设计单片机主控制芯片采用的是STC89C52单片机,它是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。STC89C52单片机为40引脚双列直

19、插芯片,有四个I/O口P0,P1,P2,P3, MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。但P0口内部没有上拉电阻,为高阻状态,所以不能正常地的输出高/低电平,因此该组I/O口在使用时务必要接上拉电阻,一般我们选择接入10K的上拉电阻,在电路中我使用的是104的排阻。单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20

20、引脚为接地端,40引脚为电源端。31引脚接高电平时,单片机读取内部程序存储器。当扩展有外部ROM时,读取完内部ROM后自动读取外部ROM,当接低电平时,单片机直接读取外部ROM,在此设计中此引脚始终接高电平。下图是单片机最小系统 单片机最小系统本设计中加入了程序下载模块,方便了程序的调试运行,如果真正作为产品的话,此模块可以省略不要。单片机是一种数字集成芯片,数字电路中只有两种电平:高电平和低电平。单片机输出与输入为TTL电平,即正逻辑电平。但计算机的串口为RS232C电平,RS232C电平为负逻辑电平,因此当计算机与单片机之间要通信时,需要加电平转换芯片,我们这里使用的电平转换芯片是MAX2

21、32。MAX232芯片是MAXIM公司生产的、包含两路接收器和驱动器的IC芯片,它的内部有一个电源电压变换器,可以把输入的+5V电源电压变换成为RS-232输出电平所需的+10V电压。所以此芯片接口的串口通信系统只需要单一的+5V电源就可以了。对于没有+12V电源的场合,其适应性更强,加之其价格适中,硬件接口简单,所以被广泛采用。 MAX232芯片引脚结构图 外围电路连接图上半部电容C1,C2,C3,C4及V+,V-是电源变换电路部分。在实际应用中,器件对电源噪声很敏感,因此Vcc必须要对地加去耦电容C5,其值为0.1uF。电容C1,C2,C3,C4应取1.0uF/16V的电解电容,在具体设计

22、电路时,这四个电容要尽量靠近MAX232芯片,以提高抗干扰能力。下半部分为发送接收部分,实际应用中,T1IN,T2IN可直接连接TTL/CMOS电平的51单片机串行发送端TXD;R1OUT,R2OUT可直接连接TTL/CMOS电平的51单片机的串行接收端RXD;T1OUT,T2OUT可直接连接PC机的RS-232串口的接收端RXD;R1IN,R2IN可直接连接PC机的RS-232串口的发送端TXD。现从MAX232芯片中两路发送、接收中任选一路作为接口。要注意其发送接收的引脚要对应。如使T1IN连接单片机的发送端TXD,则PC机的RS-232接收端RXD一定要对应接T1OUT引脚。同时R1OU

23、T连接单片机的RXD引脚,PC机的RS-232发送端TXD对应接R1IN引脚。下图是MAX232和单片机IO口的连接图 MAX232的连接图2.3.3 时钟电路模块的设计 图示出DS1302 的引脚排列,其中Vcc1 为后备电源,VCC2 为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302 由Vcc1 或Vcc2 两者中的较大者供电。当Vcc2 大于Vcc10.2V 时,Vcc2 给DS1302供电。当Vcc2 小于Vcc1 时,DS1302 由Vcc1 供电。X1 和X2 是振荡源,外接32.768kHz 晶振。RST 是复位/片选线,通过把RST 输入驱动置高电平来启动所

24、有的数据传送。RST 输入有两种功能:首先,RST 接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST 提供终止单字节或多字节数据的传送手段。当RST 为高电平时,所有的数据传送被初始化,允许对DS1302 进行操作。如果在传送过程中RST 置为低电平,则会终止此次数据传送,I/O 引脚变为高阻态。上电运行时,在Vcc2.5V 之前,RST 必须保持低电平。只有在SCLK 为低电平时,才能将RST 置为高电平。I/O 为串行数据输入输出端(双向), SCLK 始终是输入端。DS1302引脚图 DS1302 的控制字如图所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能

25、把数据写入DS1302 中,位6 如果为0,则表示存取日历时钟数据,为1 表示存取RAM 数据;位5 至位1 指示操作单元的地址;最低有效位(位0)如为0 表示要进行写操作,为1 表示进行读操作,控制字节总是从最低位开始输出。 DS1302的控制字节 在控制指令字输入后的下一个SCLK 时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0 开始。同样,在紧跟8 位的控制指令字后的下一个SCLK 脉冲的下降沿读出DS1302 的数据,读出数据时从低位0 位到高位7。 DS1302 有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD 码形式,其日历、时间寄存器及其控制字

26、见表。 DS1302有关日历、时间的寄存器下图是DS1302与单片机的连接图 DS1302连接图2.3.4 温度测量模块的设计 下图是DS18B20器件图,1脚是地,2脚是数据输入/输出,3脚是电源端,一般接到+5V的电源上。DS18B20采用单总线技术,这条信号线既可以传输时钟,又可以传输数据,而且数据传输是双向的。单总线通常要求外接一个约为5 K的上拉电阻。 DS18B20器件图 DS18B20的存储器包括高速暂存器RAM和可电擦除RAM,可电擦除RAM又包括温度触发器TH和TL,以及一个配置寄存器。存储器能完整的确定一线端口的通讯,数字开始用写寄存器的命令写进寄存器,接着也可以用读寄存器

27、的命令来确认这些数字。当确认以后就可以用复制寄存器的命令来将这些数字转移到可电擦除RAM中。当修改过寄存器中的数时,这个过程能确保数字的完整性。 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位 (28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用 是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。64-位的光刻ROM又包括5个ROM的功能命令:读ROM,匹配ROM,跳跃ROM,

28、查找ROM和报警查找。下图是ROM指令表和RAM指令表 ROM指令表 RAM指令表高速暂存器RAM是由8个字节的存储器组成;第一和第二个字节是温度的显示位。第三和第四个字节是复制TH和TL,同时第三和第四个字节的数字可以更新;第五个字节是复制配置寄存器,同时第五个字节的数字可以更新;六、七、八三个字节是计算机自身使用。用读寄存器的命令能读出第九个字节,这个字节是对前面的八个字节进行校验。下表列出了温度数据在高速暂存器RAM的第0和第1个字节中的存储格式 温度数据存储格式DS18B20在出厂时默认配置为12位,其中最高位为符号位,即温度值共11位,单片机在读取数据时,一次会读2字节共16位,读完

29、后将低11位的二进制数转化为十进制后再乘以0.0625便为所测的实际温度值。另外,还需要判断温度的正负。前5个数字为符号位,这5位同时变化,我们只需要判断11位就可以啦,前5位为1时,读取的温度为负值,且测到的数值需要取反加1再乘以0.0625才可以得到实际温度值。前5位为0时,读取的温度为正值,且温度为正值时,只要将测得的数值乘以0.0625即可得到实际温度值。下图是DS18B20与单片机的连接图DS18B20连接图2.3.5 画轴旋转模块的设计 利用ULN2803达林顿管驱动步进电机,ULN2803是八路的NPN 达林顿连接晶体管阵系列,特别适用于低逻辑电平数字电路(诸如TTL, CMOS

30、或PMOS/NMOS)和较高的电流/电压要求之间的接口,广泛应用于计算机,工业用和消费类产品中的灯、继电器、打印锤或其它类似负载中。下图是ULN2803的引脚图1 至 8脚为8路输入,18 到 11脚为8路输出。驱动能力 500mA /50V。应用时9脚接地,要是驱动感性负载,10脚接负载电源V+。输入的电平信号为0,或5V。输入0时,输出达林顿管截止。输入为5V电平时,输出达林顿饱和。输出负载加在电源V+和输出口上,当输入为高电平时,输出负载工作。步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化设备中。步进电机和普通电动机不同之处在于它是一种将电脉冲信号转化为角位移的执

31、行机构,它同时完成两个工作:一是传递转矩,二是控制转角位置或速度。这个设计使用的是二相步进电机,它有四条励磁信号引线A,A,B,B,通过控制这四条引线上励磁脉冲产生的时刻,即可控制步进电机的转动。每出现一个脉冲信号,步进电机只走一步。因此,只要依序不断送出脉冲信号,步进电机就能实现连续转动。步进电机的励磁方式分为全步励磁和半步励磁两种。其中全步励磁又有一相励磁和二相励磁之分;半步励磁又称一二相励磁。假设每转一圈需要200个脉冲信号来励磁,可以计算出每个励磁信号能是步进电机前进1.8,简要介绍如下。1)一相励磁在每一瞬间,步进电机只有一个线圈导通。每送一个励磁信号,步进电机旋转1.8,这是三相励

32、磁方式中最简单的一种。其特点是:精确度好、消耗电力少,但输出转矩最小,振动较大。如果 以该方式控制步进电机正转,对应的励磁顺序如下表所示,若励磁信号反向传送,则步进电机反转。表中的1和0表示送给电机的高电平和低电平。STEPABAB11000201003001040001 一相励磁顺序表励磁顺序说明:12341 如此循环2)二相励磁在每一瞬间,步进电机有两个线圈同时导通。没送一个励磁信号,步进电机旋转1.8。其特点是:输出转矩大,振动小,因而成为目前使用最多的励磁方式。如果以该方式控制步进电机正转,对应的励磁顺序见下表。若励磁信号反向传送,则步进电机反转。STEPABAB11100201103

33、001141001 二相励磁顺序表励磁顺序说明:12341 如此循环3)一二相励磁为一相励磁与二相励磁交替导通的方式。没送一个励磁信号,步进电机旋转0.9。其特点是:分辨率高,运转平滑,故应用也很广泛。如果以该方式控制步进电机正转,对应的励磁顺序见下表。若励磁信号反向传送,则步进电机反转。STEPABAB1100021100301004011050010600117000181001 一二相励磁顺序表励磁顺序说明:123456781 如此循环本设计采用的一相励磁,即四条信号线每次只有一个为高电平。 下图是ULN2803和单片机的连接图 ULN2803与单片机的连接图2.3.6 显示模块的设计

34、74HC573是一种数字芯片,为八进制3态非反转透明锁存器,是一种高性能的CMOS器件,下图是它的管脚图 74HC573管脚图OE为三态允许控制端(低电平有效),通常叫做输出使能端,或输出允许端都可以;1D8D为数据输入端;1Q8Q为数据输出端;LE为锁存允许端,或叫锁存控制端。下图为74HC573的真值表由真值表可以看出,当OE为高电平时,无论LE与D端为何种电平状态,其输出都为高阻态。很明显,此时该芯片处于不可控状态,而我们将74HC573接入电路是必须要控制它的,因此在设计电路时也就必须将OE接低电平,所以在设计中的三个锁存器的OE端全部接地。当OE为低电平时,我们再看LE,当LE为H时

35、,D与Q同时为H或L;而当LE为L时,无论D为何种电平状态,Q都保持上一次的数据状态。这也就是说,当LE为高电平时,Q端数据状态紧随D端数据状态变化;而当LE为低电平时,Q端数据将保持住LE端变化为低电平之前Q端的数据状态。因此我们将锁存器的LE端与单片机的某一引脚相连,再将锁存器的数据输入端与单片机的某组I/O口相连,便可通过控制锁存器的锁存端与锁存器的数据输入端的数据状态来改变锁存器的数据输出端的数据状态。通过这个锁存器驱动数码管来显示所要显示的信息。数码管按个数有单位数码管、双位数码管、四位数码管之分,按照显示形式有共阴数码管和共阳数码管。本设计中采用的是单位共阴数码管,共十六个。下图是

36、其与单片机的连接图 573与单片机的连接 数码管与573的连接图2.3.7 调控模块的设计利用红外来遥控此电路的调节,红外遥控器已被使用在各种类型的家电产品上,它的出现给使用电器带来很多便利。红外遥控系统一般由红外发射装置和红外接收设备两大部分组成。红外发送装置是一个小型的遥控器,红外接收装置是红外接收管VS-1838B来接收,下图是VS-1838B的引脚图VS-1838B 它共有三个引脚,一个电源、一个地还有一个输出脚,接收距离在7米之内,即超出这个距离,就无法接收到发送的红外信号。在电路设计中加入了一个蜂鸣器,当没接收到一个红外信号时,蜂鸣器响一下,来提示这次按键成功。下图是其与单片机的连

37、接图 红外模块与单片机的连接图第三章 系统的软件设计与实现3.1 程序流程框图 3.2 读写DS1302子程序的编写 此图为DS1302的读写时序图,只有在复位引脚为高电平时,DS1302才能在每一个钟上升沿读写一位数据,且每次读写数据时,都要先指定地址。 下边是单片机向DS1302写入一个字节数据的子程序void Write_A_byte_to_ds1302(uchar x) /向DS1302写入一个字节 uchar i; CLK=0; for(i=0;i=1; CLK=0; 下边是单片机从DS1302读取一个字节数据的子程序uchar Get_A_byte_from_ds1302() /从

38、DS1302读取一个字节 uchar i,b=0x00,t; for(i=0;i=1; t=IO; b|=t7; CLK=1; CLK=0; return b/16*10+b%16; /BCD码转换下边是单片机从DS1302指定位置读取数据的子程序uchar read_data(uchar addr) /从DS1302指定位置读数据 uchar dat; reset_ds1302(); RST=1; Write_A_byte_to_ds1302(addr); dat=Get_A_byte_from_ds1302(); CLK=1; RST=0; return dat;下边是单片机向DS1302

39、指定位置写入数据的子程序void Write_ds1302(uchar addr,uchar dat) /向DS1302某地址写入数据 reset_ds1302(); RST=1; Write_A_byte_to_ds1302(addr); Write_A_byte_to_ds1302(dat); CLK=0; RST=0;3.3 读写DS18B20子程序的编写 DS18B20初始化主机总线在TO时刻从电源降到0并保持480-960US时间.然后再上升到电源大约在15-60US后,18B20输出低电平并保持60US-240US.然后上升到电源.完成初始化. 下边是DS18B20初始化的子程序u

40、char init_ds18b20() /18B20初始化 uchar status; DQ=1; delayxus(8); DQ=0; delayxus(90); DQ=1; delayxus(8); status=DQ; delayxus(100); DQ=1; return status; /初始化成功时返回零 向DS18B20写数据 数据线先置低电平0,延时确定的时间为15us,按从低位到高位的顺序发送数据(一次只发送一位)。延时时间为45us,将数据线拉到高电平1,重复上边的步骤,知道发送完整个字节,最后将数据线拉高到1。 下边是向DS18B20写数据的子程序void writeby

41、te (uchar dat)/向18B20写一个字节的数据 uchar j; for(j=0;j=1; 从DS18B20读数据将数据线拉高到1,延时2us,将数据线拉低到0,延时6us,将数据线拉高到1,延时4us,读数据线的状态得到一个状态位,并进行数据处理,延时30us,重复上述步骤,知道读完一个字节。下边是从DS18B20读数据的子程序uchar tempread()/读一个字节数据 uchar i,dat; dat=0; DQ=1; _nop_(); for(i=0;i=1; DQ=1; _nop_(); _nop_(); if(DQ) dat|=0x80; delayxus(30); DQ=1; return(dat);3.4红外接收子程序的编写 红外接收芯片的输出引脚接到单片机的外部中断0上,设置成下降沿触发中断。红外发出的红外信号和接收到的红外信号正好相反,即发出的为高电平而接收到的为低电平,发出的为低电平而接收到的为高电

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号