数字钟程序设计--基于单片机内容摘要:
XTAL1 1 X1 产生振荡频 率信号 22 开关 AN SWPB 2 S1,S2 时间调整( S1复位, S2 调时间) 23 底座 4 对元器件的支 撑 注意方向 24 印制电路板 数字钟 1 电路板 25 排线 1 连接电源 数字钟设计(论文) 13 ( 3) 控制部分 AT89C52 单片机 AT89C52 单片机概述: AT89C52 单片机是国 Atmel 公司生产的采用高性能的静态89C2051 设计,是一个低电压,高性能 CHMOS 8 位单片机,片内含 4kbytes 的可反复擦写的只读 Flash 程序存储器和 128 bytes 的随机存取数据存储器( RAM),器件采用 ATMEL公司的高密度、非易失性存储技术生产,兼容标准 MCS51 指令系统,片内置通用 8 位中央处理器和 Flash 存储单元。 AT89C52 是一个功能强大的单片机,但它只有 40 个引脚, 32 个双向输入 /输出( I/O)端口,其中 P1 是一个完整的 8 位双向 I/O 口,两个外中断口,两个 16 位可编程 定时计数器,两个全双向串行通信口,一个模拟比较放大器。 此外,由于器件采用了动态设计,可提供很宽的操作频率范围 (频率 0HZ12MHZ)。 在本设计中 AT89C52 的时钟电路采用内部时钟方式,此方式是在 XTAL1 和 XTAL2两端跨接晶体或陶瓷谐振器。 在本设计中 XTAL1 和 XTAL2 两端跨接 12MHz 晶体振荡器,其发出的脉冲直接送入内部时钟电路。 本设计采用按键手动复位的按键电平复位 (见图 图 6)。 图 5 时钟输入 图 6 复位电路 数字钟设计(论文) 14 AT89C52 在本设计中的 I/O 口应用: AT89C52 的 控制 74LS244 实现数码管段选; AT89C52 的 控制 六个三极管 实现数码管位选。 ( 4) 数码管显示部分 本设计中所涉及数码管分别 采用共阳 与共阴 数码管,显示电路为动态扫描式显示。 (如图 图 8所示) 图 7 共阴极 数码管及显示电路选择 图 8 共阳极数码管及显示电路选择 数字钟设计(论文) 15 数码管显示位选: AT89C52 的 输出控制数码管位选,在本次设计的电路中,因为是使用的是共阳数码管,因此由 AT89C52 的 的输出控制 六个三极管 ,使之输出相应的端口为低电平,控制数码管点亮。 图 9数码管位选原理 数码管段选 AT89C52 的 控制 74LS244 实现数码管段选,在本次设计的电路中,由于 数码 管使用的是共阳数码管,在输出的是要低 电平。 在设计的时候,怕在芯片输出的电流信号过大,因此在输出的时候加了限流电阻,为保护数码管,防止烧坏。 图 10数码管段选原理 数字钟设计(论文) 16 ( 5)原理图 原理图见图 11 图 11原理图 数字钟设计(论文) 17 ( 6) PCB图 图 12 数字钟设计(论文) 18 ( 7)实物图 以及调试 根据元器件和 PCB 板焊接实物 实物图见图 13 1. 实物图 图 13 实物图 2. 调试 按 S1复位,数码管上的数字为 12: 59: 50; 长按 S2,再松开。 对时钟部分进行调整; 调整完时钟之后,再长按 S2,对分钟部分进行调整; 调整完分钟之后,再长按 S2,对秒钟部分进行调整。 毕业设计(论文) 19 六 、 软件设计 ( 1) 总的设计思想 在本次主要是使用的是数字闹钟 ,因此主要部分是数字钟的实现 ,因此要实现这样的功能必须要在硬件 的电路上实现数字钟的实现 ,然后在此基础上逐步实现其他的功能 , 数字电子钟的程序大概可以分为三个部分:时钟主程序、时钟显示程序、时钟中断程序。 时钟主程就是对时钟的各个模块的实现。 时钟显示程序是将秒显示用发光二极管显示 ,每一秒点亮一次;将分个位、分十位、时个位、时十位数据存储单元的计时数据通过设置段选和位选、由 74LS244N 段选译码,最后显示在相应的数码管上。 ① 总体介绍: 此部分主要介绍定时模块,和显示模块。 定时部分采用经典的定时器定时。 它实现了数字钟的主要部分,和秒表的主要部分,以及产生报时信号,定时设置。 显示模块是实现数字钟的又一重要部分,其模块的独立程度直接影响到数字钟的可视化程度。 在此部分的设计中,设置专用显示数据缓冲区 40h45h,与分,时及其他数据缓冲区数据区别,在其中存放的是显示段码,而其他缓冲区存放的是时间数据。 在显示时,首先将时间十进制数据转化为显示段码,然后送往数码管显示。 显示段码采用动态扫描的方式。 在要求改变显示数据的类别时,只须改变 @R0(指向数据 缓冲区的指针)指向的十进制数据缓冲区即可。 ② 数据调整: 数据调整有多种方式。 一、可以直接进入相关状态进行有关操作,二、将调整分两步,先进入状态,然后执行操作,这两步分别由两个键控制。 方式一、比较直接,设计思想也比较简单,但是,这种方式存在操作时间和控制键数目的矛盾。 如果用比较少的键,那么可能会在进入状态后处于数据调整等待状态,这样会影响到显示的扫描速度(显示部分可以采用 8279 芯片来控制,可以解决此问题)。 当然在这种方式下,还可以使用多个状态键,每个状态键,完成一个对应数据的调整。 如果采用二的方式, 就不会出现这种情况。 因为状态的调整,与状态的操作可以分别由两个键控制,其状态的调整数可以多达 256 个(理论上),操作的完成是这样的,一键控制状态的调整,一键控制数 毕业设计(论文) 20 据的调整(具体操作如图 2)。 以上两种方式的实现都可以采用查询和中断的方式。 两种方式必须注意的问题是两者进行相关操作的过程不能太长否则会影响显示的扫描。 利用查询的方式,方法传统,对此就不作过多的讨论,以下是采用中断的方式实现的数字钟的一些讨论和有关问题作的一些处理。 基于以上的讨论可以设计如下:将调整分为状态调整和数据调整两部分,每次进入中断只执行一次 操作,然后返回,这样,就不必让中断处于调整等待状态,这样,可以使中断的耗时很小。 将定时器中断的优先级设置为最高级,那么中断的方式和查询的方式一样不会影响到时钟的记数。 基于以上的讨论,数据修改的具体操作如下。 在状态进入后,调整指针的指向如右图所示:在右图中 @R1表示指向数据缓冲区的指针,状态 2 状态 3 状态 4 状态 5 状态 6 @R1HOUR @R1FS @R1SS @R1NULL 状态 1 @R1MBF 图 14 毕业设计(论文) 21 它主要是为数据的调整而设立的,在图中: MBF 、 HOUR、 FS、 SS,分别表示时钟的分、时,定时设置分、时,的数据缓冲区。 状态 5 是秒表进入状态,状态 6是时钟正钟显示状态。 在程 序中 @R1为专用指针,它的值只在状态调整时改变,每次运行图示模块,只改变一次状态,就跳出程序。 调整数据只须改变 @R1 中的数据即可。 注: 本系统的软件系统主要可分为主程序和定时器中断程序两大模块。 ( 2) 中断程序设计 概述 中断程序完成时间计数,时间调整,误差消除等功能。 中断采用 AT89C52 内部 T0中断实现,定时时间为 125ms,当时间到达 125ms 8,即 1 分钟时,分计数缓冲器MINBUFFER 增加 1,到达 1 小时,则时计数缓冲器 HOURBUFFER 增加 1,并将分、时的个位、十位放入显示缓冲器。 当分计 数缓冲器和时计数缓冲器分别到达 60min、 24h 时,则对它们清零,以便从新计数。 在中断设计中,还通过软件实现了累计误差消除功能,使整个系统时间的精确度得到保证。 ( 3) 设计程序的流程图 在以下流程图中只描述了基本的功能,如给显示位加点,中断程序状态调整,加一操作,显示状态的切换,在流程图中都没有描述。 但其设计就是基于以上介绍的显示指针,和状态指针的思想。 在程序中用 @R0,@R1 充当此指针。 程序设计的基本流程图如下: 毕业设计(论文) 22 开始 各缓冲区初始化 对定时器,中断设置 开始计数 显示缓冲单元首址送 R0, 扫描初值送。数字钟程序设计--基于单片机
相关推荐
(如机械、建筑、电子 )中,一些软件开发商在 AutoCAD 的基础上已开发出许多符合实际应用的软件。 目前, Autodesk 公司已经发布 AutoCAD2020,它相当于 AutoCADR15 版。 4. MDT MDT 是 Autodesk 公司在 PC 平台上开发的三维机械 CAD系统。 它以三维设计为基础,集设计、分析、制造以及文档管理等多种 功能为一体
208 20 数据展现与分析平台烟暮花称怔央岩砚慧正肪齿桨剿傲钻纂神牢辨宦洒抗掣泵舜恳孜矿袁蛙孔筑小狱混浅祟税酣畅擂赎撂旬糜器斑抓峙搂鲸丑瘸驯械蕊陛瑰员屏舵苗灌 厂商库存走势分析模型 ..................................................................... 28 数据展现与分析平台建设方案
S/N USE RETURN SET TALK OFF CLEAR S=0 N=1 FOR I=1 TO 10 N=N*I S=S+N ENDFOR ?S= ??S RETURN SET TALK OFF CLEAR USE Student DO WHILE .T. INPUT 1:添加记录 2:编辑记录 3:删除记录 0:退出 TO S DO CASE CASE S=1 APPEND
RST/VPP(9 脚 ):复位引脚,引脚上出现 2 个机器周期的高电平将使单片机复位。 LE/PROG(30脚 ):地址锁存允许信号。 9 PSEN(29角 ):外部存储器读选通信号。 EA/Vpp(31角 ):程序存储器的内外部选通,接低电平从外部 程序存储器读指令,如果接高电平则从内部程序存储器读指令。 AT89C51芯片的内存结构 MCS51单片机包含中央处理器、程序存储器 (ROM)
1 1 0 0 0 0。 1 0 1 0 1。 1 1 0 0 1 1 1 0 1 0。 1 1 1 1 1 0 0 1 1 0 1 0 0。 1 1 0 0 X X X X。 X X X X 0 0 0 0。 1 0 0 0。 1 1 0 0 X X X X X X X X X X X X 根据真值表画卡诺图如图 D38所示。 23 AA01 AA3Y1 1X X X X1 1 X
A. 16 4. 有一个左移移位寄存器,当预先置入 1011 后,其串行输入固定接 0,在 4个移位脉冲 CP作用下,四位数据的移位过程是( )。 A. 10110110110010000000 B. 10110101001000010000 C. 10111100110111101111 D. 10111010100110000111 5.已知 74LS138 译码器的输入三个使能端(