当前位置:文档之家› (完整版)基于8086的电子时钟设计(汇编语音)

(完整版)基于8086的电子时钟设计(汇编语音)

目录摘要 (1)Abstract (1)第一章电子钟设计总体方案设计 (2)1.1 设计目的 (2)1.2 设计要求 (2)1.3 方案比较 (2)1.3.1 非中断方式与中断方式的比较 (2)1.3.2 LED显示与液晶显的比较 (3)1.4 总体方案设计思路 (3)第二章系统硬件设计 (4)2.1 8255与CPU之间的连接关系 (4)2.2 8253与周边电路的连接关系 (4)2.3 8259与周边电路连接关系 (5)2.4 液晶显示模块与8255之间的连线关系 (5)2.5 地址译码器与按键 (6)2.6 系统总体硬件电路图 (6)第三章系统软件设计 (7)3.1 编址及控制字的确定 (7)3.1.1 编址 (7)3.1.2 控制字 (7)3.2 分块子程序 (7)3.2.1 1602读写操作子程序 (7)3.2.2中断子程序 (9)3.3 主程序设计 (11)总结与致谢: (13)参考文献: (14)附录: (15)摘要本设计以微机原理与接口技术为基础,以8086CPU为核心,利用INTER 8253可编程定时/计数器,通过引入时钟发生器产生标准时钟进行精准定时;经定时器产生中断源,采用可编程中断控制器8259A进行中断扩展,用可屏蔽中断方式进行时间的采集;以可编程并行I/O接口芯片8255A扩展接口,驱动MSC1602液晶模块进行时间显示。

第一章电子钟设计总体方案设计1.1 设计目的电子钟是一种基于微电子技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。

通过该题目的设计和分析,学习微机软、硬件系统设计开发的过程,加深微机原理及其应用课程基础知识的理解和综合运用能力,熟悉集成电路芯片的使用方法,熟悉微机编程及接口电路,学会体会工程实际设计过程,培养学生独立解决实际工程问题的综合能力。

初步得到用汇编语言书写程序的训练,全面培养程序设计的分析、设计、编测试及文档规范书写的能力,得到运用汇编语言的综合训练,提高解决实际问题的能力。

1.2 设计任务通过该题目的设计过程,可以初步掌握汇编语言的运用、软件开发方法并提高解决实际问题的综合能力。

电子时钟实际是一个多重的定时技术系统。

对于秒、分技术系统,逢60进1,即当秒计数到60时,秒计数器向分计数器输入一个计数脉冲;而当分计数器计数到60时,向小时计数器输入一个计数脉冲。

当小时计数器逢24进1.把秒计数器、分计数器和小时计数器的内容通过七段数码管或其他芯片显示出来,就完成了时间信息的输出。

本课程设计要求利用8086系统模拟电子时钟结构,完成以下设计任务:1、时间初值输入:利用键盘输入时间初值;2、电子钟计数:电子钟通过计数器自动计数,实现时间的自动更新;3、时间显示:可选用LED七段数码管输出时间,显示给用户;4、程序采用汇编语言在PC机上完成;5、完成复核学习要求的设计计算说明书。

1.3 设计要求1、利用Intel 8086 CPU 及其相应的外围扩展电路及其接口电路,设计系统硬件原理图,并绘制于2号工程图纸。

2、给出程序的设计思路,设计系统软件流程框图,并绘制于2号工程图纸。

3、完成设计计算说明书。

1.3 方案比较为实现设计要求,在8086微机系统中实现计时功能可有多种方式,同时实现显示的方式也有多种,现主要比较计时方式中的中断与非中断方式,及显示常用的LED 显示与液晶显示。

1.3.1 非中断方式与中断方式的比较在非中断方式设计常使用的方式为查询法,查询法的设计,可将定时/计数器8253的OUT引脚接至并行I/O扩展芯片8255的PA,PB,PC的任一口上,CPU通过不断的检测该引脚上的高低电平变化,来进行计数。

该方式的优点:实现思路相对简单;由于不要引入中断则可不用中断扩展芯片8259电路相对简单;该方式的缺点:由于CPU要不断的去检测单一引脚高低电平的变化,占用的时间比较长,利用率较低;与此同时,CPU要进行数据的运算与控制数据的传输,如果二者冲突,可能会发生计时不准的现象。

中断方式的设计思路,将定时/计数器8253的OUT脚接至中断扩展芯片8259的IR引脚上,定时器产生相同频率的计数脉冲,形成中断源。

8259再通过INTR引脚向CPU发出中断请求信号,CPU通过中断检测进行计数/计时。

该方式的主要缺点:由于芯片8259的引进,使电路相对复杂;该方式的主要优点是:用中断的方式可以大大提高CPU的利用效率,同时可以在该系统上进行更多功能的扩展,同时用中断的方式进行计数/计时,计时更加的准确可靠。

基于以上的考虑本设计,采用电路稍微复杂,但可靠性强,利用效率高的中断方式。

1.3.2 LED显示与液晶显的比较为完成本设计的要求,若采用LED则需6块以上,可以采用二片8255来驱动动这六片LED进行静态显示。

也可以采用动态扫描的方式,用一片8255加锁存器(如74LS573)来进行动态显示。

若采用液晶显示,则只需用一片8255芯片进行接口的扩展(具体扩展方案将在下面进行介绍),可以得到较为满意的显示效果,但操作的技巧性要求相对较高,成本相对较高。

不论从硬件电路驱动的复杂性,还是从软件设计的简洁性及整个系统的外观来看,时尚的液晶显示更能满足系统的需求。

鉴于以上考虑,本次设计采用操作要求相对较高的液晶进行数码显示。

1.4 总体方案设计思路本方按主要设计思路如右下图所示:以8086CPU最小系统为核心,控制可编程定时/计数器INTER 8253,可编程中断控制器8259A,可编程并行I/O接口芯片8255A。

通过8253的输出记数脉冲为8259产生中断源,8259将中断信号反馈到CPU,从而产生可屏蔽中断的申请信号,在CPU 的合理响应下进行计数,通过8255驱动16*2的液晶显示模块LCM1602进行时间显示。

第二章系统硬件设计在本章中,将分模块对本次设计的硬件设计进行简述,分块介绍系统的主要功能及连线方式。

2.1 8255与CPU之间的连接关系通过CPU与8255的读写控制线对接,有效的控制接口芯片的输入输出状态,用第11和12根地址线再加上2-4译码器的的Y0脚接8255片选,为8255的A,B,C及控制口分配了可靠的地址。

将8086的低八位数据线与8255数据端对接,为8255的输入输出提供数据。

由于为芯片提供的都是偶地址,系统默认访问低八位的数据线。

具体连线图见右图:2.2 8253与周边电路的连接关系在系统中定时/计数芯片8253主要与CPU及中断扩展芯片8259之间存在着连接关系。

同8255,8253的读写控制线与CPU的读写控制线对接,正确控制CPU对8253的读写控制(本次设计只用到了CPU往8253中写入数据,没用到读出状态的功能),第2和3位数据/地址复用线加上译码器的Y1端为8253的定时器0,1,2及控制口确定了可靠的地址(仅用到T0及控制地址),CPU低八位数据线为控制8253提供数据。

通过CLK0端引入时钟发生器所产生的标准时钟(本设计采用10KHZ的外部时钟),将OUT0接至8259的IR0引脚上,作为中断源。

具体电路如上示:2.3 8259与周边电路连接关系为了对8259进行合理分配奇、偶地址,从CPU引入了第A13作为地址线,再加上译码器的Y2端作为片选信号,8259获得了两个可靠的地址。

同8255与8253相似8086同样靠低八位的数据线,与8259进行数据交换。

IR0为8253的计数输出端,8259通过检测IR一组引脚的输入情况,经过中断判优以后,对当前优先级最高的中断进行响应,同时向CPU发送INTR信号请求中断,在可屏蔽中断允许的情况下CPU对其进行响应,返回INTA非的信号,8259此时发出当中断的中断类型号给8086。

程序跳到中断子程序的入口地址处去执行中断操作。

具体电路连线如右图所示:2.4 液晶显示模块与8255之间的连线关系液晶显示模块1602的数据线接在8255的A口上,通过对A口进行读写操作,为显示模块提供控制指令及显示数据。

8255的PC0和PC1分别接1602的RS(指令/数据控制脚)和EN(使能脚)上,控制指令/数据的输入。

其它引脚按典型接法接线,要说明的是,本次对1602只进行了写的操作,故将读写控制脚接低电平。

通过延时的方式来解决1602读写操作忙的问题(具体时序见第三章系统软件设计)。

连线图如右示:2.5 地址译码器与按键在本次设计中,由于有多片芯片要进行地址编码,使用了一片2-4译码器74LS139 进行译码,使地址编码更加的方便。

使用的CPU地址端口为第9和10号地址线,输出的Y0,Y1,Y2分别接8255,8253,8259。

由于设计要求,在本设计中进行了按键设计,其电路简单,当K未按下时输出为高电平,当K按下时输入给8255PB0口一个低电平,系统通过检测这一引脚是否为低电平来判断系统是否开始从当前时间开始计时。

具体设计电路图见2.6总体硬件电路图。

2.6 系统总体硬件电路图第三章系统软件设计3.1 编址及控制字的确定3.1.1 编址按照第二章硬件设计电路中,CPU对8253,8255,8259进行的地址分配地址(仅为在编程过程过要使用的地址进行编制),本设计所用编址无用位均置0;8253 定时器0的地址:0200H;控制口:020CH8255 A口地址:0;B口地址:0800H;C口地址:1000H;控制口:1800H 8259 奇地址:2400H;3.1.2 控制字根据系统的需要,合理选择各芯片的工作方式。

8253:选取定时器0,采用先写高八拉后写低八的初值写入方式,工作方式3—方波发生器,采取二进制的方式输入初值,从而CW=00110110B=36H 8255:分别选取A,C口为输出端口,B口为输入端口均采用工作方式0—简单的输入/输出方式,故工作方式控制字为;10000010B=82H;同时要对PC0和PC1进行复位和置位操作,其复位/置位控制字分别为:PCO复位/置位控制字为:0/01H;PC1口的置位/复位控制字:02H/03H8259:本设计中只有一片8259无从片,故无须写入ICW3,不需要写ICW4采用上升沿触发的方式可得:ICW1=00010010H=12H;使用60H号中断故ICW2=60H 3.2 分块子程序3.2.1 1602读写操作子程序如右图所示,为1602液晶显示的写时序图:1602的写操作通过不同的时序进行控制,可分为写指令操作(子程序WRITE-COM)和写数据(子程序WRITE-DATA)。

写指令的时序为,先拉低RS小延时(约0.5ms)后将EN拉低,小延时后拉高电平输入指令到液晶,然后拉低EN;写数据的操作时序与之基本类似,只是先拉低指令/数据控制信号RS,然后拉低EN。

相关主题