汇编实验之汇编电子时钟.docx
- 文档编号:2125952
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:15
- 大小:95.26KB
汇编实验之汇编电子时钟.docx
《汇编实验之汇编电子时钟.docx》由会员分享,可在线阅读,更多相关《汇编实验之汇编电子时钟.docx(15页珍藏版)》请在冰豆网上搜索。
汇编实验之汇编电子时钟
汇编语言与微机原理课程设计报告
专业:
姓名:
学号:
第一章设计部分
1.1设计目的
1、熟练掌握TND86/88教学系统的基本操作和调试程序的各种指令。
2、熟悉编程及调试程序的方法。
3、掌握8259中断控制器的工作原理和应用编程方法,练习编写中断程序的方法。
4、掌握8255的各种工作方式及其应用编程。
5、掌握8253定时/计数器的工作原理、工作方式及其应用编程。
6、练习LED-KEYBOARDUNIT的使用方法和数码管的显示编程方法。
1.2设计要求
1、用微机原理实验箱提供的数码管和按键做。
2、电子时钟具有二十四小时循环记时功能,走时要准。
要有时钟对时功能并方便操作
1.3设计思路
电子时钟主要由显示模块、对时模块和时钟运算模块三大部分组成。
其中对时模块和时钟运算模块要对时、分、秒的数值进行操作,并且秒计算到60时,要自己清零并向分进1;分计算到60时,要自己清零并向时进1;时计算到24时,要清零。
这样,才能循环记时。
第二章实现部分
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
MOVAX,0000H
MOVSI,002AH
MOV[SI],AX
MOVAX,OFFSETIRQ6
ADDAX,2000H
MOVSI,0038H
MOV[SI],AX
MOVAX,0000H
MOVSI,003AH
MOV[SI],AX
MOVAX,OFFSETIRQ7
ADDAX,2000H
MOVSI,003CH
MOV[SI],AX
MOVAX,0000H
MOVSI,003EH
MOV[SI],AX
MOVAL,0B6H
OUT43H,AL
MOVAL,68H
OUT42H,AL
MOVAL,0BAH
OUT42H,AL
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
JNZRETURN
MOVAX,0
MOVS,AX
MOVBX,M
INCBX
MOVM,BX
CMPBX,003CH
JNZRETURN
MOVBX,0
MOVM,BX
MOVDX,H
INCDX
MOVH,DX
CMPDX,0018H
JNZRETURN
MOVDX,0
MOVH,DX
RETURN:
MOVAL,7BH
OUT21H,AL
MOVAL,20H
OUT20H,AL
IRET
IRQ6:
MOVAX,OFF
CMPAX,0001H
JNZHR
MOVBX,M
INCBX
MOVM,BX
CMPBX,003CH
JNZR0
MOVBX,0
MOVM,BX
JMPR0
HR:
CMPAX,0002H
JNZR0
MOVBX,H
INCBX
MOVH,BX
CMPBX,0018H
JNZR0
MOVBX,0
MOVH,BX
R0:
MOVAL,0BBH
OUT21H,AL
MOVAL,20H
OUT20H,AL
IRET
IRQ2:
INCOFF
MOVBX,OFF
CMPBX,0003H
JZR1
CMPBX,0001H
JZR2
CMPBX,0002H
JZR2
R1:
MOVBX,0000H
MOVOFF,BX
MOVAL,7BH
OUT21H,AL
MOVAL,20H
OUT20H,AL
IRET
R2:
MOVAL,0BBH
OUT21H,AL
MOVAL,20H
OUT20H,AL
IRET
DIS:
PUSHAX
MOVSI,3000H
MOVAX,M
MOVBL,10
DIVBL
MOV[SI],AH
MOV[SI+1],AL
MOVAX,H
MOVBL,10
DIVBL
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
MOVAL,DL
TESTAL,01H
JZOUT
RORAL,1
MOVDL,AL
JMPAGAIN
OUT:
POPAX
RET
DALLY:
PUSHCX
MOVCX,000FH
T1:
MOVAX,0020H
T2:
DECAX
JNZT2
LOOPT1
POPCX
RET
CODEENDS
ENDSTART
第三章电子时钟使用说明
本电子时钟可以24小时循环计时,并且具有调时功能,操作方法如下:
开机
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 实验 电子 时钟