计算机控制技术实验报告
实验一 系统认识及程序调试练习
实验目的
1.掌握TD-ACC+实验教学系统联机软件中的各菜单功能,熟练掌握其中的程序编辑、编译、链接、加载及调试方法。
2.了解TD-ACC+实验教学系统的系统资源及硬件操作环境。
实验设备
PC 机一台,TD-ACC+实验系统一套
实验内容
1.阅读“第一部分 i386EX 系统板介绍”,了解TD-ACC+实验教学系统的构成;
流程图转换为ns图2.读懂实验程序,对实验程序进行编辑、编译、链接、加载及调试练习。
实验原理
调试下列程序:在显示器上显示一行26个英文字母,换行后重复进行。
第一种实现方法:显示两行字母之间的延时时间采用软件延时方式。
实验程序1(采用软件延时方式)
CODE SEGMENT
ASSUME CS:CODE
START: MOV CX,001AH ;显示字符个数(26)→CX
MOV AH, 01
MOV AL, 13
INT 10H ;显示换行
CALL DELAY ;调用延时子程序
MOV AL,41H ;送字符‘A’的ASCⅡ码
AGAIN: MOV AH,01 ;显示一个字符
INT 10H
INC AL ;下一显示字符的ASCⅡ码
LOOP AGAIN ;连续显示26个字母
JMP START ;重复进行
DELAY: PUSH CX ;延时子程序
MOV CX,0FFFFH
DEL1: PUSH AX
POP AX
LOOP DEL1
POP CX
RET
CODE ENDS
END START
第二种实现方法:显示两行字母之间的间隔时间用内部定时器8254进行控制,时间到由定时器的OUT端发出脉冲信号到中断控制器8259的中断信号输入端,向CPU请求中断,在中断程序中完成显示一行字母的功能。
硬件接线如图1-1,用排线将i386内部1#定时器输出OUT1连接到8259的一个中断请求端IRQ7。
8254与8253类似,它们的编程方式是兼容的,其控制字格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
SC1 | SC0 | RW1 | RW0 | M2 | M1 | M0 | BCD |
SC1 SC0——所选计数器
0 0 计数器0
0 1 计数器1
1 0 计数器2
1 1 无意义
RW1 RW0——读/写格式
0 0 锁定当前计数值(供CPU读取)
0 1 只读/写低8位
1 0 只读/写高8位
1 1 先读/写低8位,后读/写高8位
M2 M1M0——工作方式选择
0 0 0 方式0
0 0 1 方式1
X 1 0 方式2
X 1 1 方式3
1 0 0 方式4
1 0 1 方式5
BCD——计数格式
0 计数器按二进制格式计数
1 计数器按BCD码格式计数
实验程序2(采用定时中断方式)
CODE SEGMENT
ASSUME CS:CODE
START: MOV AX,OFFSET IRQ7;填写8259的7号中断矢量入口地址的偏移量
MOV SI,003CH ;填写8259中断7的中段矢量
MOV [SI],AX ;填偏移量矢量
MOV AX,CS ;填写8259中断矢量入口地址的段地址
MOV SI,003EH ;填写7号中断段地址矢量
MOV [SI],AX
CLI ;关系统总中断
CALL SYSINTI ;调用系统初始化子程序
MOV DX,0F043H
MOV AL,076H ;初始化1#定时器
OUT DX,AL
MOV DX,0F041H
MOV AL,10H ;定时10ms时间常数低8位
OUT DX,AL ;写1#定时器定时常数的低字节
MOV X,0F041H
MOV AL,27H ;定时10ms时间常数高8位
OUT DX,AL ;写1#定时器定时常数的高字节
MOV BX,64H
MOV AH, 01
MOV AL, 13
INT 10H ;显示换行
AGAIN: STI ;打开系统总中断
HLT ;停机等待直到有中断产生
JMP AGAIN ;继续
IRQ7: DEC BX
JNZ FINISH
MOV BX,64H
MOV CX,001AH
MOV AL,41H
AGAIN1: MOV AH,01
INT 10H
INC AL
LOOP AGAIN1
MOV AH, 01
MOV AL, 13
INT 10H
FINISH: MOV AL,20H ;中断结束
OUT 20H,AL
IRET ;中断返回
SYSINTI: MOV AX,8000H ;系统初始化子程序(已保存在机器中)
OUT 23H,AL ;扩展IO使能
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论