接口与通信课程设计解析Word下载.docx

上传人:b****6 文档编号:19207512 上传时间:2023-01-04 格式:DOCX 页数:13 大小:95.43KB
下载 相关 举报
接口与通信课程设计解析Word下载.docx_第1页
第1页 / 共13页
接口与通信课程设计解析Word下载.docx_第2页
第2页 / 共13页
接口与通信课程设计解析Word下载.docx_第3页
第3页 / 共13页
接口与通信课程设计解析Word下载.docx_第4页
第4页 / 共13页
接口与通信课程设计解析Word下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

接口与通信课程设计解析Word下载.docx

《接口与通信课程设计解析Word下载.docx》由会员分享,可在线阅读,更多相关《接口与通信课程设计解析Word下载.docx(13页珍藏版)》请在冰豆网上搜索。

接口与通信课程设计解析Word下载.docx

要有时钟对时功能

并方便操作

1.3设计思路

电子时钟主要由显示模块、对时模块和时钟运算模块三大部分组成。

其中对时模块和时钟运算模块要对时、分、秒的数值进行操作,并且秒计算到60时,要自己清零并向分进1;

分计算到60时,要自己清零并向时进1;

时计算到24时,要清零。

这样,才能循环记时。

第2章实现部分

2.1分析论证

1、显示模块

利用数码管的显示功能来设计。

数码管是由八个条形发光二极管组成的,这些发光二极管的阴极是互相连接在一起的,所以称为共阴极数码管。

通过在这八个发光二极管的阳极加+5V或0V的电压使不同的二极管发光,形成不同的字符和数字。

电子时钟用到的是0到9十个数字,他们所对应的字符表依次是3FH、06H、5BH、4FH、66H、6DH、7DH、07H、7FH、6FH。

该模块主要是将时钟运算模块和对时模块运算出来并存放在内存单元里的十六进制表示的时位和分位数据转化为十进制,并通过四个数码管显示出来。

该模块实现的硬件是TND86/88的LED-KEYBOARDUNIT。

2、时钟运算模块

该模块的主要功能是对时、分、秒的运算,并把运算出的最终结果存到事先已经开辟的内存单元里,以便显示模块即时地显示出来。

该模块可以细分为秒定时模块和运算模块。

秒定时模块负责提供中断信号,由于CPU运算模块中的指令消耗一定的时间,所以中断信号最好通过硬件来实现,可以选择TND86/88实验箱中的8253定时/计数器来提供,但又因为8253所能提供的信号的周期时毫秒级的,因此必须通过软件的方法在运算模块中设置一个统计中断次数的变量,并且这一变量必须事先在内存里开辟存储单元。

中断信号是8253的通道2工作方式为方式3时,产生一个40ms的脉冲信号。

运算模块负责时、分、秒的计算,该模块主要通过8259的IRQ7号中断来实现,首先将秒定时模块提供的中断信号为8259的IRQ7中断请求信号。

但由于每40ms一次中断请求。

所以在中断服务程序必须利用已申请内存单元count来统计中断请求的次数,只有当count的值为25时,才能让秒单元内的数值加1。

另外,在中断服务程序里,必须对秒、分和时的单元内的数值进行判断,当秒加到60时,分必须加1、秒清零;

当分加到60时,时加1、分清零。

当时加到24啊,直接清零。

3、对时模块

该模块主要功能是修改时、分内存单元的数值。

在对时的时候,秒应停止不变,并且在对分进行调整的时,时单元内的数值不变。

由以上分析可见,对时、分的调整用两个优先级高于IRQ7的中断来完成。

因此,可以用8259的IRQ2中断来实现,两个中断源的中断请求信号只需直接接在两个按键即可起到对时作用。

2.2设计电路图

电子时钟的完整电路图如下:

2.3原理说明

电子时钟主要由8259A中断控制器、8253定时/计数器、8255A接口芯片、LED数码显示管和两个按键组成。

主要用8259A的IRQ7的中断服务程序完成秒、分、时的运算即计时功能,IRQ6的中断服务程序完成调时、调分功能。

8253用来产生50ms的脉冲信号作为IRQ7的中断请求信号。

按键KK1+和KK2+分别作为IRQ2和IRQ6的中断请求信号。

按键KK1+启动/关闭对时功能。

它决定是否屏蔽IRQ7和IRQ6中断源。

8255A负责将内存里的时位和分位值输出到数码管

2.4元件功能说明

8259A的主要功能:

(1)每片8259A可管理8级优先级中断源,通过开关,最多可管理64级优先权的中断源。

(2)对任何一个级别的中断源都可单独进行屏蔽,使该级中断请求暂时被挂起,直到取消屏蔽时为止。

(3)能向CPU提供可编程的标识码。

(4)具有多种中断优先权管理方式。

有完全嵌套方式、自动循环方式、特殊循环方式、特殊屏蔽方式和查询方式五种。

这些管理方式均可通过程序动态地进行变化。

在本设计中用到了这四种功能,电子时钟的灵活调时功能就是通过对级别的屏蔽或开启来实现的。

8255A的主要功能:

可编程外设接口芯片可由程序改变其功能,通用性强、使用灵活。

通过8255A,CPU可直接同外设相连接,其负责CPU和外设之间的数据传送。

8253的主要功能:

可编程定时器/计数器,其定时与计数功能可由程序灵活地设定,设定后与CPU并行工作,不占用CPU的时间。

通道2工作在3方式下,提供计算一秒的中断请求信号。

2.5程序框图

2.6调试结果分析

将编写好的源程序输入,编译后出现很多错误,经过反复修改直到程序运行通过。

将生成的可执行程序装入TND86/88的内存里,在监控状态下运行程序,可是数码管显示的数字并不与理论计算值相符合,并且显示的数字不停地闪动,经过反复分析源程序发现问题出现在内存单元里时位和分位在转化为十进制时,存储转化的结果的地址空间的顺序弄混了。

数字闪动的原因应该出在显示子程序里,经过分析问题出在显示子程序里缺少延时程序。

编写延时子程序,并在显示子程序调用它;

编译源程序,装入生成的可执行文件,并运行。

数码管显示的数字与理论值相符合,并能正常计时,但当按动KK1+键时,却不能启动对时功能,按动KK2+时,也不能调时、调分。

问题很可能出在两键控制的中断源上,检查源程序也找不出错误,当把IRQ5换成IRQ2后,在进行调试,结果成功。

2.7程序清单

STACKSEGMENTSTACK

DW64DUP(?

STACKENDS

DATASEGMENT

HDW000CH

MDW0000H

SDW0000H

COUNTDW0000H

OFFDW0000H

TABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H

7FH,6FH

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

PUSHDS

MOVAL,81H

OUT63H,AL

MOVAX,0000H

MOVDS,AX

MOVAX,OFFSETIRQ2

ADDAX,2000H

MOVSI,0028H

MOV[SI],AX

MOVSI,002AH

MOVAX,OFFSETIRQ6

MOVSI,0038H

MOVSI,003AH

MOVAX,OFFSETIRQ7

MOVSI,003CH

MOVSI,003EH

MOVAL,0B6H

OUT43H,AL

MOVAL,68H

OUT42H,AL

MOVAL,0BAH

POPDS

MOVAL,7BH

OUT21H,AL

BEGIN:

CALLDIS

STI

JMPBEGIN

IRQ7:

INCCOUNT

CMPCOUNT,25

JNZRETURN

MOVAX,0

MOVCOUNT,AX

MOVAX,S

INCAX

MOVS,AX

CMPAX,003CH

MOVBX,M

INCBX

MOVM,BX

CMPBX,003CH

MOVBX,0

MOVM,BX

MOVDX,H

INCDX

MOVH,DX

CMPDX,0018H

MOVDX,0

RETURN:

MOVAL,20H

OUT20H,AL

IRET

IRQ6:

MOVAX,OFF

CMPAX,0001H

JNZHR

JNZR0

JMPR0

HR:

CMPAX,0002H

MOVBX,H

MOVH,BX

CMPBX,0018H

MOVH,BX

R0:

MOVAL,0BBH

IRET

IRQ2:

INCOFF

MOVBX,OFF

CMPBX,0003H

JZR1

CMPBX,0001H

JZR2

CMPBX,0002H

R1:

MOVBX,0000H

MOVOFF,BX

R2:

DIS:

PUSHAX

MOVSI,3000H

MOVAX,M

MOVBL,10

DIVBL

MOV[SI],AH

MOV[SI+1],AL

MOVAX,H

MOV[SI+2],AH

MOV[SI+3],AL

MOVDL,0F7H

MOVAL,DL

AGAIN:

OUT60H,AL

MOVAL,[SI]

MOVBX,OFFSETTABLE

ANDAX,00FFH

ADDBX,AX

MOVAL,[BX]

OUT61H,AL

CALLDALLY

INCSI

TESTAL,01H

JZOUT

RORAL,1

MOVDL,AL

JMPAGAIN

OUT:

POPAX

RET

DALLY:

PUSHCX

MOVCX,000FH

T1:

MOVAX,0020H

T2:

DECAX

JNZT2

LOOPT1

POPCX

CODEENDS

ENDSTART

第三章电子时钟使用说明

本电子时钟可以24小时循环计时,并且具有调时功能,操作方法如下:

开机运行后,即显示初始时间12:

00整。

按动一下KK1+按键即可启动调分,此时每按动一下KK2+按键分位数字加1,完成对分的调整;

再按动一下KK1+按键启动调分,此时每按动一下KK2+按键时位加1,完成对时的调整。

再按一下KK1+按键即关闭功能,正常计时。

第四章心得体会

短短的一周半就这么过去了,通过这次短暂的课程设计,不仅使我加深了对接口程序设计的认识,对接口各部件的工作原理也有了进一步的了解,也增强了分析故障的能力.上课的时候对什么8255A,8259A的工作方式就一知半解,通过的这次课程设计,通过设计,看书,终于有了比较深刻地了解.通过这次课程设计,虽然花费了很多时候,效果做得也不是很好,但却加深对汇编程序结构,指令,中断,调用等基础知识的认识。

在过程中,我深刻体会到汇编语言的难度是比较高的,要求非常严密的逻辑思维能力,中断运用是整个汇编语言的核心,离开了中断,整个汇编大厦将会墙倒楫倾。

同时明白在程序的设计时,互相交流学习和讨论,将会开拓视野,启迪灵感。

当然还要有坚持不懈的精神!

参考文献:

1、《微型计算机技术》

2、《TDN86/88实验指导书》阎有运、郭顺京编

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1