毕业设计(论文)基于51单片机的万历设计.doc
《毕业设计(论文)基于51单片机的万历设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于51单片机的万历设计.doc(40页珍藏版)》请在三一办公上搜索。
1、目 录第一章 绪论3第二章 设计要求及设计框图42.1 设计要求42.2 设计框图4第三章 知识要点43.1 LMO16L液晶模块43.1.1 LM016L引脚说明53.1.2 控制指令53.1.3 基于Proteus ISIS 7的液晶模块仿真63.2 单片机AT89C5183.2.1 主要特性83.2.2 管脚说明93.2.3 振荡器特性113.2.4 芯片擦除113.3 时钟芯片DS1302113.3.1 DS1302的控制字节123.3.2 数据输入输出(I/O)123.3.3 DS1302的寄存器123.4 DS18B20数字温度传感器133.4.1技术性能描述133.4.2 DS1
2、8B20主要的数据部件143.4.3 DS18B20温度处理过程153.4.4 DS18B20的主要特性173.4.5 DS18B20的外形和内部结构173.4.6 DS18B20工作原理183.4.7 DS18B20的应用电路213.4.8 DS18B20使用中注意事项23第四章 硬件设计244.1 Proteus软件244.1.1 Proteus软件介绍244.1.2 功能特点244.1.3 革命性的特点244.1.4 基本操作254.1.5 选择要使用的元件254.1.6 功能模块264.2 基于89C51的万年历与温度显示器的硬件设计284.2.1 设计框图294.2.2 电路原理图2
3、94.3 元件清单30第五章 软件设计305.1 Keil软件305.1.1 Keil软件介绍305.1.2Keil C51单片机软件开发系统的整体结构315.1.3 使用独立的Keil仿真器时的注意事项315.1.4 Keil的优点315.2 程序流程325.3 程序清单32第六章 系统仿真及调试38第七章 设计心得体会39参考文献40第一章 绪论目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全
4、自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领
5、域,大致可分如下几个范畴:在智能仪器仪表上的应用在工业控制中的应用在家用电器中的应用在计算机网络和通信领域中的应用单片机在医用设备领域中的应用在各种大型电器中的模块化应用单片机在汽车设备领域中的应用基于单片机在现实生活中的广泛应用,及人们对于万年历、温度显示的需求度,现设计出一款基于89C51的万年历及温度显示系统。此设计是数据采集及处理,显示系统及与单片机有效结合。此设计是通过在“单片机原理及应用”课堂上学习的知识的综合应用。本系统设计以单片机89C51为控制器,辅以时钟芯片Ds1302、温度传感器Ds18b20、液晶显示器LM016L 。基于89C51的万年历及温度显示系统,主要由单片机8
6、9C51、时钟芯片Ds1302、温度传感器Ds18b20、液晶显示器LM016L等构成,具有显示当前时间、年月日及温度的功能。第二章 设计要求及设计框图2.1 设计要求 具有年、月、日、星期、时、分、秒等功能; 具有温度显示功能; 2.2 设计框图AT89C51主控模块LM016L液晶显示Ds1302时钟电路Ds18b20实时环境温度采集电路 第三章 知识要点3.1 LMO16L液晶模块LM016L液晶模块采用HD44780控制器。HD44780具有简单而功能较强的指令集,可以实现字符移动、闪烁等功能。LM016L与单片机 MCU(Microcontroller Unit)通讯可采用 8位或者
7、 4位并行传输两种方式。HD44780控制器由两个8位寄存器、指令寄存器(IR)和数据寄存器(DR)、忙标志(BF)、显示数据 RAM(DDRAM)、字符发生器ROM(CGROM)、字符发生器RAM(CGRAM)、地址计数器(AC)。IR用于寄存指令码,只能写入不能读出;DR用于寄存数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和 CGRAM读出的数据。BF为1时,液晶模块处于内部处理模式,不响应外部操作指令和接受数据。DDRAM用来存储显示的字符,能存储80个字符码。CGROM由8位字符码生成5*7点阵字符160种和 5*10点阵字符32种,8位字符编码和字符的对应
8、关系,可以查看相关文献。CGRAM是为用户编写特殊字符留用的,它的容量仅64字节。可以自定义8个 5*7点阵字符或者4个 5*10点阵字符。AC可以存储DDRAM和 CGRAM的地址,如果地址码随指令写入 IR,则IR自动把地址码装入AC,同时选择DDRAM或者CGRAM单元。 3.1.1 LM016L引脚说明管脚号名称电平功能描述 1 VSS 0V 2 VDD 5.0V 3 RS H/L H:数据线上为数据信号;L:数据线上为指令信号 4 RW H/L H:读数据模式;L:写数据模式 5 E H/L 使能信号端 6 DB0DB7 H/L 数据线3.1.2 控制指令控制指令通过对HD44780
9、写入控制指令,HD44780产生显示驱动信号来驱动LM016L。HD44780的控制指令主要有:清除显示(Clear Display)、地址归位( Return Home)、输入模式设定(Entry Mode Set)、显示开/关控制(Display On/Off Control)、功能设定(Function Set)、设定CGRAM的地址(Set CGRAM Address)、设定DDRAM的地址(Set DDRAM Address)、写DDRAM/CGRAM(Write Date to DDRAM/CGRAM)、读忙标志和地址(Read Busy Flagand Address)以及从DD
10、RAM和CGRAM中读数据(Read Date from DDRAM/CGRAM)。3.1.3 基于Proteus ISIS 7的液晶模块仿真 1、接口设计运行Proteus ISIS 7进入设计界面,依照图所示在元件库中选择需要的元件。80C51的P0口作为8位数据的输出端,P2.0、P2.1、P2.2作为控制信号的输出端。2、软件设计电路图绘制好之后,就可以编写LM016L的驱动程序。 LM016L的操作有两大类:读操作和写操作。一般情况下不需要从液晶中读取数据,所以对液晶操作主要是写指令和写数据两个写操作,对于忙标志(BF),采用延时的方法,保证液晶模块有足够时间进行内部数据处理。在写源
11、程序时,需要根据液晶模块的时序图编写程序。 (1)写指令子程序RSR/WE DB0 - DB7WRITE_COMMAND:;写指令子程序CLR4 LCDE;清使能信号 CLR RS;RS=0,RW=0写指令 CLR RWMOV P0, A ;送指令字(2)写数据子程序 WRITE_DATA入口参数:数据放在累加器A中 WRITE_DATA:;写数据子程序 CLR LCDE;清使能信号 SETB RS ;RS=1,RW=0写数据 CLR RW MOV P0, A ;送数据RS BIT P2.0; RW BIT P2.1;LCDE BIT P2.2下面是写指令和写数据的源代码:写指令子程序WRIT
12、E_COMMAND入口参数:指令字放在累加器A中有效数据T2 T3 T1 T4 SETB LCDE LCALL DELAY CLR LCDE RETSETB LCDE LCALL DELAY CLR LCDE RET ;设置使能信号;延时;设置使能信号;延时液晶模块初始化主要包括:功能设定(Function Set)、显示开/关控制(Display On/OffControl)、清除显示(Clear Display)、进入点设定(Entry Mode Set)。INITIAL_LCD:;液晶模块初始化 MOV A,#06H ;输入方式设置;8位接口,两行显示,5*7点阵字符 LCALL WRI
13、TE_COMMAND MOV A,#38H MOV A,#01H ;清屏指令 LCALL WRITE_COMMAND LCALL WRITE_COMMANDMOV A,#0EH ;显示开关设置 RET LCALL WRITE_COMMAND3.3自定义字符及其显示CGRAM是用户编写特殊字符用的,它的容量仅64字节,地址为003FH。定义一个5*7点阵字符需要8个字节,这8个字节由CGRAM地址的高3位确定,相同的为一组。 3.2 单片机AT89C51AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read
14、Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。3.2.1 主要特性与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:
15、10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 3.2.2 管脚说明 VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓
16、冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口
17、输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示:P3口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P
18、3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOV
19、X,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
20、XTAL2:来自反向振荡器的输出。3.2.3 振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.2.4 芯片擦除功能整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51设有稳态逻辑,可以在低到
21、零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 3.3 时钟芯片DS1302 DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置 “0”,接着把RST端置“1”,最后才给予SCLK脉冲;读/写时序如下图3.3.1所示。DS1302的控制字,此控制字的位7必须置1,若为0则不能把对DS1302进行读写数据。对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0。位1至位5指操作单元的地址。位
22、0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。控制字节总是从最低位开始输入/输出的。DS1302的日历、时间寄存器内容:“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。“WP”是写保护位,在任何的对时钟和RAM的写操作之前,WP必须为0。当“WP”为1时,写保护位防止对任一寄存器的写操作。3.3.1 DS1302的控制字节DS1302的控制字节的高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中;位6如果0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址
23、;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。3.3.2 数据输入输出(I/O)在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。如下图3.3所示 图3.3.1 DS1302读/写时序图3.3.3 DS1302的寄存器DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表3.3.2。 表3.3.2 DS1302的日历、时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 51 单片机 万历 设计
链接地址:https://www.31ppt.com/p-3978357.html