微机原理课设数字电子钟设计_第1页
微机原理课设数字电子钟设计_第2页
微机原理课设数字电子钟设计_第3页
微机原理课设数字电子钟设计_第4页
微机原理课设数字电子钟设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南京工程学院课程设计说明书(论文)题 目 数字电子钟设计 课 程 名 称 微机原理及接口技术 院 系 专 业 班 级 学 生 姓 名 学 号 设 计 地 点 指 导 教 师 设计起止时间:2013 年 12 月 23 日至 2013 年 12 月 27 日成绩- 2 -目录一、设计原理及功能 .1(1) 设计要求 .1 (2) 设计原理说明 . 1 1.显示模块 .1 2.计数模块 .13.中断模块 .24.定时模块.25.修改模块.2 (3) 附加功能 .2 二、实验内容(接线图) .2 三、软件设计 .6 1.设计思路(流程图) .62.运行结果图.83.源程序清单 .8 四、调试现象: .15 五、心得体会: .15六、参考文献 .16- 3 -一、设计原理及功能(1) 设计要求利用 8253 可编程定时/计数器、8259 中断控制器、8255 可编程并行接口芯片和七段数码管设计一个电子钟的电路,并编写一段程序使得该电子钟能正常运行。选用 8253 的计数器 2 进行 100MS 的定时,其输出 OUT2 与 8259 的 IRQ0 相连,当定时到 100MS 时产生一个中断信号,在中断服务程序中进行天数、时、分、秒的计数,并送入相应的存储单元;8255 的 A 口接七段数码管的位选信号,B 口接数码管的段选信号,天数、时、分、秒的数值通过对 8255 的编程可送到七段数码管上显示。(2) 设计原理说明1.显示模块显示模块是将显示缓冲区的数值送到 LED 显示的功能模块,显示缓冲区是由八个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位,一个横杠和一位天数的显示。硬件上主要涉及到的是 8255。定义 8255 控制字为 89H,其在方式 0 下工作,A,B 输出,C 输入的工作方式。8255 的 A 口接七段数码管的位选信号,B 口接数码管的段选信号,用排线接好。软件上主要是对时、分、秒、天的扫描显示,主要是在 DISPLAYLED 函数里体现出来:首先将 10000000B 送至 OUTBIT 端口,即确定 LED 的哪一位显示,再把 BX 中存储在内存中的翻译好的显示码送至 OUTSEG 短口,来确定显示什么字符。依次将加而减一,直至为跳转而字符的译码则是在 STSRT 函数中的 LP 中完成的,以小时 HOUR 为例,将存入中再以,按“余高商低”的规则,中存的是小时的个位中村的是小时的十位,将转换成显示码,并存入显示缓冲区。其他分、秒、天类似。2.计数模块计数模块的主要芯片是 8253,8253 控制字 1010 0110H,表示选用计数器 2,对高字节读写,方式 3。因为选用的是计数器 2,则 OUT 的端口即选用 OUT2,连至 8259 的 IR端口,CLK2 端口接来自实验箱的 62.5KHz 的时钟频率。- 4 -将 82500HZ 的频率转化为 10HZ 的频率,即题目要求的 100MS。每隔 100MS 送出一个信号至 8259,配合中断程序的实现。3.中断模块控制终端模块的主要芯片是 8259。IINIT 函数是专为初始化 8259。初始化 9258 的命令字 ICW1 为 00010011B,即中断请求是边沿触发,用于 8086 系统,需要设置 ICW4。ICW2 为 00001000B,ICW2 是设置中断类型号的初始化命令字。ICW4 为00001001B,ICW4 叫中断结束方式初始化。OCW1 为 11111110B 即表示只有 M0 允许中断,故接线时 8253 的 OUT2,连至 8259 的 IR0 端口.。软件上包括初始化 8259 的命令字和操作命令字,中断服务程序,中断服务子程序。设一个变量 CNT,每次调用中断服务程序则 CNT 加一,在判断 CNT 能不能被 10 整除,若能,则秒加一;不能,跳出中断程序。若秒满 60,则分加一,秒数清零,依次类推。4、定时模块定时模块由 8253 完成,8253CLK0 接 2MHZ 频率,OUT0 接 CLK1,OUT1 接蜂鸣器,GATE0 接高电平,GATE1 接脉冲信号,当其为高电平时有效。计数器 0 初始值设为5000,计数器 1 初始值设为 8000,从 OUT1 出来的信号为周期 20S 的方波,而蜂鸣器为低电平有效。5、修改模块修改模块是由 8255 完成的,从 C 口输入开关信号控制时间的修改,中间引入中间变量,以防每按动开关一次,跳动多次。(3)附加功能(1) 附加内容:选用 8253 的计数器 0、1 产生一个 10s 的时间定时,并将其输出OUT1 与蜂鸣器相接,产生 10S 产生蜂鸣。(2) 8255 的 C 口接开关输入,用 K1、K2、K3 分别控制时、分、秒的修改。- 5 -二、实验内容(接线图)硬件设计主要是将所用的各个芯片与 CPU 进行有效连接,也包括芯片与芯片之间的必要的信号连接线。首先将各芯片的片选端与对应的 CPU 的 CS 端口进行连接。再将对应的 A0,A1 对应连上。为保证中断模块的正常运行,将 8259 的 INT、INTA 与 ES8688 的 INTR、INTA 连接,IRO 与 8253 的 OUT2 连接。为保证显示模块的正常运行,将 5255 的 AB 口与 LED 的 CB 口连好。为保证计数模块的正常运行,将 62.5K 频率接到 8253 的 CLK2。为保证计数模块的正常运行, 将 C5区的 GATE1接到单位脉冲。为保证计数模块的正常运行,将 C5 区的OUT0 接到C5 区的CLK1。为保证计数模块的正常运行,将 C5 区的OUT1 接到D1 区的CTRL。为保证计数模块的正常运行,将 B4区的 C 接到G6 区的JP80。为保证计数模块的正常运行,频率输出 2MHZ 接到 C5 区的 CLK0。为保证计数模块的正常运行,将 B4 区的 A、B 分别接到 LED 区的 C、B 数据线。A3 区:A0、A1 B3、B4、C5 区:A0、A1A3 区:CS3 B3 区:CSA3 区:CS4 C5 区:CSC5 区:GATE0、GATE2 - VCCA3 区:CS8 B4 区:CSB3 区:INT、INTA ES8688:INTR、INTAB3 区:IRO C5 区:OUT2频率输出:62.5k C5 区:CLK2C5 区:GATE1 - 单位脉冲C5 区:OUT0 - C5 区:CLK1C5 区:OUT1 - D1 区:CTRLB4 区:C - G6 区:JP80频率输出:2MHZ - C5 区:CLK0B4 区:A、B LED 区:C、B 数据线- 6 -实物连线图:- 7 -三、软件设计(流程图)1.设计思路(1) 在主程序中要分别对 8253、8259、8255 进行初始化编程,8253 的计数器 2 可在方式 2 下工作。(2) 8255 的 A 口、B 口都设为方式 0,为基本的输入输出的方式(3) 在中断服务程序中对中断次数进行统计,当满 10 次时就进行一次时、分、秒的处理。时、分、秒,分别对应 6 个存储单元,分别存放时、分、秒的十位和个位。当中断次数满 10 次时,将秒的个位加 1,判断是否到 10,如到了则十位加 1,个位清零;再判断十位是否到 6,如到了则十位清零,分的个位加1,同时对分、时作相应处理。(4) 七段数码管显示作为子程序,将时、分、秒对应存储单元的内容分别取出并转换成相应的段码,从 8255 的 B 口输出,A 口输出对应位的位选信号,延时后进行下一位的显示(5) 用 8253 的计数器 0、1 产生一个 20S 周期的方波,计数器 0 工作在方式 2 下,计数器 1 工作在方式 3 下。(6) 在循环程序中检测 K1、K2、K3 是否为高电平,若是则相应位置加 1,同时还得引入变量控制 K1、K2、K3 一直在高电平的状况,确保每次按动开关相应位置只加一次。- 8 -中 断 次 数 加 1 中 断 计 次 值 =10 中 断 计 次 单 元 清 秒计 时 值 加 1 秒 值 =60? 秒 计 时 单 元 清 零 分 计 时 值 加 1 分 值 =60? 分 计 时 单 元 清 零 小 时 计 时 值 加 1 小 时 值 =60? 小 时 计 时 单 元 清 零 输 出 中 断 结 束 命 令 中 断 返 回 开始设置中断服务程序地址设置 8253 工作方式及定时常数设置 8255 工作方式清显示器缓冲区清时、分、秒及中断计次单元开中断将时、分、秒单元中数据转换为 BCD 码并存入显示缓冲区调用显示子程序(a)主程序流程图 (b)中断服务程序流程图2.运行结果图- 9 -3.源程序清单D8253K EQU 0C003H ;8253 控制口 D8253D_0 EQU 0C000H D8253D_1 EQU 0C001H D8253D_2 EQU 0C002H MD8255 EQU 89H ;8255 控制字 1000 1001H,A 输出,B输出,C 输入PA8255 EQU 08000H PC8255 EQU 08002HCTL8255 EQU 08003H OUTBIT EQU 08000H ;位控制口 OUTSEG EQU 08001H ;段控制口 CS8259A EQU 0D000H ;8259 地址 CS8259B EQU 0D001H DATA SEGMENT CNT DB 0 LEDBUF DB 8 DUP(?) ;显示缓冲 NUM DB 1 DUP(?) ;显示的数据 DELAYT DB 1 DUP(?)- 10 -ZHOU DB 1 HOUR DB -1 MINUTE DB 0SECOND DB 0 CT DB 1mt DB 1VT DB 1LEDMAP: ;八段管显示码 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H DATA ENDS SSEG SEGMENT STACKDB 1000 DUP(?)SSEG ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:SSEGIINIT PROC NEAR ;初始化 8259 的命令字和操作命令字 MOV DX,CS8259A MOV AL,13H OUT DX,AL MOV DX,CS8259B MOV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论