为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

单片机时钟设计

2017-10-13 32页 doc 379KB 31阅读

用户头像

is_614050

暂无简介

举报
单片机时钟设计单片机时钟设计 大理学院 单片机课程设计报告 8279的应用 设计名称: 单片机电子时钟设计 姓 名: 郑达美 学 号: 2007117106 专 业: 电子信息科学与技术 指导老师: 赵继强 老师 2010年6月2日 单片机电子时钟设计 一、设计任务及要求: 设计任务: 利用单片机的编程语言、8031单片机芯片及可编程键盘显示器接口扩展芯片8729~设计出电子时钟~且完成设计说明书。 程序要求: 1、可以显示时、分、秒。 2、要求操作简便~可以自行设定时间。 3、对于不合法的输入时间可以进行清零。 ...
单片机时钟设计
单片机时钟设计 大理学院 单片机课程设计报告 8279的应用 设计名称: 单片机电子时钟设计 姓 名: 郑达美 学 号: 2007117106 专 业: 电子信息科学与技术 指导老师: 赵继强 老师 2010年6月2日 单片机电子时钟设计 一、设计任务及要求: 设计任务: 利用单片机的编程语言、8031单片机芯片及可编程键盘显示器接口扩展芯片8729~设计出电子时钟~且完成设计说明书。 程序要求: 1、可以显示时、分、秒。 2、要求操作简便~可以自行设定时间。 3、对于不合法的输入时间可以进行清零。 指导老师签名: 年 月 日 二、指导老师评语: 指导老师签名: 年 月 日 三、成绩 总分: - 2 - 单片机原理课程设计说明书 单片机电子时钟设计 目 录 一、概述及功能 〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃4 1.1 概述 〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃4 1.2 实现功能〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃4 二、硬件资源 〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃5 2.1 单片机8031〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃5 2.2 可编程键盘显示器接口扩展〃〃〃〃〃〃〃〃〃〃〃〃〃9 2.3 数码显示管〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃17 2.4 硬件连接图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃18 三、设计过程〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃19 3.1 程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃19 四、程序清单〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃24 五、设计体会〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃27 六、硬件连接图,见附图, - 3 - 单片机原理课程设计说明书 单片机电子时钟设计 单片机电子时钟设计 一、概述及功能 1.1 概述 单片机 即单片微型计算机。,Single-Chip Microcomputer ,,是 集 CPU ,RAM ,ROM ,定时~计数和多种接口于一体的微控制器。他体积小~成本低~功能强~广泛应用于工业自动化上和智能产品。时钟~自从它被发明的那天起~就成为了人类的好朋友~但随着时间的推移~科学技术的不断发展~时钟的应用越来越广范~人们对时间计量的精度要求也越来越高。怎样让时钟更好的为人民服务~怎样让我们的老朋友再次焕发青春呢,这就要求我们不断设计出新型的时钟~来不断满足人们的日常生活需要。然而市场上的时钟便宜的比较笨重~简单实用的又比较昂贵。那么~有没有一款既简单实用价格又便宜的时钟呢? 我们课程设计设想:可不可以利用单片机功能集成化高~价格又便宜的特点设计一款结构既简单~价格又便宜的单片机电子时钟呢,基于这种情况,我们课程设计论证设计出了这款既简单实用~又价格便宜的——单片机电子时钟。 1.2 设计目的及实现功能 通过这次的课程设计~提高自己对单片机的认识水平~掌握8031以及8279的工作原理和硬件原理。设计一个满足下列条件的电子时钟: ,1,能够显示时分秒 ,2,能够设置时分秒 ,3,对于输入不合法的时间设置进行清零 - 4 - 单片机原理课程设计说明书 单片机电子时钟设计 二、硬件资源 2.1 单片机8031 2.1.1 8031的引脚功能 8031单片机是Intel公司生产的 MCS-51系列单片机中的一种~除无片 内ROM外~其余特性与MCS-51单片机 基本一样。 HMOS制造工艺的8031采用40引脚 的直插封装~其引脚如右图所示~功能 如下: 1、主电源引脚VCC和VSS VCC——,40脚,接+5V电压, VSS——,20脚,接地。 2、外接晶体引脚XTAL1和XTAL2 XTAL1,19脚,接外部晶体的一个引脚。在单片机内部~它是一个反相放大器的输入端~这个放大器构成了片内振荡器。当采用外部振荡器时~此引脚应接地。 XTAL2,18脚,接外晶体的另一端。在单片机内部~接至上述振荡器的反相放大器的输出端。采用外部振荡器时~该引脚接外部振荡器的信号~即把外部振荡器的信号直接接到内部时钟发生器的输入端。 3、控制或与其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VPP ?RST/VPD,9脚,当振荡器运行时~在此脚上出现两个机器周期的高电平将使单片机复位。推荐在此引脚与VSS引脚之间连接一个约8.2k的下拉电阻~与VCC引脚之间连接一个约10μF的电容~以 - 5 - 单片机原理课程设计说明书 单片机电子时钟设计 保证可靠地复位。VCC掉电期间~此引脚可接上备用电源~以保证内部RAM的数据不丢失。当VCC主电源下掉到低于规定的电平~而VPD在其规定的电压范围,5?0.5V,内~VPD就向内部RAM提供备用电源。 ?ALE/PROG,30脚,:当访问外部存贮器时~ALE,允许地址锁存,的输出用于锁存地址的低位字节。即使不访问外部存储器~ALE端仍以不变的频率周期性地出现正脉冲信号~此频率为振荡器频率的1/6。因此~它可用作对外输出的时钟~或用于定时目的。然而要注意的是~每当访问外部数据存储器时~将跳过一个ALE脉冲。ALE端可以驱动,吸收或输出电流,8个LS型的TTL输入电路。 对于EPROM单片机,如8751,~在EPROM编程期间~此引脚用于输入编程脉冲,PROG,。 ?PSEN,29脚,:此脚的输出是外部程序存储器的读选通信号。在从外部程序存储器取指令,或常数,期间~每个机器周期两次PSEN有效。但在此期间~每当访问外部数据存储器时~这两次有效的PSEN信号将不出现。PSEN同样可以驱动,吸收或输出,8个LS型的TTL输入。 ?EA/VPP,引脚,:当EA端保持高电平时~访问内部程序存储器~但在PC,程序计数器,值超过0FFFH,对851/8751/80C51,或1FFFH,对8052,时~将自动转向执行外部程序存储器内的程序。当EA保持低电平时~则只访问外部程序存储器~不管是否有内部程序存储器。对于常用的8031来说~无内部程序存储器~所以EA脚必须常接地~这样才能只选择外部程序存储器。 4、输入/输出,I/O,引脚P0、P1、P2、P3,共32根, - 6 - 单片机原理课程设计说明书 单片机电子时钟设计 ?P0口,39脚至32脚,:是双向8位三态I/O口~在外接存储器时~与地址总线的低8位及数据总线复用~能以吸收电流的方式驱动8个LS型的TTL负载。 ?P1口,1脚至8脚,:是准双向8位I/O口。由于这种接口输出没有高阻状态~输入也不能锁存~故不是真正的双向I/O口。P1口能驱动,吸收或输出电流,4个LS型的TTL负载。对8052、8032~P1.0引脚的第二功能为T2定时/计数器的外部输入~P1.1引脚的第二功能为T2EX捕捉、重装触发~即T2的外部控制端。对EPROM编程和程序验证时~它接收低8位地址。 ?P2口,21脚至28脚,:是准双向8位I/O口。在访问外部存储器时~它可以作为扩展电路高8位地址总线送出高8位地址。在对EPROM编程和程序验证期间~它接收高8位地址。P2可以驱动,吸收或输出电流,4个LS型的TTL负载。 ?P3口,10脚至17脚,:是准双向8位I/O口~在MCS-51中~这8个引脚还用于专门功能~是复用双功能口。P3能驱动,吸收或输出电流,4个LS型的TTL负载。 作为第一功能使用时~就作为普通I/O口用~功能和操作方法与P1口相同。 作为第二功能使用时~各引脚的定义如表所示。值得强调的是~P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。 表 P3各口线的第二功能定义 口线 引脚 第二功能 P3.0 10 RXD,串行输入口, P3.1 11 TXD,串行输出口, P3.2 12 INT0,外部中断0, - 7 - 单片机原理课程设计说明书 单片机电子时钟设计 P3.3 13 INT1,外部中断1, P3.4 14 T0,定时器0外部输入, P3.5 15 T1,定时器1外部输入, P3.6 16 WR,外部数据存储器写脉冲, P3.7 17 RD,外部数据存储器读脉冲, 综合上面的描述可知~I/O口线都不能当作用户I/O口线。除8051/8751外真正可完全为用户使用的I/O口线只有P1口~以及部分作为第一功能使用时的P3口。 31的内部结构 2.1.2 80 VCC RAMP3口驱动器P1口驱动器P2口驱动器P0口驱动器RAM地址寄存器128 字节AR SCONSBUFPCONIEIP堆栈指针P3口P1口P2口P0口TCONTMODTL0TL1TH0TH1SP锁存器锁存器锁存器锁存器 ACC指令寄存器IR缓冲器 ROMDPHDPLB指令译码器ID暂存器1暂存器2 4K字节 PC增量器 定时与控制PSWALU程序计数器PC 振荡器地址寄存器AR XTAL2 SSXTAL1EAALEPSENRSTV 8031的内部结构图 - 8 - 单片机原理课程设计说明书 单片机电子时钟设计 由图我们可以看到~单片机的引脚除了电源、复位、时钟接入~用户I/O口外~其余管脚是为实现系统扩展而设置的。这些引脚构成MCS-51单片机片外三总线结构~即: ?地址总线,AB,:地址总线宽为16位~因此~其外部存储器直接寻址为64K字节~16位地址总线由P0口经地址锁存器提供8位地址,A0至A7,,P2口直接提供8位地址,A8至A15,。 ?数据总线,DB,:数据总线宽度为8位~由P0提供。 ?控制总线,CB,:由P3口的第二功能状态和4根独立控制线RESET、EA、ALE、PSEN组成。 中央处理器是单片机内部的核心部件~它决定了单片机的主要功能特性。中央处理器主要由运算部件和控制部件组成。下面我们把中央处理器功能模块和有关的控制信号线联系起来加以讨论~并涉及相关的硬件设备,如振荡电路和时钟电路,。 1、运算部件 运算部件包括算术、逻辑部件ALU、布尔处理器、累加器ACC、寄存器B、暂存器TMP1和TMP2、程序状态字寄存器PSW以及十进制调整电路等。运算部件的功能是实现数据的算术逻辑运算、位变址处理和数据传送操作。MCS-51单片机的ALU功能十分强~它不仅可对8位变量进行逻辑“与”、“或”、“异或”、循环、求补、清零等基本操作~还可以进行加、减、乘、除等基本运算。它可对位,bit,变量进行布尔处理~如置位、清零、求补、测试转移及逻辑“与”、“或”等操作。在实现位操作时~借用了程序状态标志器,PSW,中的进位标志Cy作为位操作的“累加器”。 2、控制部件 控制部件是单片机的神经中枢~它包括时钟电路、复位电路、指令寄存器、译码以及信息传送控制部件。它以主振频率为基准发出 - 9 - 单片机原理课程设计说明书 单片机电子时钟设计 CPU的时序~对指令进行译码~然后发出各种控制信号~完成一系列定时控制的微操作~用来控制单片机各部分的运行。其中有一些控制信号线能简化应用系统外围控制逻辑~如控制地址锁存的地址锁存信号ALE~控制片外程序存储器运行的片内外存储器选择信号EA~以及片外取指信号PSEN。由于8031无片内程序存储器~所以它的EA必须接地。MCS-51单片机的程序状态PSW~是一个8位寄存器~它包含了程序的状态信息。 2.2可编程键盘显示器接口扩展 2.2.1 8279引脚及功能 8279是一种通用可编程键盘、显示器 接口~它能完成键盘输入和显示控制两种 功能。8279为40脚双列直插式封装~如 右图所示~功能如下所示: 1( D0-D7(数据总线):双向、三态总线~ 用于和系统数据总线相连~在CPU 和8279之间传送命令或数据。 2( CLK(系统时间):输入引脚~为8279 提供内部定时信号~以产生其工作 所需要的时序。 3( RESET(复位):输入引脚~高电平复 位~其复位状态为16个字符显示~编码扫描键盘为双键锁定~ 程序时钟前置分频被置为31。 4( CS(片选):输入引脚~当CS=0时~8279被选中。 5( A0(数据选择):输入引脚。当A0=0时~写入字节或读出字节均 为数据,当A0=1时~CPU写入的字节为命令字~读出来的是状 态字。 - 10 - 单片机原理课程设计说明书 单片机电子时钟设计 6( RD、WD,读写信号,:输入引脚~低电平有效~控制8279的读 写操作, 7( IRQ(中断请求):输出引脚~高电平有效。在键盘工作方式下~ 当FIFO/传感器RAM存有数据时~IRQ为高电平,向CPU请求中 断。CPU每次从RAM中读出一个字节数据时~IRQ变为低电平。 如果RAM中还有未读完的数据~则IRQ再次恢复为高电平~再 次提出中断请求。 8( SL0-SL3(扫描线):输出引脚~用来扫描键盘和显示器。 9( RL0-RL7(回复线):输入引脚~它们是键盘矩阵或传感器矩阵的 列,或行,信号输入线。 10( SHIFT,移位信号,:当有开关闭合时被拉为低电平~没有按下 SHIFT开关时~SHIFT输入端保持高电平~在键盘扫描方式中~ 按键一闭合~按键位置和换位输入状态一起被存贮起来。 11( CNTL/STB(控制/选通):当CNTL/STB开关闭合时将其拉到低电 平~否则始终保持高电平~ 对于键盘输入方式~此线用作控制 输入端~当键被按下时~按键位置就和控制输入状态一起被存 贮起来~在选通输入方式中~作选通用~把数据存入FIFO RAM 中。 12( OUTA3,OUTA0及OUTB3,OUTB0:显示输出A口及B口~这两个 口是16×4切换的数字显示。这两个端口可被独立控制~也可 看成一个8位端口。 13( BD(显示/消隐):此输出端信号用于在数字转换时将显示空格或 者用显示空格命令控制其显示空格字符。 14( VCC:,5V电源输入线。 VSS:地线输入线。 - 11 - 单片机原理课程设计说明书 单片机电子时钟设计 2.2.2 8279内部结构图 8279是一种通用可编程键盘、显示器接口~它能完成键盘输入和显示控制两种功能。键盘部分采用扫描工作方式~可与64个按键的矩阵键盘连接~能对键盘不断扫描、自动消抖、自动识别出按下的键并给出编码~能对多个键同时按下实行保护。 显示部分按扫描方式工作~它为显示器提供多路复用信号~最多能显示16位的字符或数字。其内部逻辑结构图如下所示: 下面介绍其主要组成电路: ,1, I/O控制线及数据缓冲器 I/O控制线是CPU对8279进行控制的引线。其中CS是8279的片选信号~当CS=0SHI ,8279被选中~可以允许读出或者写入信息,RD、WD为来自CPU的读、写控制信号。A0用于区别信息特性,当A0=1时~表示数据缓冲器输入为指令~输出为状态字,当A0=0时~输入和输出都是数据。 ,2, 控制与定时寄存器及定时控制 控制与定时寄存器用来寄存键盘及显示器的工作方式~以及由 - 12 - 单片机原理课程设计说明书 单片机电子时钟设计 CPU编程的其他操作方式。这些寄存器一旦接受并锁存送来的命令~就通过译码产生相应的控制信号~从而完成相应的控制功能。定时控制包含N个基本计数器~其中第一个计数器时一个可编程的N级计数器~N可以在2-31之间由软件编程来决定~以便对外部时钟分频得到内部所需的100KHZ时钟。然后在经过其他计数器分频~为键盘扫描提供适当的逐行扫描频率和显示器扫描时间。 ,3, 扫描计数器 扫描计数器有两种工作方式:按编码方式工作时~计数器作二进制计数~4位计数器状态从扫描线SL0-SL3输出~经外部译码器译码后为键盘和显示器提供扫描线,按译码方式工作是~扫描计数器的最低两位被译码后~从SL0-SL3输出~因此~SL0-SL3提供了又4种状态中选择1种的扫描译码。 ,4, 恢复缓冲器、键盘去抖控制 来自RL0-RL7的8根回复线的回复信号~有回复缓冲器缓冲并锁存。在键盘工作方式中~回复线作为行列式键盘的列输入线。在逐行扫描时~回复线用来搜寻每一行中闭合的键~当某一键闭合时~去抖电路被置位~延时等待10MS后~在检查该键是否仍然闭合。若闭合~则该键的行、列地址和附加的移位、控制状态一起形成键盘数据送入8279内部的先进先出,FIFO,存储器。键盘数据可是及定义如下: D7 D6 D5-D3 D2-D0 控制 移位 扫描 回复 控制和移位的状态由两个独立的附加开关控制~而扫描,D5、D4、D3,和回复,D2、D1、D0,则是被按键所置的数据。在传感器矩阵方式中~回复线的被直接送往相应的传感器RAM中。 ,5, FIFO/传感器RAM及其状态寄存器 FIFO/传感器RAM是一个双重功能的8*8位RAM。在键盘或选通 - 13 - 单片机原理课程设计说明书 单片机电子时钟设计 工作方式时~它是FIFO存储器~其输入或读出遵照先进先出的原则。此时~FIFO状态寄存器用来存放FIFO的工作状态~如FIFO RAM是满还是空~其中存有多少数据~时候操作出错等。当FIFO RAM中有数据时~状态逻辑将产生IRQ=1信号~向CPU提出中断请求。在传感器矩阵工作方式下~这个存储器用作传感器RAM~它存放着传感器矩阵中每一个传感器的状态。在此工作方式下~若检测出传感器的变化~则IRQ=1,向CPU提出中断请求。 ,6, 显示RAM和显示地址寄存器 显示RAM用来存放显示数据~容量为16*8位。在显示过程中~存储的显示数据轮流从显示寄存器输出。显示寄存器分为A、B两组~他们可以单独送数~也可以组成一个8位的字节。显示寄存器与显示扫描配合~不断从显示RAM中读出显示数据~同时轮流驱动被选中的显示位~以达到多路动态显示的目的。显示地址寄存器用来寄存由CPU进行读/写的显示RAM的地址~它可以由命令设定~也可以设置成每次读出或写入之后自动递增。 2.2.2 8279的控制命令字 8279的编程命令如下: a.键盘/显示器方式设置 最高位 最低位 命令代码 0 0 0 D D K K K 其中DD为显示方式,KKK为键盘方式 表 DD显示方式: DD 相应的作用 00 8个8位字符显示--左端传入 01 16个8位字符显示--左端送入 10 8个8位字符显示--右端送入 - 14 - 单片机原理课程设计说明书 单片机电子时钟设计 11 16个8位字符显示--右端送入 表 KKK键盘方式: K K K 相应的作用 0 0 0 编码扫描键盘--2键连锁 0 0 1 译码扫描键盘--2键连锁 0 1 0 编码扫描键盘--N键巡回 0 1 1 译码扫描键盘--N键巡回 1 0 0 编码扫描传感器阵列 1 0 1 译码扫描传感器阵列 1 1 0 选通输入,编码显示扫描 1 1 1 选通输入,译码显示扫描 其中2键连锁和N键巡回是8279对键盘中被按下键的两种处理方式,编码扫描和译码扫描是 SL0-SL3 对链盘和显示器的两种扫描形式。 b.程序时钟 命令代码 0 0 1 P P P P P 此命令确定定时和控制中的前置定标器的分频系数,代码PPPPP 31的数,前置定标器可对外部时钟分频,以得到内部基频,可形成2- 选基频为100KHZ,可得到前面规定的扫描和反跳时间,则分频系数为;外部时钟100KHZ复位脉冲过后若无代码送入则自动为31. c.读FIF0/传感器RAM 命令代码:0 1 0 AI X A A A X=任意 此命令用于确定CPU读操作的对象是8279中的FIF0/传感器 RAM,并确定8个 RAM 字节中哪一个被读,其中 AAA表示CPU要读的行,AI为自动加1特征位,在键盘扫描方式中这两者互不相干,对随后的每次读取8279都按照数据第一次进入的FIF0的同一顺序自动送出数据, - 15 - 单片机原理课程设计说明书 单片机电子时钟设计 所有随后发生的读,都是读自FIFO,直到写入新命令为止。在传感器阵列方式中,AAA选择传感器RAM 8行中的一行若AI=1,则下一次读取便读自传感器RAM中的下一行。 d.读显示器RAM 命令代码:0 1 1 AI A A A A CPU对8279写此命令,则确定了 CPU 以显示器 RAM为数据源进行读操作,其中AAAA为显示器RAM的地址,AI 为自动加1特征位,若AI=1,则每读一行RAM之后,行地址自动加1 e.写显示器RAM 命令代码: 1 0 0 AI A A A A CPU向8279写此命令,规定了下一步要对8279的显示RAM进行写,寻址方式和自动加1功能均与读显示器RAM相同 f.显示器写入禁止/空格 命令代码: 1 0 1 X IW IW BL BL X=任意 A B A B此命令用于屏蔽A或B端口输出及使显示器显示空格,如果显示器用作双排4位显示,则必须把其中一个4位屏蔽掉这样CPU送入显示器的信息就不会影响另一半,IW为屏蔽特征位,若对某一端 有必要注意的是:B0与D0对应,BL口设置IW=1,则该端口就被屏蔽, 为显示空格标志位,若某一端口的BL置1,则此端口显示空格.当要使一个单8位输出格式的显示器空格时,则必须使两个BL标志全都置位,以使显示完全空格。 g.消除 命令代码: 1 1 0 CD CD CD CF CA 此命令用于按一定格式清显示器RAM的FIF0状态,其中CD规定清除格式: CD CD CD 相应的作用 - 16 - 单片机原理课程设计说明书 单片机电子时钟设计 1 0 X 将显示RAM全部清零 1 1 0 将显示RAM清成20H,A组0010~B组0000 1 1 1 将显示RAM全部置1 0 0 0 不清除 当为"1"时允许清除显示器(或用CA=1)CF清除FIFO状态(包括中断),若CF=1,则清除FIF0状态,并对中断线复位自传感器RAM的指示器亦被置于0行CA为总清,其效果相当于CD和CF的合成,当CA=1时,利用CD指示的清除格式清除显示器RAM,并清除FIF0状态,C孔也使内部定时重新同步.在显示器RAM被清除期间(约16us)不能写入,同时在此期间FIFO的最高有效位被置"1"当显示RAM再度变为可用时即自动复位。 h.中断结束/出错方式设置 命令代码: 1 1 1 E X X X X X=任意 在传感器阵列方式时,此命令使IRQ线变低,并允许对RAM再写(检测到一个传感器位变化时,IRQ线可能已升高了,因此这样做可阻止在其复位以前把信息再度写入RAM).在N键巡回工作方式,若E位被编程为"1",则芯片电路将在特殊出错方式下运行。在N键巡回方式的特殊出错方式下主要用于检查键的多重按下,若在一个回弹周期中发现两个键被按下,即可看成同时多重按下,并建 立出错标志,阻止任何对FIF0的进一步写入,同 时设置中断(如中断尚末设置的话),在此方式中, 可用读 FIFO 状态字命令读出错误标志,而发 CF=1的清除命令,可使出错标志复位。 2.3 数码显示管 七段式数码显示管用来显示从0-9的是个数 字~它根据数字~让相应的二极管发光~显示数 - 17 - 单片机原理课程设计说明书 单片机电子时钟设计 字。其中对应数码管的发光二极管分别为:a、b、c、d、e、f、g、p。LED数码管根据LED的接法不同分为共阴和共阳两类~右图是共阴和共阳极数码管的内部电路~它们的发光原理是一样的~只是它们的电源极性不同而已。 将多只LED的阴极连在一起即为共阴式~而将多只LED的阳极连在一起即为共阳式。以共阳式为例~如把阳极极接高电平~在相应段的印迹极接上低电平~该段即会发光。当然~LED的电流通常较小~一般均需在回路中接上限流电阻。 以下就是共阳极LED数码显示管的内部原理图: 假如我们将"b"和"c"段接地~其它端接高电平~那么"b"和"c"段发光~此时~数码管显示将显示数字“1”。而将"a"、"b"、"d"、"e"和"g"段都接地~其它引脚接高电平~此时数码管将显示“2”。其它字符的显示原理类同。其中0-9对应的数码显示二进制码为:0C0H,OF9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H。 2.4 硬件连接图 见后面所附大图 - 18 - 单片机原理课程设计说明书 单片机电子时钟设计 三、设计过程 3.1程序框图 ,1,主程序的流程图 软件程序从开始执行~先通过初始化8279等~经过输入标志来决定是否按键以及是否输入六位了来执行相应功能的程序~进而在数码管上显示。 图3.1.1 主程序流程 - 19 - 单片机原理课程设计说明书 ,2,产生1S的流程图 产生1S的过程利用调用中断来进行的~程序进行的过程如下图3.1.2所示。 图3.1.2 产生1S流程 ,3,键盘输入的流程图 键盘输入是利用8279的初始化命令来控制的~最开始时对8279进行初始化~然后从FIFO中读出键盘输入的编码值~判断其是否为无效 单片机电子时钟设计 的输入值~执行相应的程序~具体过程如下图3.1.3所示。 图3.1.3 键盘输入流程 ,4,时钟进位流程图 在每次1S后~秒位都要自动加1~当秒位超过60时~就将秒位清零~同时将分位加1~而当分位超过60时~首先将分位清零~然后判断时位是否超过23了~如果超过则将时分秒全部清零~否则就将时位加1~如此循环~过程见下图3.1.4图。 - 21 - 单片机原理课程设计说明书 单片机电子时钟设计 图3.1.4 时钟进位流程 - 22 - 单片机原理课程设计说明书 单片机电子时钟设计 ,5,显示流程图 显示过程~首先初始化8279~设置显示的方式~将39H-3EH单元的内容分别送到显示RAM里~逐一显示~过程如下图3.1.5。 图3.1.5 显示流程 - 23 - 单片机原理课程设计说明书 单片机电子时钟设计 四、实验仿真结果图 首先当加载程序到实验箱后~按下运行按钮~所有的数码显示管全部显示为0。实验仿真图如下所示: 数码显示管显示最开始显示的状态 然后~可以进行按键输入~当输入不合法的数时~自动清零。数字由右向左输入~例如输入13点22分20秒时~则过程如下: 输入六个数字后~效果图如下所示: - 24 - 单片机原理课程设计说明书 单片机电子时钟设计 当输完六个数字后~电子时钟开始工作~每隔一秒钟~秒位就自动加1~效果如下: 我们所设计的电子时钟是二十四进制的~当时间到达23时59分59秒后~过一秒~则全部自动清零~重新开始下一轮计时。 清零后的效果图: - 25 - 单片机原理课程设计说明书 单片机电子时钟设计 四、程序清单: ;/*主程序*/ K1: MOV A,3CH MOVX @DPTR,A SWAP A MOV A,#34H ADD A,3BH MOVX @DPTR,A DA A MOV R2,#6 SUBB A,#60H MOV R1,#39H JC K2 CLEAR:MOV @R1,#00H MOV 3BH,#00 INC R1 MOV 3CH,#00 DJNZ R2,CLEAR K2: MOV A,3AH LCALL DISP SWAP A MOV R3,#06H ADD A,39H KEYIN:JNB SIGN,KEYIN DA A CLR SIGN SUBB A,#60H CALL DISP JC K3 KJNZ R3,KEYIN MOV 39H,#00 CLR EX1 MOV 3AH,#00 MOV A,#3EH K3: SETB TR0 SWAP A LOOP : JNB 00H,NEXT ADD A,3DH CLR 00H DA A ACALL DISP SUBB A,#24 NEXT: SJMP LOOP JC K1 - 26 - 单片机原理课程设计说明书 单片机电子时钟设计 ;/*产生1S的程序*/ ADD A,#01H TIME0: DJNZ 31H,CCC MOV 3CH,A MOV 31H,#250 CJNE A,#06H,EXIT DJNZ 32H,CCC MOV 3CH,#00H MOV 32H,#16 MOV A,3EH SETB 00H SWAP A CCC: IRET ADD A,3DH ;/*时钟进位程序*/ ADD A,#01H T0SERVE:MOV A,39H DA A ADD A,#01H CJNE A,#24H,KKK MOV 39H,A MOV 3DH,#00H CJNE A,#0AH,EXIT MOV 3EH,#00H MOV 39H,#00H LJMP EXIT MOV A,3AH KKK:MOV A,3DH ADD A,#01H ADD A,#01H MOV 3AH,A MOV 3DH,A CJNE A,#06H,EIXT CJNZ A,#06H,EXIT MOV 3AH,#00H MOV 3DH,#00H MOV A,3BH MOV A,3EH ADD A,#01H ADD A,#01H MOV 3BH,A MOV 3EH,A CJNE A,#0AH,EXIT EXIT: RET MOV 3BH,#00H MOV A,3CH - 27 - 单片机原理课程设计说明书 单片机电子时钟设计 SETB SIGN ;/*键盘输入程序*/ IINT1: PUSH ACC SETB EA POP DPL PUSH PSW POP DPH PUSH DPH PUSH DPL POP PSW POP ACC CLR EA RETI MOV A,#40H MOV DPTR,#5EFFH ;/*显示程序*/ DISP: MOV 55H,DPH MOVX @DPTR,A MOV 56H,DPL MOV DPTR,#5EFFH MOVX A,@DPTR MOV A,#92H MOV DPTR,#5FFFH MOV 35H,A MOVX @DPTR,A MOV B,#10 MOV R4,#06H SUBB A,B MOV R0,#39H JC DDD BBB: MOV DPTR,#CHART CLR A AJMP EEE MOV A,@R0 MOV B,#0AH DDD: MOV A,35H SUBB A,B EEE: MOV 3EH,3DH MOV 3DH,3CH JC FFF CLR A MOV 3CH,3BH LJMP HHH MOV 3BH,3AH MOV 3AH,39H FFF: MOV A,@R0 HHH: MOVC A,@A+DPTR MOV 39H,A - 28 - 单片机原理课程设计说明书 单片机电子时钟设计 MOVX @DPTR,A INC R0 DJNZ R4,BBB MOV DPH,55H MOV DPL 56H RET CHART:DB 0C0H,0F9H,0A4H,0B0H,99H~92H,82H,0F8H,80H,90H 五、设计体会 通过这次对电子时钟的设计~让我明白了如何设计程序~并且对各种硬件及软件有了进一步的掌握~尤其让我了8031、8279的工作原理。但是对于写一篇成功的设计报告仍然很难~自己抓不住含金量的东西~对于硬件电路图很模糊~不知道从哪里下手。没做课程设计之前以为自己什么都了解了~掌握了~弄懂了~一旦做起来~漏洞百出~不显眼的错误却造成了失败。这次课程设计真的让我懂得了一个道理:“坐而言不如立而行”~做事情要全力以赴~做学问要严谨治学。 - 29 - 单片机原理课程设计说明书 单片机电子时钟设计 附电路图 - 30 - 单片机原理课程设计说明书
/
本文档为【单片机时钟设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索