微机课程设计--电子秒表
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MOV AH,3H[SI];检测时位
CMP AH,23;满24清零,重新计数
JZ S6
INC AH
MOV 3H[SI],AH
S6:CALLCHU
MOV CX,3
S5:CALL DIS
LOOPS5
CALL DELAY1S
INC BYTE PTR[SI]
RET
JISHU ENDP
CHU PROC;数处理子程序
微
机
原
理
课程设计报告书
课题名称:电子秒表
2.3系统功能框图……………………………………………………6
2.4程序流程图………………………………………………………7
第4章实施结果……………………………………………………14
第5章课程设计体会………………………………………………15
第6章参考文献……………………………………………………16
A2 EQU 0200H;8253通道0地址
CTR2 EQU 0206H;8253控制口地址
A3 EQU 0100H
DATA SEGMENT
TABDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
BUF DB 0,0,0,0;毫秒——秒——分——时
2.1电路原理图
2.2硬件连接示意图
1、8086部分
2、8253部分
3、8255部分
2.3系统功能框图
2.4程序流程图
第3章 汇编源程序代码
源程序如下:
A1 EQU 0000H;8255A口地址
B1 EQU 0002H;8255B口地址
C1 EQU 0004H;8255C口地址
CTR1 EQU 0006H;8255控制口地址
MOV CX,14
CLD
REP STOSB
CALL DIS
QINLIN ENDP
KEY PROC;读取键盘程序
MOV DX,C1
IN AL,DX
RET
KEY ENDP
CODE ENDS
END START
第4章 实施结果
第5章 课程设计体会
心得体会:
通过此次的课程设计,我学会了许多在课堂上学不到的知识。有一些知识只有你自己亲身去实践,去发现问题,然后依靠自己解决了问题,你才能真正掌握。
CALL QP
LEA BX,TAB
ROR AH,1
INC DI
LOOPLOOP1
POP CX
POP BX
RET
DIS ENDP
DELAY1S PROC NEAR;8253延时子程序
PUSH DX
PUSH AX
MOV DX,CTR2;8253写入控制字
MOV AL,00110000B;计数器0方式0(计数结束产生中断)
CALL KEY
TEST AL,2H
JZ N1
TEST AL,4H
JZ N5
LEA DI,BUF2
MOV BH,[DI]
INC BH
MOV [DI],BH
TEST BH,1H
JNZ N2
JMP N3
IRET
INTR_KEY ENDP
QINLIN PROC;键盘清零子程序
MOV AX,0
LEA DI,BUF
OUTDX,AL
N3:CALL JISHU
JMP N3
N2: LEA SI,BUF2
MOV BH,00H
MOV BL,1H[SI]
LEA DI,BUF3
ADD DI,BX
ADD BL,8
MOV 1H[SI],BL
LEA SI,BUF1
CLD
MOV CX,8
REP MOVSB
N4:CALL DIS
JMP N4
利用8253定时/计数器芯片实现分频功能,使其产生100HZ(10毫秒)的方波,使计时周期为10ms,通过产生100次中断使秒表加1,实现计时功能;利用8255芯片输出功能在数码管上显示,将秒表的计时过程、时钟的当前时间显示在数码管上。
1.2实验环境
硬件环境:微型计算机
软件环境:Proteus软件
第2章 设计原理及方案
通过本次实验,我对8255,8253芯片都有了进一步的了解,尤其是8255的各种控制字及8253的各种功能,还对程序的调试有了进一步的掌握。在课设过程中,通过翻阅书籍,咨询同学,上网找资料,不但提高了我的查找能力,而且还提高了自己快速融合各种信息,并将其转变为自己的知识的能力。而且,从这次课程设计活动中我认识到了一定要认真对待每一个问题,因为,很有可能就在一个你不注意的地方导致你失败。
INC AH
MOV 1H[SI],AH
JMP S6
S2: MOV AH,0;秒位清零
MOV 1H[SI],AH
MOV AH,2H[SI];检测分位
CMP AH,59;满60时位加1
JZ S4
INC AH
MOV 2H[SI],AH
JMP S6
S4: MOV AH,0;分位清零
பைடு நூலகம்MOV 2H[SI],AH
总之,这次课设是自己用心去完成的一项工作,但,由于本人水平有限能力有限,此次课程设计还有很多不足,敬请老师谅解!在此次课设中,得到了老师及同学不少帮助,所以,我在这里要衷心地感谢老师的耐心指导以及同学们的热心帮助!
PUSH SI
PUSH BX
MOV BL,4
LEA DI,BUF1
LEA SI,BUF
NEXT:LODSB
MOV AH,00
MOV CL,10
DIV CL;除以10显示在数码上
XCHG AH,AL
STOSB
MOVAL,AH
STOSB
DEC BL
JNZ NEXT
POP BX
POP SI
RET
CHUENDP
JMP N1
;JMP START
JISHU PROC NEAR;计数子程序
LEA SI,BUF
MOV BL,[SI]
CMP BL,100;满100秒表加1
JNZ S6
S1: MOV BL,0;毫秒位清零
MOV [SI],BL
MOV AH,1H[SI];检测秒位
CMP AH,59;满60分位加1
JZ S2
BUF1 DB 0,0,0,0,0,0,0,0;8位数码管显示
BUF2 DB 0,0;前为第一开关次数
BUF3 DB 80 DUP(?)
DATA ENDS
CODE SEGMENT 'CODE'
ASSUME DS:DATA,CS:CODE
START: MOV AX,DATA
MOV DS,AX
;设中段入口地址设置
第1章 设计内容
1.1基本内容和主要功能
根据课程设计任务书的内容与要求,要设计一个带时间显示的电子秒表,设计两个按钮,一个带有计时开始、计时暂停功能,另一个带有计时清零功能,还要可以进行时钟显示。在本次设计中主要使用了8255芯片输入输出功能、8253定时/计数器芯片来完成电子秒表的计时过程和时钟显示过程的模拟。
OUTDX,AL
MOV DX,A2
MOV AL,01H
OUTDX,AL
MOV AL,00H
OUTDX,AL
MOV DX,A3
M1: IN AL,DX
TEST AL,01H
JZ M1
POP AX
POP DX
RET
DELAY1S ENDP
QP PROC NEAR;清屏子程序
MOVAL,0FFH
MOV DX,B1
N5: LEA SI,BUF2
MOV BH,00H
MOV BL,1H[SI]
CMP BL,0
JZ N1
LEA DI,BUF1
SUB BL,8
MOV 1H[SI],BL
LEA SI,BUF3
ADD SI,BX
CLD
MOV CX,8
REP MOVSB
N6:CALL DIS
JMP N6
N1: CALL QINLIN
MOV AX,0
MOV ES,AX
MOV DI,08
MOV AX,OFFSET INTR_KEY
CLD
STOSW
MOV AX,SEG INTR_KEY
STOSW
MOV AX,DATA
MOV ES,AX
;8255写入控制字
MOV AL,10001001B;A、B口方式0输出,C口作输入口
MOV DX,CTR1
DIS PROC NEAR;显示BUF1中的值
PUSH BX
PUSH CX
LEA BX,TAB
LEA DI,BUF1
MOV CX,8
MOV AH,7FH
LOOP1: MOV AL,[DI]
XLAT
MOV DX,A1
OUTDX,AL
MOV DX,B1
MOVAL,AH
OUTDX,AL
MOV BH,1
CALL DELAY
OUTDX,AL
RET
QP ENDP
DELAY PROC NEAR;内部延时之程序
PUSH BX
PUSH CX
WAIT0: MOV CX,06H
WAIT1:LOOPWAIT1
DEC BH
JNZ WAIT0
POP CX
POP BX
RET
DELAY ENDP
INTR_KEY PROC NEAR;中断服务子程序
CMP AH,23;满24清零,重新计数
JZ S6
INC AH
MOV 3H[SI],AH
S6:CALLCHU
MOV CX,3
S5:CALL DIS
LOOPS5
CALL DELAY1S
INC BYTE PTR[SI]
RET
JISHU ENDP
CHU PROC;数处理子程序
微
机
原
理
课程设计报告书
课题名称:电子秒表
2.3系统功能框图……………………………………………………6
2.4程序流程图………………………………………………………7
第4章实施结果……………………………………………………14
第5章课程设计体会………………………………………………15
第6章参考文献……………………………………………………16
A2 EQU 0200H;8253通道0地址
CTR2 EQU 0206H;8253控制口地址
A3 EQU 0100H
DATA SEGMENT
TABDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
BUF DB 0,0,0,0;毫秒——秒——分——时
2.1电路原理图
2.2硬件连接示意图
1、8086部分
2、8253部分
3、8255部分
2.3系统功能框图
2.4程序流程图
第3章 汇编源程序代码
源程序如下:
A1 EQU 0000H;8255A口地址
B1 EQU 0002H;8255B口地址
C1 EQU 0004H;8255C口地址
CTR1 EQU 0006H;8255控制口地址
MOV CX,14
CLD
REP STOSB
CALL DIS
QINLIN ENDP
KEY PROC;读取键盘程序
MOV DX,C1
IN AL,DX
RET
KEY ENDP
CODE ENDS
END START
第4章 实施结果
第5章 课程设计体会
心得体会:
通过此次的课程设计,我学会了许多在课堂上学不到的知识。有一些知识只有你自己亲身去实践,去发现问题,然后依靠自己解决了问题,你才能真正掌握。
CALL QP
LEA BX,TAB
ROR AH,1
INC DI
LOOPLOOP1
POP CX
POP BX
RET
DIS ENDP
DELAY1S PROC NEAR;8253延时子程序
PUSH DX
PUSH AX
MOV DX,CTR2;8253写入控制字
MOV AL,00110000B;计数器0方式0(计数结束产生中断)
CALL KEY
TEST AL,2H
JZ N1
TEST AL,4H
JZ N5
LEA DI,BUF2
MOV BH,[DI]
INC BH
MOV [DI],BH
TEST BH,1H
JNZ N2
JMP N3
IRET
INTR_KEY ENDP
QINLIN PROC;键盘清零子程序
MOV AX,0
LEA DI,BUF
OUTDX,AL
N3:CALL JISHU
JMP N3
N2: LEA SI,BUF2
MOV BH,00H
MOV BL,1H[SI]
LEA DI,BUF3
ADD DI,BX
ADD BL,8
MOV 1H[SI],BL
LEA SI,BUF1
CLD
MOV CX,8
REP MOVSB
N4:CALL DIS
JMP N4
利用8253定时/计数器芯片实现分频功能,使其产生100HZ(10毫秒)的方波,使计时周期为10ms,通过产生100次中断使秒表加1,实现计时功能;利用8255芯片输出功能在数码管上显示,将秒表的计时过程、时钟的当前时间显示在数码管上。
1.2实验环境
硬件环境:微型计算机
软件环境:Proteus软件
第2章 设计原理及方案
通过本次实验,我对8255,8253芯片都有了进一步的了解,尤其是8255的各种控制字及8253的各种功能,还对程序的调试有了进一步的掌握。在课设过程中,通过翻阅书籍,咨询同学,上网找资料,不但提高了我的查找能力,而且还提高了自己快速融合各种信息,并将其转变为自己的知识的能力。而且,从这次课程设计活动中我认识到了一定要认真对待每一个问题,因为,很有可能就在一个你不注意的地方导致你失败。
INC AH
MOV 1H[SI],AH
JMP S6
S2: MOV AH,0;秒位清零
MOV 1H[SI],AH
MOV AH,2H[SI];检测分位
CMP AH,59;满60时位加1
JZ S4
INC AH
MOV 2H[SI],AH
JMP S6
S4: MOV AH,0;分位清零
பைடு நூலகம்MOV 2H[SI],AH
总之,这次课设是自己用心去完成的一项工作,但,由于本人水平有限能力有限,此次课程设计还有很多不足,敬请老师谅解!在此次课设中,得到了老师及同学不少帮助,所以,我在这里要衷心地感谢老师的耐心指导以及同学们的热心帮助!
PUSH SI
PUSH BX
MOV BL,4
LEA DI,BUF1
LEA SI,BUF
NEXT:LODSB
MOV AH,00
MOV CL,10
DIV CL;除以10显示在数码上
XCHG AH,AL
STOSB
MOVAL,AH
STOSB
DEC BL
JNZ NEXT
POP BX
POP SI
RET
CHUENDP
JMP N1
;JMP START
JISHU PROC NEAR;计数子程序
LEA SI,BUF
MOV BL,[SI]
CMP BL,100;满100秒表加1
JNZ S6
S1: MOV BL,0;毫秒位清零
MOV [SI],BL
MOV AH,1H[SI];检测秒位
CMP AH,59;满60分位加1
JZ S2
BUF1 DB 0,0,0,0,0,0,0,0;8位数码管显示
BUF2 DB 0,0;前为第一开关次数
BUF3 DB 80 DUP(?)
DATA ENDS
CODE SEGMENT 'CODE'
ASSUME DS:DATA,CS:CODE
START: MOV AX,DATA
MOV DS,AX
;设中段入口地址设置
第1章 设计内容
1.1基本内容和主要功能
根据课程设计任务书的内容与要求,要设计一个带时间显示的电子秒表,设计两个按钮,一个带有计时开始、计时暂停功能,另一个带有计时清零功能,还要可以进行时钟显示。在本次设计中主要使用了8255芯片输入输出功能、8253定时/计数器芯片来完成电子秒表的计时过程和时钟显示过程的模拟。
OUTDX,AL
MOV DX,A2
MOV AL,01H
OUTDX,AL
MOV AL,00H
OUTDX,AL
MOV DX,A3
M1: IN AL,DX
TEST AL,01H
JZ M1
POP AX
POP DX
RET
DELAY1S ENDP
QP PROC NEAR;清屏子程序
MOVAL,0FFH
MOV DX,B1
N5: LEA SI,BUF2
MOV BH,00H
MOV BL,1H[SI]
CMP BL,0
JZ N1
LEA DI,BUF1
SUB BL,8
MOV 1H[SI],BL
LEA SI,BUF3
ADD SI,BX
CLD
MOV CX,8
REP MOVSB
N6:CALL DIS
JMP N6
N1: CALL QINLIN
MOV AX,0
MOV ES,AX
MOV DI,08
MOV AX,OFFSET INTR_KEY
CLD
STOSW
MOV AX,SEG INTR_KEY
STOSW
MOV AX,DATA
MOV ES,AX
;8255写入控制字
MOV AL,10001001B;A、B口方式0输出,C口作输入口
MOV DX,CTR1
DIS PROC NEAR;显示BUF1中的值
PUSH BX
PUSH CX
LEA BX,TAB
LEA DI,BUF1
MOV CX,8
MOV AH,7FH
LOOP1: MOV AL,[DI]
XLAT
MOV DX,A1
OUTDX,AL
MOV DX,B1
MOVAL,AH
OUTDX,AL
MOV BH,1
CALL DELAY
OUTDX,AL
RET
QP ENDP
DELAY PROC NEAR;内部延时之程序
PUSH BX
PUSH CX
WAIT0: MOV CX,06H
WAIT1:LOOPWAIT1
DEC BH
JNZ WAIT0
POP CX
POP BX
RET
DELAY ENDP
INTR_KEY PROC NEAR;中断服务子程序