分享
分销 收藏 举报 申诉 / 42
播放页_导航下方通栏广告

类型基于时钟日历芯片DS1302的万年历设计.doc

  • 上传人:人****来
  • 文档编号:4880972
  • 上传时间:2024-10-17
  • 格式:DOC
  • 页数:42
  • 大小:1.13MB
  • 下载积分:12 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    基于 时钟日历 芯片 DS1302 万年历 设计
    资源描述:
    基于时钟日历芯片DS1302的万年历设计 黄豪民 摘 要 随着科学技术的发展,万年历的设计也层出不穷。本设计以单片机AT89C51和DS1302为核心,结合译码器74HC154和驱动芯片74LS244,以及模拟键盘,LED显示电路等构成一个可控及显示精确的万年历时间系统。 DS1302为一个实时时钟芯片,具有较高时间精度,它与单片机进行串口通信,单片机通过与它的通信,取出其时间寄存器中的值,再通过相应的电路,把时间值通过LED显示,如果显示的值与标准时间不同,此系统就经过模拟键盘灵活控制,调节DS1302中时间寄存器中的值,达到与标准时间同步。 关键词 AT89C51,DS1302 38 ABSTRACT Along with science and technology's development, the designs of the perpetual calendar have many meanings. This design uses the microprocessor AT89C51 and the chip DS1302, with the decoder chip 74HC154, the drive chip 74LS244, the simulative keyboard, the LED display and so on to constitute the perpetual calendar system which can control and display precisely. DS1302 is a real-time clock chip and has the high time precision, it communicates with the microprocessor via the serial interface. The microprocessor takes out DS1302’s time register value by the communication, at last the LED displays the time value by the corresponding circuit. If the time value is different from the standard time, the simulation keyboard can adjust conveniently DS1302’s time register value, achieving with the standard time synchronously. Keywords AT89C51, DS1302 目 录 摘 要 I ABSTRACT II 1 绪论 1 2 功能要求 3 3 方案论证 3 3.1 显示器的选择 3 3.1.1 VFD显示器 3 3.1.2 LED显示器 3 3.1.3 LCD液晶显示器 4 3.2 编程语言的选择 4 3.2.1 单片机汇编语言 4 3.2.2 单片机C语言 4 3.3 微处理器的选择 5 4 硬件电路 6 4.1 DS1302时钟芯片 7 4.1.1 DS1302简介 7 4.1.2 DS1302的控制字节 8 4.1.3 数据的输出 9 4.1.5 DS1302的寄存器 9 4.1.6 DS1302的读写方式 11 4.1.7 DS1302时序图 12 4.1.8 DS1302电路 13 4.2 单片机AT89C51 14 4.2.1 单片机AT89C51简介 14 4.2.2 单片机引脚简介 15 4.2.3 低功耗模式 18 4.3 模拟键盘的设计 19 4.4 LED显示器的设计 19 4.5 74LS244芯片 21 5 软件设计 25 5.1 系统软件设计原理 25 5.2 键盘扫描子程序 25 5.3 显示子程序 26 5.4 DS1302控制子程序 26 5.5 主函数 27 6 软件平台 28 6.1 Proteus软件 28 6.2 KEIL软件 30 7 结论 33 参 考 文 献 34 附录A:部分单片机源程序 35 致 谢 38 1 绪论 在科技日新月异发展的今天,人们对时间概念的认识显得尤为深刻,“时间就是金钱”,“时间就是生命”等警句更是激励着人们努力工作,把握时间。 作为时间的标量,时钟等计时设备也随着人们的不断认识而变化。在三千年前,我国祖先就发明了用土和石片刻制成的“土圭”与“日规”两种计时器,成为世界上最早发明计时器的国家之一。到了铜器时代,计时器又有了新的发展,用青铜制的“漏壶”取代了“土圭”与“日规”。东汉元初四年张衡发明了世界第一架“水运浑象”,此后唐高僧一行等人又在此基础上借鉴改进发明了“水运浑天仪”、“水运仪象台”。至元明之时,计时器摆脱了天文仪器的结构形式,得到了突破性的新发展。元初郭守敬、明初詹希元创制了“大明灯漏”与“五轮沙漏”,采用机机械结构,并增添盘、针来指示时间,这使其计时更准确,机械性也更先进。 而在国外,阿拉伯工匠最早利用等速运动原理设计出摆钟表。埃及人制造了漏壶钟,它是由两个互相叠置的圆筒组成。水从上面的圆筒穿过一个小孔滴入下面的圆筒。水滴完了,就是某个时辰过去了。大一点儿的漏壶灌一次水可报六个小时,然后再重新装满水。他们还甚至做了装有指针和鸣击装置的钟表,每隔一小时,一定数量的圆球便滚落到金属盖上,发出大声的鸣响。而钟表发展史日晷是最早报“标准时”的仪器,它由晷盘和晷针组成。晷盘是一个有刻度的盘,其中央装有一根与盘面垂直的晷针,针影随太阳运转而移动在盘上的位置。一二七零年前后在意大利北部和南德一带出现的早期机械式时钟,以秤锤作动力,每一小时鸣响附带的钟,自动报时。一三三六年,第一座公共时钟被安装于米兰一教堂内,在接下来的半个世纪里,时钟传至欧洲各国,法国、德国、意大利的教堂纷纷建起钟塔。 到了现代,计时设备的新技术更是层出不穷,一九六九年,日本精工手表公司开发出世界上第一块石英电子手表,日误差缩小到零点二秒以内。与传统的机械式手表相比,它走时更为准确,功能更多,制作的成本也更低。一九七二年,美国的汉密尔顿公司发明了数字显示手表,马达和齿轮从手表中消失了。为了适应现代社会的需要,瑞士等国更是推出自己特色的钟表新产品,如瑞士菲利浦公司生产的光电钟,可将光源转换成电能作能源的电子表。日本研制成具有录音、放音等功能的数字手表,还有翻译手表、电视手表等。英国的无声闹声,到了预定钟点,产生振动叫醒人,可供耳聋者使用。还有声控照明钟、气温钟、火警闹 钟等。 时钟芯片作为一个独特的时钟设备,它结合时钟原理,把晶振,寄存器等组合在一起做成独立的一块芯片,灵活地满足各种用户需要。 2 功能要求 本设计要求以单片机和DS1302为核心,结合显示电路,模拟键盘等辅佐模块,构成一个可控又计时准确的万年历时钟系统。 3 方案论证 本设计从3个方面来分析论证:显示器的选择,编程语言的选择和微处理器的选择。 3.1 显示器的选择 一般嵌入式系统可供选择的显示器有以下几种,其具体介绍为: 3.1.1 VFD显示器 VFD显示器是由电子管发展过来的一种显示器件。它是真空二极管或三极 管的一种改型。二极管的改型称为静态VFD,三极管的改型称为动态VFD。静态VFD含有两个基本电极:阴极(灯丝)和阳极。动态VFD比静态VFD多一极:栅极。所有电极在高真空条件下封装于玻璃壳内。由阴极发射的电子在正向电位的作用下加速到栅极和阳极(静态VFD直接到达阳极),并碰撞激活在阳极的荧光粉图案使其发光。所需的亮度图形显示可以由控制栅极和阳极(静态VFD仅控制阳极)正电位或负电位来实现。 VFD显示器具有高清晰度、高亮度、宽视角、反应速度快和从红色到蓝色多种色彩等特点,显示效果好。当使用CIG(集成芯片玻璃)技术时,可集成VFD驱动电路;具有可靠且寿命长等特点。但它需要5.5~6.3V的灯丝电压,150~450mA的灯丝电流,12~36V 的阳极加速电压,15~36V的栅极电压。不考虑阳极和栅极电流,单灯丝功耗就达825mW,功耗相对来说较大,不适合在移动设备上使用。另外,它需要多组电压不同的供电电压,使用不方便。 3.1.2 LED显示器 LED显示器是由发光二极管发展过来的一种显示器件。它是LED发光二极管的改型。一般分为LED数码管显示器和LED点阵显示器。LED点阵显示器能显示各种信息,但它的体积较大,适合于广告牌等需要大面积显示的场所。LED数码管显示器具有高亮度、宽视角、反应速度快,可靠性高、使用寿命长等特点。它比较适合显示数字的时钟系统,同时,在微处理器和LED发光二极管显示器之 间一般还需要驱动芯片。 3.1.3 LCD液晶显示器 LCD液晶显示器是利用光的偏振现象来显示的。一般分为数字型LCD和点阵型LCD。前者用于显示简单的字符,如时钟等;后者能显示复杂的图形和自定义字符,因此应用非常广泛。LCD液晶显示器具有本身不发光,靠反射或者透射其它光源发光的优点,同时具有功耗小、可靠性高、寿命长、体积小、电源简单等特点,非常适合于嵌入式系统、移动设备和掌上设备的使用。 结合实际,本时钟系统的显示模块要求简单,以及基于自己掌握的知识,本设计采用LED显示器。 3.2 编程语言的选择 3.2.1 单片机汇编语言 处理器CPU可以识别的是一组由0和1序列构成的指令码,这种指令码 构成的指令系统称为机器语言,但由于它们不直观,难记、难认、难理解、难易查错等特点,人们在20世纪50年代中期开始用一些“助记符号”来代表机器语言中由0和1组成的指令系统。这些“助记符号”构成的指令系统和现在增加的伪指令集称为汇编语言。它具有以下几个方面的特性:与机器的相关性、执行的高效性、编写程序的复杂性、调试的复杂性等。 单片机汇编语言在这个设计系统中也就是MCS-51指令集。它是由111条指令组成,按照它们的操作性质可划分为数据传送、算术运算、逻辑操作、程序转移、位操作等5大类。 MCS-51的指令长度较短:单字节指令有49条;双字节指令有46条;最长的是三字节指令,只有16条。指令周期较短:单机器周期指令64条,双机器周期指令45条,只有乘除需要4个机器周期。 MCS-51的指令具有简明、整齐和易于掌握的特点。 3.2.2 单片机C语言 单片机C语言源自于单片机汇编语言,它是一种面向过程的语言,具有结构化的特点,可以产生紧凑的代码。它于单片机汇编语言相比,具有如下的优点: ①对单片机的指令系统不要求很了解,仅要求对8051的存储器结构有所了解 ②寄存器的分配,不同存储器的寻址及数据类型等细节可有编译器管理 ③程序有规范的结构,可分为不同的函数,这种方式可使程序结构化 ④关键字及运算符号可近似人的思维过程式使用 ⑤编程及程序调试时间显著缩短,从而提高效率 ⑥提供的库包含许多标准子程序,具有较强的数据处理能力 ⑦编好的程序容易植入新程序 单片机C语言具有单片机汇编语言力所不及的优点,而且已发展成为嵌入式系统的一个发展方向,因此我选择单片机C语言作为本设计的编程语言。 3.3 微处理器的选择 基于本时钟系统的设计要求,由于只是处理显示,键盘检测,与DS1302联系等基本功能,不选择ARM,X89等32位CPU和AVR等16位CPU,而选择ATMEL公司的AT89C51作为本设计的CPU。 4 硬件电路 图4.1为本课题——基于时钟日历芯片DS1302的万年历设计的系统设计原理框图。 图4.1 基于时钟日历芯片DS1302的万年历的系统的原理框图 系统的硬件电路主要由DS1302、AT89C51单片机、模拟键盘、74LS244驱动芯片、74HC154(4-16译码器)、16个数码管等组成。AT89C51单片机把DS1302中寄存器的时间值取出来,通过译码电路,驱动电路,在数码管上显示出时间,模拟键盘通过数码管显示的值做相应的控制,以达到准确显示时间的目的。 图4.2为本课题——基于时钟日历芯片DS1302的万年历设计的系统设计的电路原理图(在PROTEUS软件中仿真)。 图4.2 基于时钟日历芯片DS1302的万年历的系统的电路原理图 4.1 DS1302时钟芯片 4.1.1 DS1302简介 DS1302是美国DALLAS公司推出的一种串行接口实时时钟芯片。芯片内部具有可编程日历时钟和31个字节的静态RAM,日历芯片可自动进行闰年补偿,并可以对年、月、日、周日、时、分、秒进行计时,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,提供了对备份电源进行绢流充电的能力。它的主要特点为采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能,通常采用普通32.768kHz晶振。 DS1302采用八脚的DIP封装,其引脚排列如图4.3所示: Vcc1,Vcc2: 电源输入,其中Vcc1为后备电源, Vcc2为主电源。 GND: 接地端 RST 复位端 X1,X2: 外接32.768KHz石英晶振输入 I/0: 数据输入/输出端 SCLK 串行时钟输入 图4.3 DS1302引脚图 在DS1302的引脚排列, Vcc1和Vcc2为电源引脚,其中,单电源供电时接Vcc1引脚,双电源供电时,主电源接接Vcc2,从电源接Vcc1,如果采用可充电的镉镍电池,可启用内部涓流充电器在主电压正常时间向电池充电,以延长电池的使用时间。备份电池也可用1微法以上的超容量电池代替,但得注意备份电池的电压应略低于主电源的工作电压。X1和X2是振荡源,外接32.768kHz的石英晶振。RST是通信允许信号,当RST=0时,允许通信,当RST=0时,禁止通信。I/O引脚为双向串行数据传送信号,SCK引脚为串行数据的位同步信号。 DS1302的内部结构如图4.4所示。 图4.4 DS1302内部结构图 DS1302的典型应用如图4.5所示。 4.1.2 DS1302的控制字节 DS1302 的控制字如图4.6所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中。位6(RAM/CK)位为DS1302片内RAM/时钟选择位,如果为0,则表示存取日历时钟数据,为1表示存取RAM数据。位5至位1(A4至A0)用来选择日历时钟寄存器或RAM的地址选择位。最低有效位位0(RD/WR)为读写控制位,如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 图4.5 DS1302的典型应用 图4.6 DS1302的控制字节 4.1.3 数据的输出 I/O引脚在写入控制指令字后的下一个SCLK时钟的下降沿时,传送一个字 节的数据,数据输入从低位即位0开始。注意在数据传送时,RST引脚需保持高电位。如4.7所示 4.1.4 数据的输入 I/O引脚在写入控制指令字后的下一个SCLK时钟的上升沿时,数据被写入到内部寄存器,DS1302,数据输入从低位开始,一直到高八位。注意在数据传输时,RST引脚需保持为高电位,如图4.8所示。 图4.7 数据的输出 图4.8 数据的输入 4.1.5 DS1302的寄存器 DS1302有12个寄存器,其中前7个寄存器分别存放着秒,分,时,日,月,星期和年等信息,存放的数据位为BCD码形式。此外,DS1302 还有控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。寄存器及其控制字如表4.1所示。 秒寄存器的最高位为时钟暂停控制位,当CH=0时,时钟振荡器暂停,DS1302进入低功耗状态,当CH=1时启动时钟。 写保护寄存器的最高位WP=1时,才能对日历时钟或RAM的内容进行写操作,WP=0,禁止写操作。 表4.1 DS1302的寄存器 时钟多字节寄存器为多字节突发方式控制寄存器,通过对该寄存器的寻址,可以将对日历时钟或RAM的读写操作规范为多字节方式。在此方式下写时钟寄存器时,必须按数据传送的次序写入最先的8个寄存器;而以多字节方式写RAM时,为了传送数据不必写入所有的31个RAM字节。时钟多字节寄存器读写控制字如图4.9所示。 图4.9 时钟多字节读写方式 绢细电流充电控制寄存器如下图4.10所示。 图4.10 绢细电流充电控制寄存器 TCS:绢细充电选择 TCS=1010 使能绢流充电 TCS=其它 禁止绢流充电 DS:二极管选择位 DS=01 选择一个二极管 DS=10 选择二个二极管 DS=00或11 即使TCS=1010,充电功能也被禁止 RS的选择如表4.2所示. 表4.2 RS选择 31*8 RAM寄存区如下图4.11所示。 图4.11 RAM寄存区 4.1.6 DS1302的读写方式 DS1302与8051之间通过IO线传送同步串行数据,SCLK为串行通信时位同步时钟,一个SCLK脉冲传送一位数据。每个数据传送时都以字节为单位,低位在前,高位在后,传送一个字节需要8个SCLK脉冲。数据传送可以分为单字节传送方式和多字节突发方式传送。 单字节传送方式如图4.12所示,在RST=1 期间,8051单片机先向DS1302发送一个字节的命令字,紧接着发送一个字节的数据,DS1302在接受到命令字节后自动将数据写入到指定的片内地址或从该地址读取数据。 数据多字节突发方式的传送时序如图4.13示,RST=1期间,若8051单片机向DS1302发送的命令字节中A4 — A1全为1,则DS1302在接受到这个字节命令后可以一次进行8个字节日历时钟数据或是31个片内RAM单元数据的读写工作。 图4.12 DS1302单字节传送方式 图4.13 DS1302多字节突发方式 从以上时序可知,单字节方式传送一次数据需要16个SCLK脉冲多字节方式传送一次数据在对日历时钟进行读写时需要72个SCLK脉冲,而在对片内RAM单元读写时最最多需要256个SCLK脉冲。 4.1.7 DS1302时序图 DS1302读时序图如图4.14所示 图4.14 DS1302读时序图 DS1302写时序图如图4.15所示。 DS1302时序图中一些重要参数如表4.3所示。       图4.15 DS1302写时序图 表4.3 时序图中重要参数 参数名称 使用条件 最小值 最大值 Tcc Vcc=2.0V 4us Vcc=5.0V 1us Tch Vcc=2.0V 1000ns Vcc=5.0V 250ns Tcl Vcc=2.0V 1000ns Vcc=5.0V 250ns Tcch Vcc=2.0V 240ns Vcc=5.0V 60ns 4.1.8 DS1302电路 DS1302单元电路(在PROTEUS软件中仿真)如4.16所示。 图4.16 DS1302电路原理图 4.2 单片机AT89C51 4.2.1 单片机AT89C51简介 AT89C51引脚图 如图4.17所示。 图4.17 AT89C51引脚 AT89C51内部结构如图4.18所示。 图4.18 AT89C51内部结构 AT89C51是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含4K bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,可以灵活地应用到各种控制领域。 AT89C51的主要特性: 1) 与MCS-51 产品指令系统完全兼容 2) 4K字节可重复擦写Flash闪速存储器 3) 1000次擦写周期 5) 全静态工作:0Hz-24Hz 6) 三级加密程序存储器 7) 128×8位内部RAM 8) 32个可编程I/O线 9) 2个16位定时器/计数器 10)6个中断源 11)可编程串行UART通道 12)低功耗的闲置和掉电模式 AT89S51具有PDIP,TQFP和PLCC三种封装形式。本设计采用的是PDIP封装形式。 4.2.2 单片机引脚简介 P0口——8位,开漏极,双向I/O口。 P0口可作为通用I/O口,但须外接上拉电阻,作为输出口,每个引脚能以吸收8个TTL的灌电流。作为输入时,首先应将引脚置1。P0口也可用做访问外部程序存储器和数据存储器时的低8位地址/数据总线的复用线,在该模式下,P0口含有内部上拉电阻。在Flash编程时,P0口接收代码字节数据;在编程校验时,P0口输出代码字节数据(需要外接上拉电阻)。 P1口——8位、准双向I/O口,具有内部上拉电阻。 P1口是为用户准备的 1/O双向口。在编程和校验时,可用做输入低8位地址。用做输入时,应先将输出锁存器置1. P1口可驱动4个TTL负载。 P2口——具有内部上拉电阻的8位双向I/O口。 P2口用作输出口时,可驱动4个TTL负载;用作输入口时,先将引脚置1,由内部上拉电阻将其提高到高电平。若负载为低电平,则通过内部上拉电阻向外输出电流。CPU访问外部16位地址的存储器时,P2口提供8位地址,当CPU用8位地址寻址外部存储器时,P2口为P2特殊功能寄存器的内容。在Flash并行编程和校验时,P2口可输入高字节地址和某些控制信号。 P3口——具有内部上拉电阻的8位双向口。 P3口用做输出口时,输出缓冲寄存器可吸收4个TTL的灌电流;用作输入口时,首先将引脚置1,由内部上拉电阻抬为高电平。若外部的负载是低电平,则通过内部上拉电阻向外输出电流。在与Flash并行编程和校验时,P3口可输入某些控制信号。P3口除了通用I/O功能外,还有替代功能。表5.2所列。 P3口——具有内部上拉电阻的8位双向口。 P3口用做输出口时,输出缓冲寄存器可吸收4个TTL的灌电流;用作输入口时,首先将引脚置1,由内部上拉电阻抬为高电平。若外部的负载是低电平,则通过内部上拉电阻向外输出电流。在与Flash并行编程和校验时,P3口可输入某些控制信号。P3口除了通用I/O功能外,还有替代功能。表5.2所列。 表5.2 P3 口的替代功能 引脚 符号 说明 P3.0 RXD 串行口输入 P3.1 TXD 串行口输出 P3.2 INT0(————) 外部中断0 P3.3 INT1(————) 外部中断1 P3.4 T0 T0定时器的外部计数输入 P3.5 T1 T1定时器的外部计数输入 P3.6 WR(———) 外部数据存储器的写选通 P3.7 RD(———) 外部数据存储器的读选通 2.控制信号线 RST——复位输入信号,高电平有效。在振荡器稳定工作时,在RST脚施加两个机器周期(即24个晶振周期)以上的高电平,将器件复位。 EA(——)/VPP——外部程序存惜器访问允许信号EA(External Access Enable)。 当EA(——)信号接地时,对ROM的读操作限定在外部程序存储器,地址为0000H~FFFFH;当EA(——)接地时,对ROM的读操作从内部程序存储器开始,并可延续至外部程序存储器。 在编程时,该引脚可接编程电压(AT89C51的VPP为5V或12V;AT89LV51的VPP为12 V)。在编程校验时,该引脚可接VCC。 PSEN(————)——片外程序存储器读选通信号用PSEN(Program Store Enable),低电平有效。 在片外程序存储器取指期间,当PSEN(————)有效时,程序存储器的内容被送至 PO口(数据总线);在访问外部RAM时,PSEN(————)无效。 AIE/PROG(————)——低字节地址锁存信号 AlE(Address latch Enable)。 在系统扩展时,AlE的下降沿将PO口输出的低8位地址锁存在外接的地址锁存器中,以实现低字节地址和数据的分时传送。此外,ALE端连续输出正脉冲.频率为晶振频率的1/6,可用做外部定时脉冲使用。但要注意,每次访问外RAM时要丢失一个ALE脉冲。在编程期间,该引脚输入编程脉冲(PROG(————))。 3.电原线 VCC——电源电压输入。 GND——接地。 4.外部晶振引线 XTAL1——片内振荡器反相放大器和时钟发生线路的输入端。使用片内振荡器时,连接外部石英晶体和微调电容。 XTAL2——片内振荡器反相放大器的输出端。当使用片内振荡器时,外接石英晶体 和微调电容。 当使用外部振荡器时,引脚XTAL1接收外振荡器信号,XTAIL2悬空。 时钟振荡器: AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。其震荡电路如图4.19所示。 外接石英晶体(或陶瓷谐振器)及电容C1,C2接在放大器的反馈电路中构成并联谐振电路,其震荡电路如图4.20所示。 图4.19 内部震荡电路 图4.20 外部震荡电路 4.2.3 低功耗模式 AT89S51 有两种节电运行模式:空闲模式和掉电模式。 空闲模式 在空闲模式下,CPU处于睡眠状态,振荡器和所有片内外围电路仍然有效。空闲模式可由软件设置进入(设IDL=1)。在这种模式下,片内RAM和SFR中的内容保持不变。 空闲模式可通过任何一个允许中断或硬件复位退出。 若用硬件复位方式结束空闲模式。则在片内复位控制逻辑发生作用前长达约两个机器周期时间内,机器从断点处开始执行程序。片内硬件禁止访问内部RAM,但不禁止访问端口。为避免采用复位方式退出空闲模式时对端口的不应有的访问,在紧随设置进入空闲指令(即设IDL=1)的后面,不能是写端口或外部RAM的指令。 掉电模式 引起掉电模式的指令是执行程序中的最后一条指令(使PD=1的指令)。在掉电模式下,振荡器停止工作,CPU和片内所有外围部件均停止工作,但片内RAM和SFR中的内容保留不变,直到掉电模式结束。 退出掉电模式可用硬件复位或任何一个有效的外部中断INT0(—————)和 INT1(—————)。复位可 重新设置SFR中的内容,但不改变片内RAM中的内容。在VCC电源恢复到正常值并维持足够长的时间之后,允许振荡器恢复并达到稳定,方可进行复位,以退出掉电模式。 如表5.3所示为空闲和掉电模式下的引脚状态。 表5.3 空闲和掉电模式下的引脚状态 模式 程序存储器 ALE PSEN(——————) P0 P1 P2 P3 空闲 内部 1 1 Data Data Data Data 空闲 外部 1 1 高阻 Data 地址 Data 掉电 内部 0 0 Data Data Data Data 掉电 外部 0 0 高阻 Data Data Data AT89C51单片机的复位、晶振振荡电路如图4.21所示(PROTEUS软件仿真). 图4.21 AT89C51单片机的复位、晶振振荡电路 复位电路。单片机上电,当振荡器正在运行时,只要持续给RST引脚两个机器周期的高电平便可完成系统的复位。 4.3 模拟键盘的设计 模拟键盘电路如图4.21所示(PROTEUS软件仿真)。 本键盘为行列式键盘,采用2X7格式。它公占用9个I/O口,它们一起组合形成14个按键,分别控制DS1302中时间寄存器的秒,分,小时,年,月,日,星期的值的增减,以达到控制的目的。 图4.21 模拟键盘电路 4.4 LED显示器的设计 LED显示器的结构 常用的7段LED显示器由7个发光二极管按“日”字形排列,所有发光二极管的阳极连接在一起称为“共阳LED”,所有阴极连接在一起称为“共阴LED”。当选用共阴极LED显示时,如果共阴极端接地,则某个发光二极管的阳极加上高电平时,对应的发光二极管点亮。因此,要显示某字形就应该使此字形的相应段的二极管点亮,实际上就是送一个用不同电平组合代表的数据字来控制LED的显示,此数据称为字符的“段码”。字符数据字与LED段码的关系为: D7 D6 D5 D4 D3 D2 D1 D0 DP g f e d c b a 数 据 字 LED段码 DP为小数点段。共阴极LED的段码求反即得共阳极LED的段码。其数码管的编码如如表5.4所示。 LED显示器的控制原理 LED显示器的控制方式有静态显示和动态显示两种。 1)静态显示 所谓静态显示,就是当显示器显示某一个字符时,相应的发光二极管恒定导通或截至。这种显示方式的每一位都需要有1个8位输出口控制。静态显示时,用较小的电流就能得到较高的亮度。当显示器位数较少时,采用静态显示的方法是合适的。当位数较多时,所需的I/O线较多,例如本设计,一般就采用动态显示方法。 2)动态显示 动态显示就是逐位扫描轮流显示。在这种显示控制方法中,显示器分时工作,每次只能有一个器件显示,由于人的视觉暂留,所以从宏观上看起来仍然是所有器件都在显示。 LED显示器电路如图4.22所示。 P0.0~P0.3与74LS244的A0~A3四个引脚分别相连,利用74HC154驱动能力驱动P0.0~P0.3这四个引脚,然后74HC154的输出端分别与74HC154的四个数据输入引脚相连,通过74HC154的译码,从而分别选择16个输出端,由于74HC154的输出选择信号为低电平,而我选择的LED为共阳极,所以我在它们的输出端加以反向器,使其输出为高电平,以显示所选LED的目的。 表5.4 数码管的编码表 显 示 数 码 段 码 显 示 数 码 段 码 0 0C0H 8 80H 1 0F9H 9 90H 2 0A4H A 88H 3 0B0H B 83H 4 99H C 0C6H 5 92H D 0A1H 6 82H E 86H 7 0F8H F 8EH 图4.22 LED显示器电路 4.5 74LS244芯片 74LS244是一个单向总线驱动器,它有8个三态驱动器,分为两组,由控制 端1G和2G控制,其引脚图如图4.23所示。 引脚说明: 1A1,1A2,1A3,1A4:第一组输入总线 2A1,2A2,2A3,2A4:第二组输入总线 1Y1,1Y2,1Y3,1Y4:第一组输出总线 2Y1,2Y2,2Y3,2Y4:第二组输出总线 1G,2G:第一,二组总线控制端 GND:接地 Vcc:电压端 图4.23 74LS244引脚图 74LS244内部结构图如图4.24所示。 4.24 74LS244内部结构图 真值表如表5.5所示。 表5.5 74LS244真值表 注: Z---高阻态 X---低电平或高电平 4.6 74HC154芯片 74HC154是PHILIPS生产的一款4—16译码器74HC154是高速硅门的CMOS芯片。其主要的特点有: 1)16线的分离能力 2)输入4位二进制编码,16位输出中只有一位输出 3)2个使能输入控制门为控制或扩展 4)芯片种类:中规模集成电路 74HC154引脚图如图4.25所示。 引脚介绍: Y0—Y15:输出,低电平有效 E0,E1:输入,使能控制,低电平有效 GND:接地端 A0—A3:地址输入 Vcc:电压输入 图4.25 74HC154引脚图 74HC154逻辑符号如图4.26所示。 图4.26 74HC154逻辑图 74HC154真值表如表5.6所示。 74HC154逻辑图如图4.27所示。 表5.6 74HC154真值表 注: H----高电平 L----低电平 X----高电平或低电平 图4.27 74HC154逻辑图 5 软件设计 系统软件采用C语言编写,其编译器为Keil uVisions软件。 5.1 系统软件设计原理 系统软件运行的总体流程包括:DS1302初始化,LED显示,模拟键盘控制。其系统主程序流程图如图5.1所示。 5.2 键盘扫描子程序 判断是否有键被按下的方法基本上有两种:第一,逐键扫描,就是判断依次判断每个键是否被按下,如果有键被按下,则转如相应的按键出来子程序,如延时,按键作用子程序,等此键的相应程序处理完后,再检查是否有其它按键是否被按下,则按键处理流程如图5.2所示。 图5.1 系统流程图 图5.2 逐键扫描 第二是逐行扫描:先把所有的行电平置成低电平,把所有的列电平置成高电平,然后扫描各列,如果所有的列都为高电平,则没有键按下;如果某列为低电平,则此列的某行有按键按下;要判断此列的那个键按下,则要采用“逐行扫描”,也就是先把第一行置成低电平,其余行为高电平,列电平保持不变,如果检查到某列为低电平,则此列的第一行按键就是被按下的键,如果没检查到低电平,则把第二行置成低电平,其余行为高电平,再检查列电平,从而判断是否有键按下,依次置行电平,直到检查到那个键被按下为准。最后再处理被按下的键的子程序,则此种方案的流程图5.3所示。
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:基于时钟日历芯片DS1302的万年历设计.doc
    链接地址:https://www.zixin.com.cn/doc/4880972.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork