基于单片机控制的液晶显示万年历设计

上传人:da****ge 文档编号:54876806 上传时间:2022-02-16 格式:DOC 页数:46 大小:434.50KB
收藏 版权申诉 举报 下载
基于单片机控制的液晶显示万年历设计_第1页
第1页 / 共46页
基于单片机控制的液晶显示万年历设计_第2页
第2页 / 共46页
基于单片机控制的液晶显示万年历设计_第3页
第3页 / 共46页
资源描述:

《基于单片机控制的液晶显示万年历设计》由会员分享,可在线阅读,更多相关《基于单片机控制的液晶显示万年历设计(46页珍藏版)》请在装配图网上搜索。

1、. . 山东农业大学毕 业 论 文题目:基于单片机控制的液晶显示万年历设计 院 部 信息科学与工程学院 专业班级 电子信息科学与技术3班 届 次 2012 届 学生姓名 学 号 指导教师 二O一二 年 六 月 十五 日装订线. . . 目 录1绪论11.1课题研究的背景11.2文章结构介绍12 单片机及液晶的简单介绍22.1 单片机的简介22.1.1 单片机的含义22.1.2 单片机的发展过程22.2 液晶的简介32.2.1 液晶的含义及用途32.2.2 液晶显示技术的发展43 单片机系统的硬件设计53.1单片机系统的原理框图53.2单片机系统的模块说明及电路图53.3 单片机系统的整体电路设

2、计73.4 单片机系统的各器件使用说明73.4.1 AT89C51单片机的简要说明73.4.2 DS18B20的简要说明133.4.3 DS1302的介绍173.4.4 12864液晶的介绍214 单片机系统的软件设计264.1单片机系统的程序框图及代码264.1.1 单片机控制模块的软件设计264.1.2 按键模块的软件设计274.1.3 温度检测模块的软件设计294.1.4时钟模块的软件设计294.1.5 液晶显示模块的软件设计304.2单片机系统的实现情况325 总结34参考文献35致谢36Contents1Foreword11.1 Research Background11.2 Int

3、roduction of essays structure12 The simple introduction of the MCU and LCD22.1 MCU Introduction22.1.1 The meaning of the MCU22.1.2 MCU development process22.2 LCD introduction32.2.1 The meaning and usage of the LCD32.2.2 The development of LCD technology43 The hardware design of MCU system53.1 The b

4、lock diagram of MCU system53.2 MCU module description and schematic circuit diagram53.3 The whole circuit design of the MCU system73.4 The instructions of MCU systems devices73.4.1 A brief description of the AT89C51 MCU73.4.2 A brief description of the DS18B20133.4.3 DS1302 introduction173.4.4 The i

5、ntroduction of 12864 LCD214 Software designMCU system264.1 MCU systems block diagrams and codes264.1.1 MCU control module software design264.1.2 Key module software design274.1.3 Software design of the temperature detection module294.1.4 Software design of the clock module294.1.5 Software design of

6、the LCD module304.2 The realization of the MCU system325 Summary34References35Acknowledgements36基于单片机控制的液晶显示万年历设计2008级电子信息科学与技术03班指导老师 【摘要】相比于通用式计算机,单片机凭借其低成本、低功耗、可靠性高、控制性强等多种优点,已经广泛渗透到我们生活的各个领域。液晶显示器具有驱动电压低、功耗微小、可靠性高、显示信息量大、成本低廉、便于携带等特点,也使得其在工业控制,家庭娱乐等方面有着广泛的应用。本文以 AT89C51 为研究对象,128X64液晶作为显示器件,辅以DS

7、18B20、DS1302芯片,组成一个具有时间、阴历、阳历、温度显示的单片机系统。并使用Keil C51、Protues软件检测系统各部分功能。【关键词】单片机、128x64液晶、DS18B20、ProtuesLiquid crystal display based on the control of single-chip microcomputerHuang Qingzhan【Abstract】Compared with universal computers, single-chip microcomputers have been more widely infiltrated int

8、o every aspect of our lives. That is based on its advantages, such as low cost, low power consumption, high reliability, strong control and so on. Liquid crystal display device having diverse features of low driving voltage, low power consumption, high reliability, great volume display information,

9、low cost, easy to carry . Thats result in its universal in the fields of industrial control and home entertainment. This paper takes AT89C51 as the object of study,128X64 LCD as a display, supplemented with DS18B20, DS1302 chip. The single-chip computer system design is composed of a lunar calendar,

10、 a Gregorian calendar, time and temperature display. The functions of each part is test by soft wares of Keil C and Protues.【Key words】Single-chip Microcomputer, 128x64 LCD, DS18B20, Protues1 绪论 1.1 课题研究的背景单片机的出现是近代计算机技术的里程碑事件,因为它的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统(简称嵌入式系统)两大分支。单片机单芯片的微小体积和极低的成本,可广泛的嵌入到如

11、玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通信产品中,成为现代电子系统中最重要的智能化工具。单片机作为最典型的嵌入式系统,他的成功应用推动了嵌入式系统的发展。20年来,单片机经历了从单片微型计算机(Single Chip Microcomputer)到微控制器(MicroController Unit,MCU)到片上系统(System on Chip)的发展,推动了嵌入式处理器的发展。目前,各种类型的嵌入式处理器逐渐形成了微控制器或片上系统的嵌入式应用系统的基础内核,演化出庞大的嵌入式系统家族。目前,单片机已成为电子系统智能

12、化的最普遍的应用手段,渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。1.2 文章结构介绍作为单片机系统的学习应用,本文意在完成一个基于单片机控制的液晶显示万年历设计。该万年历具有正常走时、调时、阴历阳历显示、实时温度显示等功能。先将本文的结构框架介绍如下:第一章,绪论部分;第二章,单片机及液晶的简单介绍;第三章,单片机系统的硬件设计,包括系统电路图、元器件的选择等;第四章,单片机系统的软件设计,包括系统各模块的程序流程图、核心程序、仿真结果等;第五章,总结;2 单片机及液晶的简单介绍2.1 单片机的简介2.1.1 单片机的含义随着大规模集成电路技术的发展,可以将CPU、RAM

13、、ROM、定时器/计数器以及输入/输出(I/O)接口电路等计算机的主要部件集成在一块集成电路芯片上。这样组成的芯片级的微型计算机只以为“单片微型计算机(Single Chip Microcomputer)”或“单片微机”,在我国,习惯上称其为“单片机”。单片机虽然只是一个芯片,但是从组成和功能上看,它已经具有了微机系统的含义。由于单片机从功能和形态上来说都是作为控制领域应用的要求而诞生的,并且发展到新一代80C51、M68HCO5、M68HC11系列单片机时,在其中着力扩展了各种控制功能,如模/数(A/D)转换、脉冲调制(PWM)、计数器捕获/比较逻辑(PCA)、高速I/O口和WDT等,以突破

14、了微型计算机(Microcomputer)的传统内容。所以更本质的反应单片机的叫法应是微控制器(MicroController Unit,MCU)。根据单片机的结构和微电子设计的特点,虽然应用系统中往往仅以单片机为核心,但是它已完全融入应用系统之中,故而也有将单片机称为嵌入式微控制器(Embedded MicroController)的。在我国,单片机的叫法甚为普遍,这里把它认为是一个单片形态的微控制器,因为本文还是将其称为单片机。2.1.2单片机的发展过程1970年微处理器研制成功以后,随之出现了单片机(即单片的微型计算机)。1971年美国Intel公司生产的4位单片机4004和1972年生

15、产的雏形8位单片机8008,特别是1976年9月Intel公司的MCS48单片机问世以来,在短短的时间年间,经历了四次更新换代,其发展速度大约每二、三年要更新一代,集成度增加一倍,功能翻一番。发展速度之快,应用范围之广已经达到了惊人的地步。它已经渗透到生产和生活的各个领域,可谓无所不在。下面列举单片机发展过程中的一些重要事件,对单片机的发展状况作简要说明。1971年Intel公司研制出世界上第一个4位的微处理器;Intel公司的霍夫研制成功世界上第一块4位微处理器芯片Intel 4004,标志着第一代微处理器问世,微处理器和微机时代从此开始。因发明微处理器,霍夫被英国经济学家杂志列为“二战以来

16、最有影响力的7位科学家”之一。 1971年11月,Intel推出MCS-4微型计算机系统(包括4001 ROM芯片、4002 RAM芯片、4003移位寄存器芯片和4004微处理器 )其中4004(下图)包含2300个晶体管,尺寸规格为3mm4mm,计算性能远远超过当年的ENIAC,最初售价为200美元。 1972年4月,霍夫等人开发出第一个8位微处理器Intel 8008。由于8008采用的是P沟道MOS微处理器,因此仍属第一代微处理器。 1973年intel公司研制出8位的微处理器8080;1973年8月,霍夫等人研制出8位微处理器Intel 8080,以N沟道MOS电路取代了P沟道,第二代

17、微处理器就此诞生。 主频2MHz的8080芯片运算速度比8008快10倍,可存取64KB存储器,使用了基于6微米技术的6000个晶体管,处理速度为0.64MIPS(Million Instructions Per Second )。 1975年4月,MITS发布第一个通用型Altair 8800,售价375美元,带有1KB存储器。这是世界上第一台微型计算机。 1976年intel公司研制出MCS-48系列8位的单片机,这也是单片机的问世。 Zilog公司于1976年开发的Z80微处理器,广泛用于微型计算机和工业自动控制设备。当时,Zilog、Motorola和Intel在微处理器领域三足鼎立。

18、 20世纪80年代初,Intel公司在MCS-48系列单片机的基础上,推出了MCS-51系列8位高档单片机。MCS-51系列单片机无论是片内RAM容量,I/O口功能,系统扩展方面都有了很大的提高。2.2 液晶的简介2.2.1 液晶的含义及用途液晶,即液态晶体(Liquid Crystal,LC),是相态的一种,因为具有特殊的理化与光电特性,20世纪中叶开始被广泛应用在轻薄型的显示技术上。 人们熟悉的物质状态(又称相)为气、液、固,较为生疏的是等离子和液晶。液晶相要具有特殊形状分子组合始会产生,它们可以流动,又拥有结晶的光学性质。液晶的定义,现在以放宽而囊括了在某一温度范围可以是现液晶相,在较低

19、温度为正常结晶之物质。而液晶的组成物质是一种有机化合物,也就是以碳为中心所构成的化合物。同时具有两种物质的液晶,是以分子间力量组合的,它们的特殊光学性质,又对电磁场敏感,极有实用价值。 液晶显示材料最常见的用途是电子表和计算器的显示板,为什么会显示数字呢?原来这种液态光电显示材料,利用液晶的电光效应1把电信号转换成字符、图像等可见信号。液晶在正常情况下,其分子排列很有秩序,显得清澈透明,一旦加上直流电场后,分子的排列被打乱,一部分液晶变得不透明,颜色加深,因而能显示数字和图象。2.2.2 液晶显示技术的发展在G.Freidel之后,液晶研究暂时进入低谷,也有人说,1930-1960年期间是液晶

20、研究的空白期。究其原因,大概是由于当时没有发现液晶的实际应用。但是,在此期间,半导体电子工业却获得了长足的发展。为使液晶能在显示器中的应用,透明电极的图形化以及液晶与半导体电路一体化的微细加工技术必不可缺。随着半导体工业的进步,这些技术已趋向成熟。 20世纪40年代,开发出矽半导体,利用传导电子的 n 型半导体和传导电洞的 p 型半导体构成 pn 介面(pnjunction),发明了二极管和晶体管。在此之前,在电路中为实现从交流到直流的整流功能,要采用二极管,而要实现放大功能,要采用晶体管。这些大而笨重的元件完全可以由半导体二极管和晶体管代替,不需要向真空中发射电子,仅在固体特别是极薄的膜层中

21、,即可实现整流、放大功能,从而使电子回路实现了小型化。 接着,藉由光加工技术实现了包括二极管、晶体管在内的电子回路图形的薄膜化、超微细化。这种技术简称为微影(photolithography)。20世纪60年代,随着半导体集成电路(integrated circuit)技术的发展,电子设备实现了进一步的小型化。 上述技术的进步,对于在液晶显示装置(display)中的应用是必不可少的,随着材料科学和材料加工技术的进一步发展,以及新型显示模式和驱动技术的开发,液晶显示技术获得了快速发展。 1968年,任职美国RCA公司的G.H.Heilmeier发表采用DS(dynamic scattering

22、,动态散射)模式的液晶显示装置。在此之后,美国企业最早开始了数字式液晶手表实用化的尝试。3 单片机系统的硬件设计3.1 单片机系统的原理框图DS1302时钟芯片模块DS18B20温度检测模块按键输入模块单片机MCU128x64液晶显示模块图3.1 单片机系统的原理框图由上图可以看出该单片机系统主要有四部分组成:按键输入模块、温度检测模块、时间模块、单片机控制模块、12864液晶显示模块。现在我就将各模块的功能一一介绍给大家。3.2 单片机系统的模块说明及电路图u 按键输入模块在本设计中,总共有三个按键(如图3.1),采用独立式连接方式,SET键、INC键和DEC键,分别对应单片机的P2.4、P

23、2.5、P2.6端口。图3.2 按键输入连接SET键:选择万年历分别进入校时模式和正常走时模式。INC键:在万年历的校时模式中,控制各选择位进行加一操作。DEC键:在万年历的校时模式中,控制各选择位进行减一操作。u 温度检测模块在该模块中,采用DS18B20温度传感器作为温度采集芯片。DS18B20温度传感器是达拉斯公司生产的一种单总线芯片,它的测温范围为 55+125,固有测温分辨率0.5,具有使用简单、工作稳定的优点。可以适用于工业生产、家庭应用等场合。(如下图)图3.3 温度检测模块u 时间模块该模块提供万年历校时、走时功能,核心芯片是DS1302。DS1302时钟芯片也是达拉斯公司生产

24、的一种单总线芯片,工作电压为2.5V5.5V。它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿等多种功能。广泛应用与电话、传真、便携式仪器、以及电磁供电的仪器仪表等产品领域。图3.4 时间模块u 单片机控制模块由前所述,单片机由于其各种优点,是一种常用的控制器件。80C51单片机是第三代单片机中的典型代表,在该设计中,单片机作为控制模块,接受来自按键模块、时间模块、温度检测模块的信息,来控制液晶显示模块的显示信息。图3.5 液晶显示模块u 12864液晶显示模块12864是128*64点阵液晶模块的点阵数简称,业界约定俗成的简称。它主要由行驱动器/列驱动器及12864全点阵液晶显示

25、器组成。可完成图形显示,也可以显示84个(1616点阵)汉字。该点阵的显示屏成本相对较低,适用于各类仪器,小型设备的显示领域。 3.3 单片机系统的整体电路设计如上所述该单片机系统由键盘模块、12864显示模块、单片机控制模块、DS18B20温度检测模块、DS1302时钟模块组成。所以系统的电路设计也是由各模块电路组合而成。图3.6 单片机系统整体电路设计3.4单片机系统的各器件使用说明3.4.1 AT89C51单片机的简要说明AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)

26、的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图3.7 AT89C51单片机主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年

27、全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 l 管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TT

28、L门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的

29、内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读

30、选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部

31、执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。l 振荡器特性:XTAL1和XTAL2分别为反

32、向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。l 芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器

33、,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。l 串口通讯 单片机的结构和特殊寄存器,这是你编写软件的关键。至于串口通信需要用到那些特殊功能寄存器呢,它们是SCON,TCON,TMOD,SCON等,各代表什么含义呢? SBUF 数据缓冲寄存器这是一个可以直接寻址的串行口专用寄存器。有朋友这样问起过“为何在串行口收发中,都只是使用到同一个寄存器SBUF?而不是收发各用一个寄存器。”实际上SBUF 包含了两个独立的寄存器,一个是发送寄存,另一个是接收寄存器,但它们都共同使用同一个寻址地址99H。CPU 在读SBUF 时

34、会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是双缓冲寄存器,这样可以避免接收中断没有及时的被响应,数据没有被取走,下一帧数据已到来,而造成的数据重叠问题。发送器则不需要用到双缓冲,一般情况下我们在写发送程序时也不必用到发送中断去外理发送数据。操作SBUF寄存器的方法则很简单,只要把这个99H 地址用关键字sfr定义为一个变量就可以对其进行读写操作了,如sfr SBUF=0x99;当然你也可以用其它的名称。通常在标准的reg51.h或at89x51.h等头文件中已对其做了定义,只要用#include引用就可以了。 SCON串行口控制寄存器通常在芯片或设备中为了监视或控制接口状态,都会

35、引用到接口控制寄存器。SCON就是51芯片的串行口控制寄存器。它的寻址地址是98H,是一个可以位寻址的寄存器,作用就是监视和控制51芯片串行口的工作状态。51芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用SCON寄存器。它的各个位的具体定义如下: SM0 SM1 SM2 REN TB8 RB8 TI RI SM0、SM1 为串行口工作模式设置位,这样两位可以对应进行四种模式的设置。串行口工作模式设置。 SM0 SM1 模式 功能 波特率 0 00同步移位寄存器 fosc/12 0 118位UART 可变 1 029位UARTfosc/32 或fosc/64 1 139位UA

36、RT 可变 在这里只说明最常用的模式1,其它的模式也就一一略过,有兴趣的朋友可以找相关的硬件资料查看。表中的fosc代表振荡器的频率,也就是晶振的频率。UART 为(Universal Asynchronous Receiver)的英文缩写。 SM2在模式2、模式3中为多处理机通信使能位。在模式0中要求该位为0。REM为允许接收位,REM置1时串口允许接收,置0时禁止接收。REM是由软件置位或清零。如果在一个电路中接收和发送引脚P3.0,P3.1都和上位机相连,在软件上有串口中断处理程序,当要求在处理某个子程序时不允许串口被上位机来的控制字符产生中断,那么可以在这个子程序的开始处加入REM=0

37、来禁止接收,在子程序结束处加入REM=1再次打开串口接收。大家也可以用上面的实际源码加入REM=0 来进行实验。TB8发送数据位8,在模式2和3是要发送的第9位。该位可以用软件根据需要置位或清除,通常这位在通信协议中做奇偶位,在多处理机通信中这一位则用于表示是地址帧还是数据帧。RB8接收数据位8,在模式2和3是已接收数据的第9位。该位可能是奇偶位,地址/数据标识位。在模式0中,RB8为保留位没有被使用。在模式1中,当SM2=0,RB8是已接收数据的停止位。TI发送中断标识位。在模式0,发送完第8位数据时,由硬件置位。其它模式中则是在发送停止位之初,由硬件置位。TI置位后,申请中断,CPU 响应

38、中断后,发送下一帧数据。在任何模式下,TI都必须由软件来清除,也就是说在数据写入到SBUF后,硬件发送数据,中断响应(如中断打开),这时TI=1,表明发送已完成,TI不会由硬件清除,所以这时必须用软件对其清零。RI接收中断标识位。在模式0,接收第8位结束时,由硬件置位。其它模式中则是在接收停止位的半中间,由硬件置位。RI=1,申请中断,要求CPU 取走数据。但在模式1中,SM2=1时,当未收到有效的停止位,则不会对RI置位。同样RI也必须要靠软件清除。常用的串口模式1是传输10个位的,1位起始位为0,8位数据位,低位在先,1位停止位为1。它的波特率是可变的,其速率是取决于定时器1 或定时器2的

39、定时值(溢出速率)。AT89C51和AT89C2051等51系列芯片只有两个定时器,定时器0和定时器1,而定时器2是89C52系列芯片才有的。波特率在使用串口做通讯时,一个很重要的参数就是波特率,只有上下位机的波特率一样时才可以进行正常通讯。波特率是指串行端口每秒内可以传输的波特位数。有一些初学的朋友认为波特率是指每秒传输的字节数,如标准9600会被误认为每秒种可以传送9600个字节,而实际上它是指每秒可以传送9600个二进位,而一个字节要8个二进位,如用串口模式1来传输那么加上起始位和停止位,每个数据字节就要占用10个二进位,9600波特率用模式1传输时,每秒传输的字节数是960010=96

40、0字节。51芯片的串口工作模式0的波特率是固定的,为fosc/12,以一个12M的晶振来计算,那么它的波特率可以达到1M。模式2的波特率是固定在fosc/64或fosc/32,具体用那一种就取决于PCON寄存器中的SMOD位,如SMOD为0,波特率为focs/64,SMOD 为1,波特率为focs/32。模式1和模式3的波特率是可变的,取决于定时器1或2(52 芯片)的溢出速率。那么我们怎么去计算这两个模式的波特率设置时相关的寄存器的值呢?可以用以下的公式去计算。 波特率=(2SMOD32)定时器1 溢出速率上式中如设置了PCON 寄存器中的SMOD 位为1时就可以把波特率提升2倍。通常会使用

41、定时器1 工作在定时器工作模式2下,这时定时值中的TL1做为计数,TH1做为自动重装值,这个定时模式下,定时器溢出后,TH1的值会自动装载到TL1,再次开始计数,这样可以不用软件去干预,使得定时更准确。在这个定时模式2下定时器1溢出速率的计算公式如下:溢出速率=(计数速率)/(256TH1)上式中的“计数速率”与所使用的晶体振荡器频率有关,在51芯片中定时器启动后会在每一个机器周期使定时寄存器TH的值增加1。一个机器周期等于十二个振荡周期,所以可以得知51芯片的计数速率为晶体振荡器频率的1/12,一个12M的晶振用在51芯片上,那么51的计数速率就为1M。通常用11.0592M晶体是为了得到标

42、准的无误差的波特率,那么为何呢?计算一下就知道了。如我们要得到9600 的波特率,晶振为11.0592M 和12M,定时器1 为模式2,SMOD 设为1,分别看看那所要求的TH1 为何值。代入公式:11.0592M9600=(232)(11.0592M/12)/(256-TH1) TH1=25012M 9600=(232)(12M/12)/(256-TH1) TH1249.49 上面的计算可以看出使用12M晶体的时候计算出来的TH1不为整数,而TH1的值只能取整数,这样它就会有一定的误差存在不能产生精确的9600波特率。当然一定的误差是可以在使用中被接受的,就算使用11.0592M的晶体振荡器

43、也会因晶体本身所存在的误差使波特率产生误差,但晶体本身的误差对波特率的影响是十分之小的,可以忽略不计。 3.4.2 DS18B20的简要说明DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而使用DS1

44、8B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。 n DS18B20简介1) 独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。2) 在使用中不需要任何外围元件。3) 可用数据线供电,电压范围:3.0-5.5 V。4) 测温范围:-55-125 。固有测温分辨率为0.5 。5) 通过编程可实现912位的数字读数方式。6) 用户可自设定非易失性的报警上下限值。7) 支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实

45、现多点测温。8) 负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。n DS18B20的内部结构DS18B20采用3脚PR35封装或8脚SOIC封装,其内部结构框图如下图所示。 64位ROM和单总线接口存储器和控制器高速缓存存储器8位CRC生成器温度灵敏元件低温触发器TL高温触发器配置寄存器电源检测图3.8 DS18B20内部结构(1)64b闪速ROM: 开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前56位的CRC校验码,这也是多个DS18B20可以采用一线进行通信的原因。(2) 非易市失性温度报警触发器TH和TL,可通过软件写入用户报警上下限。

46、(3) 高速暂存存储器DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM。后者用于存储TH,TL值。数据先写入RAM,经校验后再传给E2RAM。而配置寄存器为高速暂存器中的第5个字节,他的内容用于确定温度值的数字转换分辨率,DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节各位的定义如下:低5位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动,R1和R0决定温度转换的精度位数,即是来设置分辨率,如表3.1所示(DS18B20出厂时被设置为12位)

47、。表3.1 DS18B20工作精度R1R0分辨率温度最大转换时间009位 93.75ms0110位 187.5ms1011位 375ms1112位750ms由表3.1可见,设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要在分辨率和转换时间权衡考虑。高速暂存存储器除了配置寄存器外,还有其他8个字节组成,其分配如下所示。其中温度信息(第1,2字节)、TH和TL值第3,4字节、第68字节未用,表现为全逻辑1;第9字节读出的是前面所有8个字节的CRC码,可用来保证通信正确。 当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式

48、存储在高速暂存存储器的第1,2字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.062 5 /LSB形式表示。温度值格式如下:对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变换为原码,再计算十进制值。表2是对应的一部分温度值。 DS18B20完成温度转换后,就把测得的温度值与TH,TL作比较,若TTH或TTL,则将该器件内的告警标志置位,并对主机发出的告警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行告警搜索。 (4) CRC的产生在64b ROM的最高有效字节中存储有循环冗余校验码(CRC)。主机根据ROM的前

49、56位来计算CRC值,并和存入DS18B20中的CRC值做比较,以判断主机收到的ROM数据是否正确。 n DS18B20的测温原理DS18B20的测温原理如图3.9所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被

50、预置在-55 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3.8中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就DS18B20的测温原理。置位加停止斜率累加器预置计数器低温度系数晶振比较预置温度寄存器高温度系数晶振计数器图

51、3.9 DS18B20的测温原理另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。各种操作的时序图与DS1820相同。 n DS18B20与单片机的典型接口设计以MCS51单片机为例,图3.9中采用寄生电源供电方式, P1.1口接单线总线为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管和89C51的P1.0来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D变换操作时,总线上必须有强的上拉,上拉开启时间最大为10 s。采用寄生电源供电方式是VDD和GND端均接地。由于单线制只有一根线,因此发送接收口必须是三态的。主机控制DS18B20完成温度转换必须经过3个步骤:初始化、ROM操作指令、存储器操作指令。假设单片机系统所用的晶振频率为12 MHz,根据DS18B20的初始化时序、写时序和读时序,分别编写3个子程序:INIT为初始化子程序,WRITE为写(命令或数据)子程序,READ为读数据子程序,所有的数据读写均由最低位开始,实际在实验中不用这种方式,只要在数据线上加一个上拉电阻4.7 k,另外2个脚分别接电源和地。图3.10 寄生电源供电方式 4.7K+5

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!