《毕业设计(论文)-基于AT89C51数码时钟电路的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于AT89C51数码时钟电路的设计.doc(74页珍藏版)》请在三一文库上搜索。
1、基于AT89C51单片机数码时钟电路的设计2012届 分类号:TM711 单位代码:10452本科专业职业生涯设计基于AT89C51数码时钟电路的设计姓 名 学 号 年 级 2008级 专 业 电气工程及其自动化 系(院) 指导教师 2011年 12 月 20 日诚 信 声 明本人呈交给临沂师范学院的这篇毕业论文,除了所注参考文献和世所公认的文献外,全部是本人在指导老师指导下的设计成果。 学生签名:日 期:经检查该毕业设计(论文)为独立完成,不存在抄袭现象。 指导老师签名:日 期:摘 要本文通过对一个基于单片机的能实现定时,秒表,闹钟等功能的多功能电子时钟的设计学习,详细介绍了单片机应用中的数
2、据转换显示,液晶显示原理,键盘扫描原理。从而达到学习、了解单片机相关指令在各方面的应用。系统由AT89C51、温度检测芯片、时钟芯片DS1302、液晶显示器LCD1602等部分构成,能实现时钟日历显示的功能,能进行时、分、秒的显示和实时温度显示。也具有时钟、日历的校准,定时时间的设定和闹铃等功能。文章后附有电路原理图、PCB板图和程序清单,以供读者参考。因水平有限,难免有疏落不足之处,敬请老师和同学能给与批评指正。关键字:AT89C51;DS1302;LCD1602;时钟AbstractBased on a microcontroller based on the will to achiev
3、e timing, stopwatch, alarm clocks, and other functions of a multi-functional electronic clock design study, in detail, the computer application of data conversion, Principle LCD, keyboard scanning principle. Thereby achieve studying and understanding the relevant directives SCM in all aspects of the
4、 application. By AT89C51 system, temperature detection chip, the clock chipsDS1302, liquid crystal displays of componentsLCD1602, to achieve clock calendar display function can be carried out, hours seconds of the show and real-time temperature display. Also calculated with the calendar and clock, c
5、alendar calibration, regular hours and set the alarm function. The article attached circuit diagram, the PCB plans and procedures checklist for the reference of our readers. Due to limited, and it will inevitably be lighter inadequate, locations will give teachers and students correction and critici
6、sm. Key words: AT89C51;DS1302; LCD1602; alarm clocks 目 录前 言1第1章 总体方案介绍21.1系统设计思想21.2系统框架图2第2章 硬件仿真电路设计32.1 Proteus32.1.1 Proteus简介32.2 AT89C51的电路设计32.2.1 AT89C51简介32.2.2 AT89C51的时钟电路设计62.2.3 AT89C51的复位电路设计62.3 AT89C51液晶显示模块的连接82.3.1液晶显示器LCD1602简介82.3.2 AT89C51与LCD1602的连接122.4 AT89C51与时钟芯片的连接122.4.1时
7、钟芯片DS1302简介122.4.2 AT89C51与时钟芯片DS1302的连接142.5 AT89C51与温度芯片的连接152.5.1温度芯片DS18B20简介152.5.2AT89C51与温度芯片DS18B20的连接162.6 AT89C51与键盘的连接16第3章 系统软件设计183.1程序设计183.1.1主程序模块设计183.1.2液晶显示器LCD1602模块193.1.3时钟芯片DS1302操作模块203.1.4温度芯片DS18B20操作模块223.1.5键盘操作模块23第4章 硬件实现254.1 Protel的硬件电路设计254.1.1 原理图设计254.1.2 报表生成254.1
8、.3 创建PCB文件26第5章 结 论28附 录29参考文献66谢 辞67基于AT89C51单片机数码时钟电路的设计前 言单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上。 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机具有体积小、功能多、价格低廉、使用方便、系统设计灵活等优点。因此,它应用广泛前景美好,它的实用性大大地提高了我对毕业设计的兴趣。本次设计的多功能数字时钟,以AT89C51芯片为核心,辅以必要的电路,通过液晶显示器能够
9、准确显示数字时钟。它也是现代社会应用广泛的计时工具,在航天、电子等科研单位,工厂、医院、学校等企事业单位,各种体育赛事及至我们每个人的日常生活中都发挥着重要的作用。该系统同时具有硬件设计简单、工作稳定性高、价格低廉等优点。第1章 总体方案介绍整个电子时钟系统电路可分为五大部分:中央处理单元(CPU)、电源电路部分、显示部分、键盘输入部分、温度采集部分。1.1系统设计思想本系统由控制时钟芯片DS1302、温度芯片DS18B20、AT89C51单片机和字符点阵型LCD1602液晶显示器等器件构成。用DS1302产生时钟信号,用温度芯片DS18B20产生温度信号,再由单片机负责接收并且对其进行控制,
10、然后通过编写程序实现具体的功能,如年、月、日、星期、时、分、秒及温度的显示,以及时间的校准、闹钟的设置等。再通过编写液晶器件的驱动程序,使其信息显示在LCD1602液晶显示器上。最后,将设计的硬件电路在Proteus 仿真软件中进行仿真。1.2系统框架图DS1302时钟芯片DS18B20温度芯片AT89C51单片机LCD1602液晶显示器根据上述的系统设计总思想设计出如下总体框架图(图2-1):图1-1系统总体框架图第2章 硬件仿真电路设计在前面的章节给出了系统设计的粗略轮廓,在本章节中,将画出详细的电路仿真原理图,并按照要求仔细地在Proteus中完成硬件的仿真电路。总体上来说,本系统主要由
11、显示电路, 功能控制电路、传感器电路三部分组成。吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系统稳定性大大提高。本系统不仅成功的实现了电子时钟的基本功能,而且还可以通过对程序的改变来实现其它方面的开发及学习。2.1 Proteus2.1.1 Proteus简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:(1)实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿
12、真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。(2)支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。(3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision3等软件。(4)具有强大的原理图绘制功能。总之,该软件是一款集单片机
13、和SPICE分析于一身的仿真软件,功能极其强大。2.2 AT89C51的电路设计2.2.1 AT89C51简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATM
14、EL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图2-4所示:图2-4 AT89C51 管脚说明:VCC供电电压。GND接地。P0口8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口带内部上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P
15、1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口带内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLAS
16、H编程和校验时接收高八位地址信号和控制信号。P3口带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。在编程/校验时,P3口可接收某些控制信号。具体的P3口功能,如表2-1所示。表2-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 外部
17、RAM写选通 P3.7 RD 外部RAM读选通RST复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态AL
18、E禁止,置位无效。/PSEN外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP当/EA保持低电平时,则在此期间外部程序存储器(0000HFFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2来自反向振荡器的输出。2.2.2 AT89C51的时钟电路设计时钟电路是产生CPU校准时序
19、,是单片机的控制核心。AT89C51的时钟信号可通过内部振荡方式和外部振荡方式两种方式得到。本次设计使用的是片内振荡方式,通过外接12MHz的晶振来实现时钟电路的时序控制。在使用片内振荡器时,XTAL1和XTAL2分别为反向放大器的输入端和输出端。外接晶体以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。当使用外部时钟驱动时,XTAL2引脚应悬空,而由XTAL1引脚上的信号驱动,或者XTAL1引脚应悬空,而由XTAL2引脚上的信号驱动。外部振荡器再通过一个2分频的触发器来形成内部时钟所需要的信号。在电容器C1、C2选择时方面,一般选择其值为530pF。本系统中所用的电容值为22pF,
20、具体的电路接法如图2-5所示。图2-5 晶振电路图2.2.3 AT89C51的复位电路设计根据应用的要求,复位操作通常由上电复位和开关复位2种基本形式。本系统使用的复位电路是在基本复位电路的基础上所改进的一种混合方法,使其两种形式巧妙地糅合在一起,即做到了上电复位,又可以在发生预料之外的问题时,随时进行开关复位单片机。具体的电路连接接法如图2-6所示。图2-6复位电路单片机复位后的状态:单片机的复位操作使单片机进入初始化过程,其中包括使程序计数器PC0000H,P0P3FFH,SP07H,其他寄存器处于零。这表明程序从0000H地址单元开始执行。单片机复位后不改变片内RAM区中的内容,21个特
21、殊功能寄存器复位后的状态如表2-2所示。表2-2 8051单片机复位后特殊功能寄存器的初始状态1特殊功能寄存器初始状态特殊功能寄存器初始状态A 00H TMOD 00H B 00H TCON 00H 表2-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 注:表中的符号*为随机状态需要指出的是,记住一些特殊功能
22、寄存器复位后的状态,对于熟悉单片机操作,减短应用程序中的初始化部分是十分必要的。2.3 AT89C51液晶显示模块的连接2.3.1液晶显示器LCD1602简介液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。本系统使用是是LCD1602液晶显示器,它可以显示两行,每行16个字符,采用单+5V电源电,外围电路配置简单,价格便宜,具有很高的性价比。LCD1602外观如图2-7所示。图2-7 LCD1602外观LCD1602采用标准的14脚接口,其中VSS为地电源,VDD接5V正电源,VEE为液晶显示器对比度调整端,接正电源时对比度最
23、弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0D7为8位双向数据线。LCD1602液晶模块内部的控制器共有11条控制指令,具体的命令见表2-3所示。表2-3 LCD1602控制指令指 令RSR/WD7D6D5D4D3D2D
24、1D01清屏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的内容全部填入“空白”的
25、ASCII码20H;2)光标归位,即将光标撤回液晶显示屏的左上方;3) 将地址计数器(AC)的值设为0;2. 光标复位指令 功能:1) 把光标撤回到显示器的左上方;2)把地址计数器(AC)的值设置为0;3)保持DDRAM的内容不变;(3) 光标和显示模式设置指令 功能:设定每次定入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。参数设定的情况表2-4所示。表2-4 显示模式设置指令参数设定位名设置I/D0=写入新数据后光标左移1=写入新数据后光标右移S0=写入新数据后显示屏不移动1=写入新数据后屏整体右移1个字符(4)显示开关控制指令功能:控制显示器开/关、光标显示/关闭以及光标
26、是否闪烁。参数设定的情况如表2-5。表2-5 显示开关控制指令参数设定位名设置D0=显示功能关1=显示功能开C0=无光标1=有光标B0=光标闪烁1=光标不闪烁(5)设定显示屏或光标移动方向指令功能:使光标移位或使整个显示屏幕移位。参数设定的情况如表2-6。表2-6 设定显示屏或光标移动方向指令参数设定S/CR/L设定情况00光标左移1格,且AC值减101光标右移1格,且AC值加110显示器上字符全部左移一格,但光标不动11显示器上字符全部右移一格,但光标不动(6)功能设定指令功能:设定数据总线位数、显示的行数及字型。参数设定的情况如表2-7。表2-7 功能设定指令参数设定位名设置DL0=数据总
27、线为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)将使用者自己设计的
28、图形存入CGRAM;(11)从CGRAM或DDRAM读出数据的指令一览功能:读取DDRAM或CGRAM中的内容。表2-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=数据无液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图2-8是1602的内部显示地址。图2-8 16
29、02LCD内部显示地址2.3.2 AT89C51与LCD1602的连接在LCD1602液晶显示模块和单片机AT89C51相连接时需要在液晶显示的数据口加上10K左右的上拉电阻,具体的接法为:将VSS接地,VDD接高电平,VEE接入一个电位器来调整LCD1602的对比度。将RS接到P2.0口,R/W接到P2.1口,E接到P2.2口。D0D7接到P0口来控制命令输入及数据的输入/输出。具体的连接仿真电路可见图2-9所示。图2-9 LCD1602液晶显示模块和单片机AT89C51接口电路2.4 AT89C51与时钟芯片的连接2.4.1时钟芯片DS1302简介DS1302是DALLAS公司推出的涓流充
30、电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线: RES复位线、 I/O数据线、SCLK串行时钟。时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。DS1302工作时功耗很低保持数据和时钟信息时功率小于1mW。DS1302器件外观如图3-10所示,DS1302管脚的功能描述可见表3-9所示。图2-10 DS1
31、302器件表2-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图2-11 DS1302的控制字在控制指令
32、字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。 DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表2-10所示。表2-10 日历、时间寄存器及其控制字寄存器名称写操作读操作取值范围76 5 43 2 1秒寄存器80H81H0059CH10SECSEC分寄存器82H83H0059010MINMIN时寄存器84H85H002312/2410HRHR日寄存器86H87H013
33、1010DATEDATE月寄存器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封装(根据表面装配)(
34、8) 简单3线接口(9) 与TTL兼容(Vcc=5V)(10)可选工业级温度范围-40 +852.4.2 AT89C51与时钟芯片DS1302的连接在使用DS1302时需加一个供其工作的晶振,一般选值为32768Hz。最好再加一个后备电源使其在断电后断续工作。其与AT89C51的连接如图2-12所示。实际上,在调试程序时可以不加电容器,只加一个32768Hz 的晶振即可。只是选择晶振时,不同的晶振,误差也较大。要特别说明的是备用电源BAT1,可以用电池或者超级电容器(0.1F以上)。虽然DS1302在主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑主
35、板上的3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。100 F就可以保证1小时的正常走时。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。图2-12 AT89C51与DS1302的连接2.5 AT89C51与温度芯片的连接2.5.1温度芯片DS18B20简介DS18B20数字温度计是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。其实物图如图2-13所示,其引脚的功能描述可见表2-11所示。图2
36、-13 DS18B20表2-11 DS18B20的引脚功能描述引脚功能说明GND地DQ数字输入输出引脚VDD可选的VDD引脚DS18B20的特点: (1)只要求一个端口即可实现通信。 (2)在DS18B20中的每个器件上都有独一无二的序列号。 (3)实际应用中不需要外部任何元器件即可实现测温。 (4)测量温度范围在55C到125C之间。 (5)数字温度计的分辨率用户可以从9位到12位选择。 (6)内部有温度上、下限告警设置。 2.5.2AT89C51与温度芯片DS18B20的连接在仿真软件中,可以用DS18B20仿真器上的上、下键来调节温度的高低,以此来检测读、写温度程序是否成功。具体的DS1
37、8B20与AT89C51连接如图2-14所示图2-14 AT89C51与DS18B20的连接2.6 AT89C51与键盘的连接键盘在单片机应用系统中,实现输入数据、传送命令的功能,是人工干预的主要手段。键盘分两大类:编码键盘和非编码键盘。(1)编码键盘:由硬件逻辑电路完成必要的键识别工作与可靠性措施。每按一次键,键盘自动提供被按键的读数,同时产生一选通脉冲通知微处理器,一般还具有反弹跳和同时按键保护功能。这种键盘易于使用,但硬件比较复杂,对于主机任务比较繁重。(2)非编码键盘:只简单地提供键盘的行列与矩阵,其他操作如键的识别,决定按键的读数等仅靠软件完成,故硬件较为简单,但占用CPU较多时间。
38、键盘电路结构分为两类:独立式按键和矩阵式键盘。(1)独立式按键独立式按键就是各按键相互独立,每个按键单独占用一根I/O口线,每根I/O口线的按键工作状态不会影响其他I/O口线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下了。(2)矩阵式键盘矩阵式键盘适用于按键数量较多的场合,由行线和列线组成,按键位于行列的交叉点上,节省I/O口。为了使设计简洁、易于操作,本系统键盘部分设计使用了非编码、独立式按键了。系统中共有四个独立按键,分别接在P2.3、P2.4、P2.5、P2.6。其中1号键为时间调整时间键,按下此键则进入时间调整状态,然后用2号键(增量键)或3号键(减量键)来
39、完成时间的校准和闹钟的定时。用4号键可以显示闹钟的具体时间。其具体的连接电路如图2-15所示。图2-15 AT89C51与键盘连接第3章 系统软件设计3.1程序设计3.1.1主程序模块设计本系统程序设计采用汇编语言进行编写。开始系统初始化定时是否到?欢迎界面显示主界面闹钟响调整时间是否调时间?查看定时?显示定时是是 主程序设计思路为:先对系统进行初始化,如:LCD1602初始化,DS1302初始化等,然后才能进入主显示模块,即可在LCD1602上看到相应的信息。对于LCD1602的初始化,主要是对开启显示屏,清屏,设置显示初始行等操作。DS1302的初始化主要是先开启写功能,然后写入一个初始值
40、。具体的主程序流程如图3-1所示图3-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 T
41、IMERDISPLAY,START ;判断是否查看定点闹钟的具体时间LCALL TIMER_DISPLAYJMP START3.1.2液晶显示器LCD1602模块AT89C51LCD1602先将命令写入LCD1602中,告诉它将做什么如果需要显示数据的话,再将数据送入LCD1602中本系统采用的是LCD1602液晶显示器,由于其是本身带有驱动模块的液晶屏,所以对于LCD1602操作程序可分为开显示、设置显示初始行、写数据和清屏等部分。LCD1602的写命令程序和写数据程序分别以子程序的形式写在程序里,以便主程序中的调用。对LCD1602的具体操作过程如图3-2所示。图3-2对LCD1602的具体操作过程1602LCD的总体操作流程图见图3-3所示。开始LCD初始化延时设第一行显示位置显示第一行内容设第二行显示位置显示第二行内容图3-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_ORDERRET
链接地址:https://www.31doc.com/p-3282742.html