




已阅读5页,还剩84页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
唐山学院毕业设计基于单片机的多功能液晶显示数字毕业设计目 录1引言12总体方案介绍22.1系统设计思想22.2系统框架图23硬件仿真电路设计33.1 Proteus33.1.1 Proteus简介33.1.2 Proteus的基本操作33.2 AT89C51的电路设计53.2.1 AT89C51简介53.2.2 AT89C51的时钟电路设计73.2.3 AT89C51的复位电路设计83.3 AT89C51液晶显示模块的连接93.3.1液晶显示器LCD1602简介93.3.2 AT89C51与LCD1602的连接133.4 AT89C51与时钟芯片的连接143.4.1时钟芯片DS1302简介143.4.2 AT89C51与时钟芯片DS1302的连接163.5 AT89C51与温度芯片的连接173.5.1温度芯片DS18B20简介173.5.2AT89C51与温度芯片DS18B20的连接173.6 AT89C51与键盘的连接184 系统软件设计204.1Keil简介204.2程序设计204.2.1主程序模块设计204.2.2液晶显示器LCD1602模块224.2.3时钟芯片DS1302操作模块234.2.4温度芯片DS18B20操作模块254.2.5键盘操作模块265 Proteus与Keil连接调试286硬件实现316.1 Protel简介316.2 Protel的硬件电路设计316.2.1 创建项目文件316.2.2 原理图设计326.2.3 报表生成336.2.4 创建PCB文件336.2.5 PCB布线356.2.6 3D效果图367结论37谢辞38参考文献39附录40外文资料77唐 山 学 院 毕 业 设 计1引言单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。目前单片机已经渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。本次设计的多功能数字时钟,以AT89C51芯片为核心,辅以必要的电路,通过液晶显示器能够准确显示数字时钟。它也是现代社会应用广泛的计时工具,在航天、电子等科研单位,工厂、医院、学校等企事业单位,各种体育赛事及至我们每个人的日常生活中都发挥着重要的作用。该系统同时具有硬件设计简单、工作稳定性高、价格低廉等优点。2总体方案介绍整个电子时钟系统电路可分为五大部分:中央处理单元(CPU)、电源电路部分、显示部分、键盘输入部分、温度采集部分。2.1系统设计思想本系统由控制时钟芯片DS1302、温度芯片DS18B20、AT89C51单片机和字符点阵型LCD1602液晶显示器等器件构成。用DS1302产生时钟信号,用温度芯片DS18B20产生温度信号,再由单片机负责接收并且对其进行控制,然后通过编写程序实现具体的功能,如年、月、日、星期、时、分、秒及温度的显示,以及时间的校准、闹钟的设置等。再通过编写液晶器件的驱动程序,使其信息显示在LCD1602液晶显示器上。最后,将设计的硬件电路在Proteus 仿真软件中进行仿真。2.2系统框架图DS1302时钟芯片DS18B20温度芯片AT89C51单片机LCD1602液晶显示器根据上述的系统设计总思想设计出如下总体框架图(图2-1):图2-1系统总体框架图3硬件仿真电路设计在前面的章节给出了系统设计的粗略轮廓,在本章节中,将画出详细的电路仿真原理图,并按照要求仔细地在Proteus中完成硬件的仿真电路。总体上来说,本系统主要由显示电路, 功能控制电路、传感器电路三部分组成。吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系统稳定性大大提高。本系统不仅成功的实现了电子时钟的基本功能,而且还可以通过对程序的改变来实现其它方面的开发及学习。3.1 Proteus3.1.1 Proteus简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:(1)实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。(2)支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。(3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision3等软件。(4)具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。3.1.2 Proteus的基本操作双击桌面上的ISIS 7 Professional图标或者单击屏幕左下方的“开始”“程序”“Proteus 7 Professional” “ISIS 7 Professional”,出现如图3-1所示屏幕,进入Proteus ISIS集成环境。图3-1 启动时的屏幕Proteus ISIS的工作界面是一种标准的Windows界面,如图3-2所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。图3-2 Proteus ISIS的工作界面进入Proteus ISIS的工作界面后,选择“对象选择器窗口”中的“对象选择按钮”,选择所需的元器件,然后放置到“图形编辑窗口”中,以些类推将原理图中的元器件放置完毕,再用相应的线联接起来,绘图完毕后点击保存即可。如果想对本系统进行仿真时,还要将编译过的源程序载下AT89C51中,操作过程为:在AT89C51芯片上单击右键选择“Edit Component”如图3-3 ,在“Program File”框中选择编译好的源程序文件,选择“OK”键关闭“Edit Component”对话框。最后点击仿真进程控制按钮中的“开始”按钮即可进行仿真操作。图3-3 Edit Component对话框3.2 AT89C51的电路设计3.2.1 AT89C51简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图3-4所示:图3-4 AT89C51 管脚说明:VCC供电电压。GND接地。P0口8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口带内部上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口带内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。在编程/校验时,P3口可接收某些控制信号。具体的P3口功能,如表3-1所示。表3-1 P3口的特殊功能引脚 替代功能 说明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 外部RAM写选通 P3.7 RD 外部RAM读选通RST复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP当/EA保持低电平时,则在此期间外部程序存储器(0000HFFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2来自反向振荡器的输出。3.2.2 AT89C51的时钟电路设计时钟电路是产生CPU校准时序,是单片机的控制核心。AT89C51的时钟信号可通过内部振荡方式和外部振荡方式两种方式得到。本次设计使用的是片内振荡方式,通过外接12MHz的晶振来实现时钟电路的时序控制。在使用片内振荡器时,XTAL1和XTAL2分别为反向放大器的输入端和输出端。外接晶体以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。当使用外部时钟驱动时,XTAL2引脚应悬空,而由XTAL1引脚上的信号驱动,或者XTAL1引脚应悬空,而由XTAL2引脚上的信号驱动。外部振荡器再通过一个2分频的触发器来形成内部时钟所需要的信号。在电容器C1、C2选择时方面,一般选择其值为530pF。本系统中所用的电容值为22pF,具体的电路接法如图3-5所示。图3-5 晶振电路图3.2.3 AT89C51的复位电路设计根据应用的要求,复位操作通常由上电复位和开关复位2种基本形式。本系统使用的复位电路是在基本复位电路的基础上所改进的一种混合方法,使其两种形式巧妙地糅合在一起,即做到了上电复位,又可以在发生预料之外的问题时,随时进行开关复位单片机。具体的电路连接接法如图3-6所示。图3-6复位电路单片机复位后的状态:单片机的复位操作使单片机进入初始化过程,其中包括使程序计数器PC0000H,P0P3FFH,SP07H,其他寄存器处于零。这表明程序从0000H地址单元开始执行。单片机复位后不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态如表3-2所示。表3-2 8051单片机复位后特殊功能寄存器的初始状态1特殊功能寄存器初始状态特殊功能寄存器初始状态A 00H TMOD 00H B 00H TCON 00H 表3-2续 8051单片机复位后特殊功能寄存器的初始状态1特殊功能寄存器初始状态特殊功能寄存器初始状态PSW 00H TH0 00H SP 07H TL0 00H DPL 00H TH1 00H DPH 00H TL1 00H P0P3 FFH SBUF 不定 IP *00000B SCON 00H IE 0*00000B PCON 0*B 注:表中的符号*为随机状态需要指出的是,记住一些特殊功能寄存器复位后的状态,对于熟悉单片机操作,减短应用程序中的初始化部分是十分必要的。3.3 AT89C51液晶显示模块的连接3.3.1液晶显示器LCD1602简介液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。本系统使用是是LCD1602液晶显示器,它可以显示两行,每行16个字符,采用单+5V电源电,外围电路配置简单,价格便宜,具有很高的性价比。LCD1602外观如图3-7所示。图3-7 LCD1602外观LCD1602采用标准的14脚接口,其中VSS为地电源,VDD接5V正电源,VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0D7为8位双向数据线。LCD1602液晶模块内部的控制器共有11条控制指令,具体的命令见表3-3所示。表3-3 LCD1602控制指令指 令RSR/WD7D6D5D4D3D2D1D01清屏00000000012光标复位000000001*3光标和显示模式设置00000001I/DS4显示开关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址(AGG)8置数据存贮器地址001显示数据存贮器地址(ADD)9读忙标志或地址01BF计数器地址(AC)10写入CGRAM/DDRAM10要写的数11读CGRAM/ DDRAM数11读出的数据1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(1)清屏指令功能:1) 清除液晶显示器,即将DDRAM的内容全部填入“空白”的ASCII码20H;2)光标归位,即将光标撤回液晶显示屏的左上方;3) 将地址计数器(AC)的值设为0;2. 光标复位指令 功能:1) 把光标撤回到显示器的左上方;2)把地址计数器(AC)的值设置为0;3)保持DDRAM的内容不变;(3) 光标和显示模式设置指令 功能:设定每次定入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。参数设定的情况表3-4所示。表3-4 显示模式设置指令参数设定位名设置I/D0=写入新数据后光标左移1=写入新数据后光标右移S0=写入新数据后显示屏不移动1=写入新数据后屏整体右移1个字符(4)显示开关控制指令功能:控制显示器开/关、光标显示/关闭以及光标是否闪烁。参数设定的情况如表3-5。表3-5 显示开关控制指令参数设定位名设置D0=显示功能关1=显示功能开C0=无光标1=有光标B0=光标闪烁1=光标不闪烁(5)设定显示屏或光标移动方向指令功能:使光标移位或使整个显示屏幕移位。参数设定的情况如表3-6。表3-6 设定显示屏或光标移动方向指令参数设定S/CR/L设定情况00光标左移1格,且AC值减101光标右移1格,且AC值加110显示器上字符全部左移一格,但光标不动11显示器上字符全部右移一格,但光标不动(6)功能设定指令功能:设定数据总线位数、显示的行数及字型。参数设定的情况如表3-7。表3-7 功能设定指令参数设定位名设置DL0=数据总线为4位1=数据总线为8位N0=显示1行1=显示2行F0=57点阵/每字符1=510点阵/每字符(7)设定CGRAM地址指令功能:设定下一个要存入数据的CGRAM的地址。(8)设定DDRAM地址指令功能:设定下一个要存入数据的CGRAM的地址。(9)读取忙信号或AC地址指令功能:1) 读取忙碌信号BF的内容,BF=1表示液晶显示器忙,暂时无法接收单片机送来的数据或指令;当BF=0时,液晶显示器可以接收单片机送来的数据或指令;2)读取地址计数器(AC)的内容。(10)数据写入DDRAM或CGRAM指令一览功能:1) 将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符;2)将使用者自己设计的图形存入CGRAM;(11)从CGRAM或DDRAM读出数据的指令一览功能:读取DDRAM或CGRAM中的内容。表3-8 基本操作时序命令名输入输出读状态RS=L,RW=H,E=HDB0DB7=状态字写指令RS=L,RW=L,E=下降沿脉冲, DB0DB7=指令码无读数据RS=H,RW=H,E=HDB0DB7=数据写数据RS=H,RW=L,E=下降沿脉冲,DB0DB7=数据无液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图3-8是1602的内部显示地址。图3-8 1602LCD内部显示地址例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”3.3.2 AT89C51与LCD1602的连接在LCD1602液晶显示模块和单片机AT89C51相连接时需要在液晶显示的数据口加上10K左右的上拉电阻,具体的接法为:将VSS接地,VDD接高电平,VEE接入一个电位器来调整LCD1602的对比度。将RS接到P2.0口,R/W接到P2.1口,E接到P2.2口。D0D7接到P0口来控制命令输入及数据的输入/输出。具体的连接仿真电路可见图3-9所示。图3-9 LCD1602液晶显示模块和单片机AT89C51接口电路3.4 AT89C51与时钟芯片的连接3.4.1时钟芯片DS1302简介DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线: RES复位线、 I/O数据线、SCLK串行时钟。时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。DS1302工作时功耗很低保持数据和时钟信息时功率小于1mW。DS1302器件外观如图3-10所示,DS1302管脚的功能描述可见表3-9所示。图3-10 DS1302器件表3-9 DS1302管脚的功能描述管脚名功能说明X1,X232.768KHz 晶振管脚GND地RST复位脚I/O数据输入/输出引脚SCLK串行时钟Vcc1,Vcc2电源供电管脚DS1302 的控制字如图3-11所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 1 RAM/CK A4 A3 A2 A1 A0 RAM/K图3-11 DS1302的控制字在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。 DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表3-10所示。表3-10 日历、时间寄存器及其控制字寄存器名称写操作读操作取值范围76 5 43 2 1秒寄存器80H81H0059CH10SECSEC分寄存器82H83H0059010MINMIN时寄存器84H85H002312/2410HRHR日寄存器86H87H0131010DATEDATE月寄存器88H89H011200 10MMONTH周寄存器8AH8BH010700 0 0DAY年寄存器8CH8DH009910YEARYEARDS1302的主要特性:(1)实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年调整的能力(2)31* 8 位暂存数据存储RAM(3)串行I/O口方式使得管脚数量最少(4)宽范围工作电压:2.0 5.5V(5) 工作电流2.0V时,小于300nA(6) 读/写时钟或RAM数据时,有两种传送方式:单字节传送和多字节传送(字符组方式)(7) 8 脚DIP封装或可选的8脚SOIC封装(根据表面装配)(8) 简单3线接口(9) 与TTL兼容(Vcc=5V)(10)可选工业级温度范围-40 +853.4.2 AT89C51与时钟芯片DS1302的连接在使用DS1302时需加一个供其工作的晶振,一般选值为32768Hz。最好再加一个后备电源使其在断电后断续工作。其与AT89C51的连接如图3-12所示。实际上,在调试程序时可以不加电容器,只加一个32768Hz 的晶振即可。只是选择晶振时,不同的晶振,误差也较大。要特别说明的是备用电源BAT1,可以用电池或者超级电容器(0.1F以上)。虽然DS1302在主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑主板上的3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。100 F就可以保证1小时的正常走时。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。图3-12 AT89C51与DS1302的连接3.5 AT89C51与温度芯片的连接3.5.1温度芯片DS18B20简介DS18B20数字温度计是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。其实物图如图3-13所示,其引脚的功能描述可见表3-11所示。图3-13 DS18B20表3-11 DS18B20的引脚功能描述引脚功能说明GND地DQ数字输入输出引脚VDD可选的VDD引脚DS18B20的特点: (1)只要求一个端口即可实现通信。 (2)在DS18B20中的每个器件上都有独一无二的序列号。 (3)实际应用中不需要外部任何元器件即可实现测温。 (4)测量温度范围在55C到125C之间。 (5)数字温度计的分辨率用户可以从9位到12位选择。 (6)内部有温度上、下限告警设置。 3.5.2AT89C51与温度芯片DS18B20的连接在仿真软件中,可以用DS18B20仿真器上的上、下键来调节温度的高低,以此来检测读、写温度程序是否成功。具体的DS18B20与AT89C51连接如图3-14所示图3-14 AT89C51与DS18B20的连接3.6 AT89C51与键盘的连接键盘在单片机应用系统中,实现输入数据、传送命令的功能,是人工干预的主要手段。键盘分两大类:编码键盘和非编码键盘。(1)编码键盘:由硬件逻辑电路完成必要的键识别工作与可靠性措施。每按一次键,键盘自动提供被按键的读数,同时产生一选通脉冲通知微处理器,一般还具有反弹跳和同时按键保护功能。这种键盘易于使用,但硬件比较复杂,对于主机任务比较繁重。(2)非编码键盘:只简单地提供键盘的行列与矩阵,其他操作如键的识别,决定按键的读数等仅靠软件完成,故硬件较为简单,但占用CPU较多时间。键盘电路结构分为两类:独立式按键和矩阵式键盘。(1)独立式按键独立式按键就是各按键相互独立,每个按键单独占用一根I/O口线,每根I/O口线的按键工作状态不会影响其他I/O口线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下了。(2)矩阵式键盘矩阵式键盘适用于按键数量较多的场合,由行线和列线组成,按键位于行列的交叉点上,节省I/O口。为了使设计简洁、易于操作,本系统键盘部分设计使用了非编码、独立式按键了。系统中共有四个独立按键,分别接在P2.3、P2.4、P2.5、P2.6。其中1号键为时间调整时间键,按下此键则进入时间调整状态,然后用2号键(增量键)或3号键(减量键)来完成时间的校准和闹钟的定时。用4号键可以显示闹钟的具体时间。其具体的连接电路如图3-15所示。图3-15 AT89C51与键盘连接4 系统软件设计软件设计是本次系统设计的一个重要组成部分。而在单片机应用系统中,最常用的程序设计方法是模块程序设计。模块程序设计具有结构清晰、功能明确、设计简便、程序模块可共享、便于功能扩展及便于程序维护等特点。为了编制模块程序,先要将软件功能划分为若干个子功能模块,然后确定出各模块的输入、输出及相互间的联系。而本次系统设计也大都是使用这种软件设计方法,根据系统软、硬件的功能分工,确定出软件应完成的功能。在语言选择方面,我选择了汇编语言作为主开发语言。单片机的程序虽然也可以用C语言进行编写。但与其相比,汇编语言只是在可读性和开发周期上有些逊色于C语言,其运行效率一点都不比C语言差,相反用汇编语言编出来的程序无论是运行速度还是程序占用空间大小方面都比C语言编出来的程序要强的多。所以这次设计我选用了汇编语言。4.1Keil简介单片机开发中除必要的硬件外,同样离不开软件,我们编写的汇编语言源程序需变为机器码才可以在CPU上执行。将源程序编译成机器码的软件很多,我选用的是Keil软件, Keil软件是目前最流行开发MCS51系列单片机的软件,从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(Vision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的。用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。通过Vision可以完成编辑、编译、连接等开发流程。Keil操作过程也十分的简单,只需要打开Keil新建一个扩展名为asm文件,然后将其源程序代码输入进去,选择编译按钮即可其源程序编译成以hex为扩展名的二进制文件(机器码),然后即可下载到单片机上执行其程序。4.2程序设计4.2.1主程序模块设计本系统程序设计采用汇编语言进行编写。主程序设计思路为:先对系统进行初始化,如:LCD1602初始化,DS1302初始化等,然后才能进入主显示模块,即可在LCD1602上看到相应的信息。对于LCD1602的初始化,主要是对开启显示屏,清屏,设置显示初始行等操作。DS1302的初始化主要是先开启写功能,然后写入一个初始值。具体的主程序流程如图4-1开始系统初始化定时是否到?欢迎界面显示主界面闹钟响调整时间是否调时间?查看定时?显示定时是是所示。图4-1 主程序流程图主程序源代码:MAIN:LCALL INIT_LCD1602 ;调用显示器LCD1602的初始化LCALL INIT_DS1302 ;调用时钟芯片DS1302的初始化LCALL INIT_TIMER ;调用闹钟初始化LCALL WELCOME ;调用欢迎界面START:LCALL DISPLAY_TIME ;调用时钟显示程序LCALL DISPLAY_TEMP ;调用温度显示程序LCALL TIMER ;调用闹钟判断程序JB SETUP,START_NEXT ;判断是否设置时间LCALL KEY_SELECT START_NEXT:JB TIMERDISPLAY,START ;判断是否查看定点闹钟的具体时间LCALL TIMER_DISPLAYJMP START4.2.2液晶显示器LCD1602模块AT89C51LCD1602先将命令写入LCD1602中,告诉它将做什么如果需要显示数据的话,再将数据送入LCD1602中本系统采用的是LCD1602液晶显示器,由于其是本身带有驱动模块的液晶屏,所以对于LCD1602操作程序可分为开显示、设置显示初始行、写数据和清屏等部分。LCD1602的写命令程序和写数据程序分别以子程序的形式写在程序里,以便主程序中的调用。对LCD1602的具体操作过程如图4-2所示。图4-2对LCD1602的具体操作过程1602LCD的总体操作流程图见图4-3所示。开始LCD初始化延时设第一行显示位置显示第一行内容设第二行显示位置显示第二行内容图4-3 软件流程图LCD初始化程序:INIT_LCD1602:MOV LCD,#01H ;清屏CALL ENABLE_ORDERMOV LCD,#38H ;8位点阵,两行显示CALL ENABLE_ORDERMOV LCD,#0CH ;显示开关为开,光标开关为关,闪烁开关为关CALL ENABLE_ORDERMOV LCD,#80H ;显示的起始位置为第一行的第一位CALL ENABLE_ORDERRET4.2.3时钟芯片DS1302操作模块DS1302 与微处理器进行数据交换过程如图4-4所示,首先由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入), D0=1,指定读操作(输出)。 在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。AT89C51LCD1602先将命令写入DS1302,告诉它将做什么操作如果是写数据的话,再将数据送入DS1302中如果是读数据的话,直接从DS1302数据口读出读、写DS1302的流程图分别为图4-5,图4-6所示,其源程序见附录代码。开始复位端产生1个高电平将命令字写到变量中向DS1302发送1位数据延时命令字是否传输完准备传输命令字中的下一位将数据写到变量中向DS1302发送1位数据延时数据是否传输完准备传输数据中的下一位结束否否图4-4 DS1302 与微处理器进行数据交换过程图4-5 写DS1302数据流程图开始复位端产生1个高电平将命令字写到变量中向DS1302发送1位数据延时命令字是否传输完准备传输命令字中的下一位将数据写到变量中从DS1302接收 1位数据延时数据是否接收完准备接收数据中的下一位结束否否图4-6 读DS1302数据流程图4.2.4温度芯片DS18B20操作模块DS1302为单线接口且每一个DS18B20都有唯一的系列号,因此多个DS18B20可以存在于同一条单线上工作,但本系统就用了一个DS1302所以对DS18B20的搜索可以用Skip ROM命令跳过搜索,然后再对其进行操作。具体的DS18B20的操作过程如图4-7所示。AT89C51LCD1602跳过搜索先将命令写入DS1302,告诉它将做什么操作向DS18B20发读命令如果是写数据的话,再将数据送入DS1302中读DS18B20的数据如果是读数据的话,直接从DS1302数据口读出图4-7 DS18B20的操作过程开始初始化写命令:跳过读序列号操作(0XCC)写命令:启动温度转换温度转换结束?初始化写命令:读温度寄存器写命令:跳过读序列号操作(0XCC)读出温度,并存储结果结束否读DS18B20的流程图见图4-8所示。其源程序可查阅附录中的源代码部分。图4-8 读DS18B20的流程图4.2.5键盘操作模块键盘操作是本系统软件设计中的难点,也是重点。本次设计我只用了四个键,它人分别是1号键(时间调整时间键),2号键(增量键),3号键(减量键),4号键(显示定时时间键)。当按下1号键后会进入,时间调整程序,在不同的设置时段你可以通过2号键或者3号键来对年、月、日、周、时、分、闹钟的时、闹钟分进行设置。当退出时间调整程序后,按4号键可以查看设置闹钟的时间。键盘操作可以有两个方式分别为中断法和按键扫描法。我选择的后者,因为用四个键如果用中断的话,不容易控制,易出错。而且如果用这种最传统的扫描法,使程序看起来SETUP按下?调整年SETUP按下?调整月SETUP按下?调整日SETUP按下?调整周SETUP按下?调整时SETUP按下?调整分SETUP按下?调整闹钟时SETUP按下?调整闹钟分年否否否否否否否否思路更清晰、更明了、更容易理解。具体软件设计流程图如图4-9所示。图4-9 时间设置过程5 Proteus与Keil连接调试从“开始” “程序” “Keil Vision”中打开Keil工具,其工作界面如图5-1所示。选择“Project”“New” “vision project”新建一个名为“多功能电子钟程序”工程文件。将下来会出现如图5-2所示的芯片选择对话框,在“Data base”框下选择“Ateml”公司的“AT89C51”芯片,点击“确定”按键关闭此对话框。再选择“File” “New”新建一个文本文件,将源程序代码添加到此文本中,然后将此文本文件以“Program.asm”名进行保存,最后按编译按钮进行编译。当编译通过后将出现如图5-3所示,同时系统也会生成一个 “Program.hex”文本文件,此文件便是以后将要下载到单片机中的二进制文件。图5-1 Keil主界面图5-2 选择器件界面图5-3 编译界面在Proteus中打开已经设计好的硬件电路图,选中AT89C51,将Keil编译过的源程序写入单片机中,见图5-4所示。在Program File中选择已经编译好的程序的仔细路径,然后点击“OK”按钮,则Hex文件将正确地被写入单片机中。图5-4 写入Hex文件点击仿真按钮,则将出现相应的“WELCOM!”界面,如图5-5所示。等欢迎使用界面过后就是本程序的主界面,即时间显示界面,如图5-6所示。图5-5欢迎使用界面图5-6时钟显示界面 6硬件实现6.1 Protel简介Altium公司的Protel系列电路设计系统是建立在IBM系列PC兼容机环境下的EDA(电子设计自动化)辅助开发工具软件,并且是世界上第一套将EDA环境引入Windows环境的EDA开发工具,以其良好的集成性和可扩展性而深受广大电子设计爱好者欢迎。目前Protel系列软件成为国内电子电路设计者和各大公司使用最为广泛的开发工具。其最新推出的Protel2004不仅具有以前版本所有的功能,而且其操作更为方便,功能更为强大,操作界面更加友好和个性化,是一套完整的板卡级设计系统。它使得电路系统开发设计更加智能化,从而缩短了产品的设计周期和调试时间,避免了设计错误。Portel是Portel公司在80年代末推出的EDA软件,在电子行业的CAD软件中,它当之无愧地排在众多EDA软件的前面,是电子设计者的首选软件,它较早就在国内开始使用,在国内的普及率也最高,有些高校的电子专业还专门开设了课程来学习它,几乎所有的电子公司都要用到它,许多大公司在招聘电子设计人才时在其条件栏上常会写着要求会使用Portel。6.2 Protel的硬件电路设计本系统硬件由控制时钟芯片DS1302、温度芯片DS18B20、AT89C51单片机和字符点阵型LCD1602液晶显示器等器件构成。用D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度购销合同订购模板
- 2025中外合作开发合同新(合同版本)
- 5.2 少年当自强 说课稿- 2024-2025学年统编版道德与法治九年级下册
- 2025无形资产转让合同
- 第一课 计算机的安全使用教学设计-2023-2024学年初中信息技术(信息科技)七年级下册长春版
- 2025【各行各业合同协议模板】【各行各业合同协议模板】设备租赁合同
- 2025年关于有限公司合作伙伴合同
- 2025养殖合同样本
- 一年级道德与法治下册 第三单元 自救自护我能行 第九课 会变脸的水说课稿 苏教版
- 3.2 大气受热过程 (第二课时)教学设计 2023-2024学年高一上学期 地理 湘教版(2019)必修一
- 第六章-全球变化与海平面变化分解课件
- (完整版)高中物理必修一第一章测试题及答案
- 抚州市崇仁县乡镇街道社区行政村统计表
- 部编版道德与法治五年级上册2学会沟通交流课件
- 小儿支气管哮喘-羽课件
- 新北师大版二年级上册数学 课桌有多长 教学课件
- 管道沟槽开挖安全安全技术交底
- 《组织学与胚胎学》课件02细胞
- 教师资格证-综合素质-学生观
- 3食品用纸包装容器等制品食品相关产品生产许可实施细则
- 故障录波器与故障波形分析PPT通用课件
评论
0/150
提交评论