[工学]微机课程设计报告数字时钟.doc
《[工学]微机课程设计报告数字时钟.doc》由会员分享,可在线阅读,更多相关《[工学]微机课程设计报告数字时钟.doc(31页珍藏版)》请在三一办公上搜索。
1、微机课程设计报告班级:组长:组员:完成日期:指导老师:目 录1 概述31.1设计目的31.2 设计要求42 概要设计42.1设计环境与器材42.2设计思想52.3电路原理与主要心片功能52.3.1 8253主要功能62.3.2 8255主要功能72.3.3 8259主要功能82.3.4 8279主要功能103 详细设计113.1显示模块的实现123.2转换为段码模块133.3修改时间模块的实现143.4中段计时模块的实现173.5主程序流程图174 接口电路逻辑图184.1方案一实验连接线路图20 4.2 方案二实验连接线路图 215 实现功能与操作说明225.1功能225.2操作说明226
2、调试记录及误差分析226.1调试结果记录226.2 误差分析 237 课程设计工作日志 238 总结体会249 附录(程序清单)25一、 概述1.1 设计目的1)题目: 设计数字时钟:实时显示时间于LED数码管,并可以修改时间;2)设计目的:通过一个学期对微机原理与接口技术学习,我们掌握的知识还停留在理论的上。但是这是一门实践性较强的课程,让我们在学完该课程之后,进行一次课程设计,使我们将课堂所学的知识和实践有机结合起来,初步掌握接口电路设计的方法,提高我们学生的分析和解决实际问题的能力。通过设计实践,还培养了我们查阅专业资料,工具书或参考书,了解有关工业标准,掌握现代设计手段和软件工具,并能
3、以图纸和说明书表达设计思想和结果的能力。1.2 设计要求本次课程设计的内容为电子时钟的设计与实现,利用8253可编程定时计数器,8259中断控制器,8255可编程并行接口芯片和8279让六个七段数码管显示时分秒设计一个电子钟的电路。利用定时器从0开始进行计时,将计时的结果可以分别通过软件延迟和硬件中断两种方式显示在数码管上。每隔1秒,秒钟计时一次,到60秒,分钟加1,秒钟清零;到60分小时加1,分钟清零;到24时时小时、分钟、秒钟都清零,重新开始计时,这时记做是一天24时。在本次做的数字时钟中我小组还做出了进行修改时间和在到整点时进行声音提示功能。总体内容:设计一数字电子时钟,能在数码管上显示
4、时间并计时。二、概要设计2.1设计环境与器材(1)电脑一台 功能:用于对程序的进行编译测试等,同时还需要对实验设备进行控制,提供整个程序的运行平台,并且收集和释放硬件信号,实现程序功能。(2)实验箱一台 功能:此设备必须能提供我们小组做的数字时钟所需的8253、8255、8259、8279和显示灯等必要芯片。并且能通过接受PC机传来的信息,显示出相应的功能。以支持电子时钟的实现。(3)导线若干条 功能:用于电路和芯片之间的连接。2.2设计思想这次的课程设计数字时钟我小组选用了两种方案完成,这边我们主要讲第二种方案的设计思想,第二种方案是通过硬件中断的方法来实现。该方案主要是由以下模块组成:一.
5、将时分秒转换为段码;二.显示时分秒模块;三中断计时模块;四.修改时间模块;在整个电子钟的设计中,我们使用8253用于定时功能,由于8259的中断只能是电平与边缘触发,我们这边选择用的是边缘触发。我们选择8253初始化控制字为35H,工作在方式2,在每次的计数初值的N-1时产生一个脉冲。在CLK0引脚接入1MHZ的时钟周期,而将计数初值通过两个计数器写为1000000时,继而在OUT1会每1s产生一个脉冲,然后将输出的脉冲送到8259的IR0产生中断,产生的中断信号去自动修改秒针,根据秒钟的判断再对时和分进行计数。电子时钟的显示格式 HH.MM.SS 由左到右分别为时、分、秒,六个数码管动态显示
6、时、 分、秒的当前值。最大记时 23:59:59 超过这个时间时分秒位都清零重新开始。对于本次实验的一个功能:修改时间功能,该功能主要通过设置8255的工作方式为A口输入,然后将8个开关分别接A口端,通过读入8个开关的状态,判断要进行的修改操作。本实验我们设置8个开关所对应的功能:K0:0表示不修改时间,拨到1状态表示要进行修改时间操作;K1: 拨到1状态可以实现时钟全部清零的功能;K2: 对数字钟的秒进行加操作;K3: 对数字钟的秒进行减操作;K4: 对数字钟的分进行加操作;K5: 对数字钟的分进行减操作;K6: 对数字钟的时进行加操作;K7: 对数字钟的时进行减操作。对于本实验的另一个功能
7、就是在我们在程序的8259里边调用中断函数时进行判断时、分、秒有没超过最大值时,如果到了整点即当分钟达到60min要执行时加1时,系统会通过滴一声来提示。该功能主要是通过8253的计数器2,提供一个声音频率,再对8253初始化一个工作方式,通过计数器2的out2输入该频率的声音到喇叭。2.3电路原理与主要芯片功能本次设计实现的电子时钟的功能,电子时钟主要采用可编程并行接口芯片8255A、中断控制器2859A、定时/计数器8253、LED数码显示管和两个按键来设置一个控制灯的开关来组合设计。其中主要用8259A的IR7中断服务程序完成秒、分、时的运算即计时功能,IR6的中断服务程序完成调时、调分
8、功能。8253用来产生50ms的脉冲作为IR7的中断请求信号。8255A负责将内存里的时位、分位和秒位数值输出到数码管。8279A用来控制显示器显示时钟。按键K1+和K2+分别作为IR2和IR6的中断请求信号。按键K1+启动/关闭对时功能,它决定是否屏蔽IR7和IR6中断源。2.3.1 8253主要功能1、主要功能:(1)具有三个独立的16位减法计数器;(2)每个计数器可按二进制或十进制计数;(3)每个计数器的计数速率可达2MHZ;(4)每个计数器有六种工作方式;(5)全部输入输出都与TTL电平兼容。2、8253内部结构: 图2.0 8253内部结构3、8253的控制字: 控制字的作用是决定8
9、253各计数器工作方式。 控制字寄存器实际上是3个,分别控制三个计数器,但它们的端口地址相同。D7、D6 :计数器选择 00 计数器0; 01 计数器1 10 计数器2; 11 非法D5、D4 :读写格式 00 计数器锁存;使当前计数值锁存,以后再读取;因计数器为16位,而数据线8位,故需锁存,分次读取。01 只读写计数器的低8位,高8位自动为0; 10 只读写计数器高8位,低8位自动为0; 11 先读写计数器低8位,再读写高8位。D3、D2、D1 :计数器工作方式 000 方式0; 001 方式1; 10 方式2; 11 方式3; 100 方式4; 101 方式5;D0 :计数数制,决定计数
10、器按二进制计数或BCD码(十进制)计数。 0 二进制; 1 BCD码(十进制)2.3.2 8255主要功能8255 可编程外围接口芯片是 Intel 公司生产的通用并行I/O 接口芯片, 图2.1 内部结构及引脚它具有A、B、C 三个并行接口,并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU 和接口之间 的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。用+5V 单电源供电,能在以下三种方式下工作:方式0-基本输入/出方式、方式1-选通输入/出方式、方式2-双向选通工作方式。8255 的内部结构及引脚如图2.1所示:8255 工作方式控制字和C口按位置
11、位/ 复位控制字格式如图3-7-2 所示:图2.2 置位/ 复位控制字格式2.3.3 8259主要功能中断控制器8259A 是Intel 公司专为控制优先级中断而设计开发的芯片。它将中断源优先级 排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A 进行编程,就可以管理8 级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编 程来设定。同时,在不需增加其他电路的情况下,通过多片8259A 的级连,能构成多达64 级的矢量中断系统。它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应 和响应哪一级中断,3)响应中断时,向CPU 传送中
12、断类型号。8259A 的内部结构和引脚如图2.3所示:图2.3 内部结构和引脚8259A 的命令共有7 个,一类是初始化命令字,另一类是操作命令。8259A 的编程就是根据 应用需要将初始化命令字ICW1-ICW4 和操作命令字OCW1- OCW3 分别写入初始化命令寄存器 组和操作命令寄存器组。OCW1-OCW3 各命令字格 式如图2.4所示,其中OCW1 用于设置中断屏蔽操作字,OCW2 用于设置优先级循环方式和中断结束方式的操作命令字,OCW3 用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设 置对8259 内部寄存器的读出命令。图2.4 OCW1-OCW3 各命令字格2.3.4 82
13、79主要功能8279是可编程的键盘、显示接口芯片。它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。8279内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8*8=64B RAM,键盘控制部分可控制8*8=64个按键或8*8阵列方式的传感器。该芯片能自动消抖并具有双键锁定保护功能。显示RAM容量为16*8,即显示器最大配置可达16位LED数码显示。 图2.5引脚图图2.6 8279命令字如上图,8279的一条命令由两大部分组成,一部分表征命令类型,为命令特征位,由命令寄存器高3位D7-D5决定。D7-D5三位的状态可组合出8种形式,对应8类命令。另一部分为命令的具体内容
14、,由D4-D0决定。每种特征所代表的命令如表3.3所示:D4、D3两位用来设定4种显示方式,D2-D0三位用以设定8种键盘/显示扫描方式, 分别如表3.4和表3.5所示。三、详细设计3.1显示模块的实现使用8279控制,用数码管的显示功能来设计,显示部分用八只LED为显示管,这些LED发光二极管的阴极是互相连接在一起的,所以称为共阴极数码管。通过在这八只发光二极管的阳极加+5V或0V的电压使不同的二极管发光,形成不同的字符和数字。电子时钟用到的是0-9十个数字,它们所对应的字符表依次是3FH、06H、5BH、4FH、66H、6DH、7DH、07H、7FH、6FH。该模块主要是将运算模块和对时模
15、块运算出来并存放在内存单元里的十六进制时位、分位和秒位数值转化为十进制,并通过八只数码管显示出来,其中实验室中提供给我们的实验箱因为数码管只有六个,此模块实现的硬件是使用实验箱中的LED单元,采用软件译码,即在程序中设置一个段选码表。CPU直接往LED输出八段代码,省去了硬件译码器。显示的基本代码如下:mov cx,8xz: mov dx,b79 ;逐个清零 mov al,0 out dx,al ;清空显示 loop xz mov cx,8 mov dx,b79 lea si,dis ;缓冲区dis中存放有八位数码管所要显示的值play: mov al,si out dx,al inc si
16、loop play流程图:开始cx赋值8循环控制将数码管清零cx 赋值8循环控制将dis 存放的段码在数码管上显示(即显示时间)返回图4.1 显示模块流程图 3.2转换为段码模块流程图:开始将dis的有效地址给si将秒的十位和个位分离存放在si和si+1中将分的十位和个位分离存放在si+2和si+3中将时的各位和十位分离存入si+4和si+5中将led的有效地址给bx将cx赋值8通过循环控制将dis中的数值转换成断码返回 图4.2 转换为段码模块流程图 3.3修改时间模块利用8个拨码开关,每拨动一次开关,对应的时钟、分钟、秒钟做相应的修改操作。流程图:开始初始化8255读A口将A口的原来的值读
17、入ah将当前的值读入akou中比对A口的两个状态,找出是否有值不同判断最后一位是否为0返回YNal 左移一位对时的十位修改al 左移一位对时的个位修改判断时是否大于等于24YN时清零al 左移一位对分的十位修改al 左移一位对分的个位修改判断分是否大于等于60Y分清零Nal 左移一位对秒的十位修改al 左移一位对秒的个位修改判断秒是否大于等于60Y分清零Nal 左移一位adc bl 0判断bl是否小于1N 时分秒清零Y调用transaction函数将时间转换成段码调用show函数将时间在数码管上显示读A口判断最后一位是否为0Y返回N 图4.3 修改时间模块流程图 3.4中段计时模块流程图:开始
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工学 微机 课程设计 报告 数字 时钟

链接地址:https://www.31ppt.com/p-4532902.html