外文翻译---模拟建筑塔钟-建筑结构(编辑修改稿)内容摘要:

半导体发光器件,其基本单元是发光二极管。 数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按 能显示多少个 “8” 可分为 1 位、 2位、 4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。 共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极 (COM)的数码管。 共阳数码管在应用时应将公共极 COM 接到 +5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。 当某一字段的阴极为高电平时,相应字段就不亮。 共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极 (COM)的数码管。 共阴数码管在应用时应将公共极 COM 接到地线 GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。 当某一字段的阳极为低电平时,相应字段就不亮。 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 毕业 设计( 论文 ) 第 20 页 共 66 页 1. 静态显示驱动:静态驱动也称直流驱动。 静态驱动是指每个数码管的每一个段码都由一个单片机的 I/O 端口进行驱动,或者使用如 BCD 码二 十进制译码器译码进行驱动。 静态驱动的优点是编程简单,显示亮度高,缺点是占用 I/O端口多,如驱动 5 个数码管静态显示则需要 58 = 40根 I/O 端口来驱动,要知道一个 89S51 单片机可用的 I/O 端 口才 32 个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 2. 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的 8个显示笔划 a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极 COM 增加位选通控制电路,位选通由各自独立的 I/O 线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通 COM 端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就 显示出字形,没有选通的数码管就不会亮。 通过分时轮流控制各个数码管的的 COM端,就使各个数码管轮流受控显示,这就是动态驱动。 在轮流显示过程中,每位数码管的点亮时间为 1~ 2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的 I/O 端口,而且功耗更低。 LED 数码管 是以发光二极管作笔段并按共阴极方式或共阳极方式连接后封装而成的。 有两种 LED 数码管的外形与内部结构 — — 公共阳极和公共阴极, a~ g是 7 个笔段电极, DP为小数点。 LED 数码管型号较多,规格尺寸也各异,显示颜色有红、绿、橙等。 LED 数码管分共阳极与共阴极两种, 共阳极 工作特点是,当笔段电极接低电平,公共阳极接高电平时,相应笔段可以发光。 共阴极 LED 数码管则与之相反,它是将发光二极管的阴极 (负极 )短接后作为公共阴极。 当驱动信号为高电平才能发光。 使用 LED 数码管时,工作电流一般选 10mA 左右/段,既保证亮度适中,又不会损坏器件。 本设计采用的是 7SEGMPX6CA7SEGMPX6CA是集成了的六位七段共阳极数码 管。 毕业 设计( 论文 ) 第 21 页 共 66 页 按键控制 当遇到停电情况,步进电机停止运行,当恢复供电后,需要改变步进电机转速或者转动方向来调整塔钟指针指示到正确时间,因此需要按键来控制。 一共设置了 5 个按键,它们的名称与功能分别如下所述: —— 使步进电机正转,同时具有启动电机功能 —— 使步进电机反转,同时具有启动电机功能 —— 使步进电机转速加快 —— 使步进电机转速减慢 —— 使步进电机停止转动,同时具有复位电机初始 状态功能 各部分芯片选择 主控 制电路芯片选用 AT89C51,步进电机驱动选用 二 极管和电阻以及专用驱动芯片 ULN2020A,报时系统选用蜂鸣器报警。 AT89C51 单片机特性 AT89C51 是一种低功耗 ,高性能的 8 位 的 CMOS 微处理器芯片 , 片内带有 4K字节的闪速可编及可擦除只读存储器 ,简写为 PEROM。 该芯片的制造采用了 ATEML公司的高密度非易挥发存储器的生产技术 , 并与工业标准的 80C51 指令集与管脚分布相兼容。 片上的允许在线对程序存储器重新编程 , 也可用常规的非易挥发存储芯片编程器编程。 AT89C51 将功能多样的 8位 CPU 与 PEROM 结合在同一个芯片上 为许多嵌人式控制应用提供了高度 灵活并且价格适宜的方案。 这种 AT89C51具有以下标准特性 :4K字节的 PEROM,128字节的 RAM,32条 I/O线 ,两个 16 位定时器 /计数器 ,一个五源两级的中断结构 ,一个全双 I 的串行口 ,片内振荡器与时钟电路。 AT89C51 为 PEROM 阵列的编程提供了所有必需的时序与高电压 ,不需要任何外部支持电路。 此外 ,AT89C51 还支持两种软件可选的省电模式。 其中闲置模式下 ,CPU 停止工作 ,但 RAM、定时器计数器、串行口与中断系统仍然在起作用。 在掉电模式下 ,只保存 RAM 的内容 ,振荡器停振 ,关闭芯片的所有其它功能 ,直到 下一次硬件复位到来。 毕业 设计( 论文 ) 第 22 页 共 66 页 4 软件部分编程 所谓时钟计时,就是以秒,分,时为单位进行的计时,广泛用于日常生活中。 选用的 AT89C51 的定时器 /计数器来实现计时,是一个非常普遍的应用。 首先对几个相关问题进行说明。 时钟计时的关键问题是秒的产生,因为秒是最小的时钟单位,但使用 AT89C51 的定时器 /计数器进行定时,即使按做工作方式 1,其最大定时也只能达到 131ms,离 1s 还很远。 因此,把秒计时用硬件定时和软件计数想结合的方法实现,例如把定时器的定时设定为 125ms, 这样计数 8次就可以得到 1s,而 8 次计数可用软件方法实现。 为得到 125ms 定时,可以使用定时器 /计数器 0,以工作方式 1 进行,假定单片机为 12MHz 晶振,设计数初值为 X,则有如下等式: 65536— X=125000 计算得计数初值 X=3036,二进制表示为 101111011100,十六进制表示为 0BDCH。 ,即通过中断服务程序进行计数器溢出次数(每次 125ms)的累计,计满 8次即得到秒计时。 例如,秒计数 单元每次加 1,都要比较判断是否计满 60,则继续计数;若计满 60,则转去对分计数单元加 1. 4.设置时钟显示缓冲区。 假定时钟时间在 6位 LED 显示器上显示(时,分,秒各占两位)。 因此,要在内部 RAM 中设置 6 个单元的显示缓冲区,从左向右依次存放时,分,秒的数值。 显示单元与 LED 显示位的对应关系如下: LED5 LED4 LED3 LED2 LED1 LED0 75H 74H 73H 72H 71H 70H 毕业 设计( 论文 ) 第 23 页 共 66 页 主程序 MAIN 主程序的主要功能是进行定时器 /计数器的初始化编程,然后通 过反复调用显示子程序的方法,等待 125ms 定时中断的出现。 其流程如下图所示。 图 MAIN程序流程图 MAIN 显示缓冲清 0 定时器 0,工作方式 1 装计数初值 定时开始 开中断 设置循环次数 调用显示子程序 毕业 设计( 论文 ) 第 24 页 共 66 页 程序如下: ORG 8000H START:AJMP MAIN ORG 800BH AJMP PITO ORG 8100H MAIN:MOV R0,70H 显示缓冲首地址 MOV R7,06H 显示位数 ML1:MOV @R0,00H 显示缓冲清 0 INC R0 DJNZ R7,ML1 MOV 7AH,0AH。 放入 熄灭符 数据 MOV TMOD,01H 定时器 0,工作方式 1 MOV TL0,0DCH 装计数初值 MOV TH0,0BH SETB TR0 TR0置 1,定时开始 MOV IE,01H 允许中断 MOV 30H,08H 设置循环次数 ML0:LCALL DISPLAY 调用显示子程序 SJMP ML0 中断服务程序 PITO 中断服务程序的主要功能是进行计时操作。 程序开始先判断计数溢出是否满了 8 次,若不满 8 次表明还没有到达最小计时单位秒,则中断返回;若满 8 次表明已到达最小计时单位秒,则程序继续向下执行,同理进行分和时的计时。 其中计时到 1 小时的时候跳转到报时子程序。 其流 程如下图所示。 毕业 设计( 论文 ) 第 25 页 共 66 页 图 PITO程序流程图 PITO 计数器重新加载 循环次数减 1 是否满 8 次。 秒加 1 是否满 60s。 秒缓冲清 0,分加 1 是否满 60min。 分缓冲清 0,时加 1 启动报时程序 是否满 24h? 时清 0 Y 返回 N N N N Y Y Y 毕业 设计( 论文 ) 第 26 页 共 66 页 程序如下: PITO:MOV TL0,0DCH 计数器重新加载 MOV TH0,0BH MOV A,30H DEC A 循环次数减 1 MOV 30H,A JNZ RET0 不满 8次,转 RETO 返回 MOV 30H,08H 满 8次,开始计时操作 MOV R0,70H 秒显示缓冲单元地址 ACALL DAAD1 秒加 1 MOV A,R2 加 1后秒值在 R2 中 XRL A,60H 判断是否到 60S JNZ RET0 不到,则转 RETO 返回 ACALL CLR0 到 60S,则秒显示缓冲单元清 0 MOV R0,72H 分显示缓冲单元地址 ACALL DAAD1 分加 1 MOV A,R2 XRL A,60H 判断是否到 60MIN JNZ RET0 ACALL CLR0 到 60MIN,则分显示缓冲单元清 0 MOV R0,74H 时显示缓冲单元地址 ACALL DAAD1 时加 1 INC R3 MOV R4,R3 ACALL ABC 跳转到报时程序 MOV A,R2 XRL A,24H 判断是否到 24H JNZ RET0 ACALL CLR0 到 24H,则时显示缓冲单元清 0 毕业 设计( 论文 ) 第 27 页 共 66 页 RET0:RETI CLR0:CLR A 清缓冲单元子程序 MOV @R0,A 10 位数缓冲单元清 0 DEC R0 MOV @R0,A 个位数缓冲单元清 0 RET 加 1 子程序 DAAD1 加 1 子程序用于 完成对秒,分,时的加 1 操作,中断服务程序中在秒,分,时加 1共有 3 处调用。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。