青岛科技大学微机原理与应用实验指导书
更新时间:2024-03-10 13:22:01 阅读量: 综合文库 文档下载
微机原理与应用实验指导书
目录
实验一 调试工具DEBUG的使用及基本指令用法 ........................ 2 实验二 宏汇编程序的基本语法及运算类程序编制 ..................... 4 实验三 系统功能调用 ..................................................................... 7 实验四 汇编语言码制转换程序设计 ............................................. 9 实验五 简单I/O接口的操作 ........................................................ 12 实验六 可编程并行接口芯片8255A的使用 .............................. 14 实验七 查询方式的串行通讯接口实验 ....................................... 21 实验八 A/D、DA转换实验 ......................................................... 22
32位微机原理与接口技术实验指导
实验一 调试工具debug的使用及基本指令用法
1、实验目的
(1)掌握debug调试工具的使用方法。 (2)测试8086的各种基本指令的用法。
2、实验设备
PC机一台或QTH-2008PC实验设备一套。 3、实验内容 (1)debug的使用 ① debug的进入和退出
c:\\masm>debug↙ - ?这是debug的提示符,在此可以输入debug的命令 -q↙ ?退出debug
② 及修改CPU内部的各寄存器
-r↙ ?观察各寄存器的内容
AX=0000 BX=0000 CX=0000 DX=0000 SP=CFDE BP=0000 SI=0000 DI=0000
DS=10DD ES=10DD SS=10DD CS=10DD IP=0100 NV UP DI PL NZ NA PO NC
10DD:0100 7C0A JL 010C
-r ax ↙ ?显示并修改AX的内容 AX 0000
:1234↙ ?将AX的内容改为1234H
-rf↙ ?显示并修改标志寄存器的内容
NV UP DI PL NZ NA PO NC -ov dn↙ ?将标志寄存器的OF置为OV;DF置为DN。 ③ 观察观察和修改内存单元的内容
-d 2000↙ ?查看从地址DS:2000H开始的128个单元的内容 10DD:2000 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 10DD:2010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 10DD:2020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
2
32位微机原理与接口技术实验指导
10DD:2030 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 10DD:2040 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 10DD:2050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ -e 2000↙ ?修改从地址DS:2000H开始内存单元的内容 10DD:2000 00.01 00.02 ↙ ?划线数字为键入的内容,连续修改按空格键 ④ 输入程序
-a 100↙ ?从CS:100H处开始输入程序(默认的程序起始地址) 10DD:0100 mov ax,1234↙ ?输入汇编指令 10DD:0103 mov [2002],ax↙
10DD:0106↙ ?回车退出程序输入
-a 103↙ ?修改103处的指令 10DD:0103 mov [2000],ax↙ ?输入汇编指令 10DD:0106↙ -
⑤ 单步执行程序
-t=100↙ ?执行CS:100H处的一条指令,自动显示寄存器内容及下一条指令。 AX=1234 BX=0000 CX=0000 DX=0000 SP=CFDE BP=0000 SI=0000 DI=0000 DS=10DD ES=10DD SS=10DD CS=10DD IP=0103 OV DN DI PL NZ NA PO NC 10DD:0103 A30020 MOV [2000],AX DS:2000=0201 -t↙ ?继续执行下一条指令 ⑥ 反汇编程序
-u 100↙ ?从CS:100H处开始反汇编 10DD:0100 B83412 MOV AX,1234
10DD:0103 A30020 MOV [2000],AX ?刚才输入的两条指令 10DD:0106 36 SS: ?乱码 10DD:0107 A22C41 MOV [412C],AL 10DD:010A EB22 JMP 012E 10DD:010C 83F906 CMP CX,+06 10DD:010F 750D JNZ 011E
10DD:0111 807C0A2C CMP BYTE PTR [SI+0A],2C 10DD:0115 7505 JNZ 011C 10DD:0117 FF36A22C PUSH [2CA2] 10DD:011B 41 INC CX 10DD:011C EB10 JMP 012E
3
32位微机原理与接口技术实验指导
10DD:011E 83F909 CMP CX,+09 ⑦ 执行一段程序
-g=100 106↙ ?从CS:100H开始,执行到CS:106处停止。
AX=1234 BX=0000 CX=0000 DX=0000 SP=CFDE BP=0000 SI=0000 DI=0000
DS=10DD ES=10DD SS=10DD CS=10DD IP=0106 OV DN DI PL NZ NA PO NC 10DD:0106 36 SS:
10DD:0107 A22C41 MOV [412C],AL SS:412C=00 ……
(2)基本指令的用法
在debug中输入一些基本指令并执行,观察并记录指令的执行情况。 4、实验步骤
(1) 启动Debug调试工具,根据实验内容,验证Debug命令及指令执行情况。 (2) 观察调试过程中指令执行后各寄存器及数据区的内容。 5、实验问题探讨
(1)如何利用Debug去观察中断向量表?
(2)机器复位后执行的第一条指令在哪儿?是什么指令? (3)在debug中输入16进制数时,需要键入H吗?
(4)从当前位置开始执行指令到CS:0212H处,在Debug中应该使用什么命令?
实验二 宏汇编程序的基本语法及运算类程序编制
1、实验目的
(1) 学习及掌握汇编语言源程序的书写格式和要求,明确程序中各段的功能和相互
之间的关系。 (2) 熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。 (3) 掌握利用汇编实现简单、分支、循环结构设计 2、实验设备
PC机一台或QTH-2008PC实验设备一套。 3、实验内容
(1)编制包含多种数据定义伪指令的完整程序,经汇编、连接后,装入DEBUG, 观察
4
32位微机原理与接口技术实验指导
数据的存储情况,从而掌握常用伪指令的作用。举例:
…
X1 DB 12H, ’AB’ X2 DW 12H, ’AB’ NUM=$-X1 X3 DD 12H ;以上数据在内存中如何存放? …
PUSH DS XOR AX,AX PUSH AX
MOV AX,DATA MOV DS,AX …
MOV AL,X1 ;翻译成机器指令是什么格式? MOV AX,X2 ;? MOV BL,NUM ;? …
在debug中执行完MOV DS,AX指令后(为什么?),使用 -d 0 观察数据段的存储单元的数据存储情况。
(2)在内存BUF开始的单元中,存放着一组无符号字节数据,编程查找其中最大值并存于MAX单元中。 4、编程指导
利用循环程序实现查找最大值,取出第一个数作为最大值初值,以次和后续数据进行比较比次数大则替换,否则保持不变.比较次数为个数减1.注意使用汇编、连接、调试的方法,尤其是DEBUG的使用。在DEBUG状态下执行程序并设置断点,通过察看内存,看程序是否执行正确。
所编写的汇编程序,要注意结构,只有结构完整,汇编才能通过。 5、实验步骤
方法一、非集成开发环境
(1) 使用EDIT或WINDOWS下的记事本或写字板输入你的程序并保存到c:\\masm
目录下,命名为t3.asm(后缀必须是asm).
(2) 汇编过程:c:\\masm>masm t3; ?如果没有错误,将生成t3.obj文件 (3) 连接过程:c:\\masm>link t3; ?如果没有连接错误,将生成t3.exe文件 (4) 调试程序:c:\\masm>debug t3.exe ?将该程序装入debug进行调试。
方法二、使用QTHPC2008集成开发环境,建立项目文件、输入源程序、编译、连接、调试。
5
32位微机原理与接口技术实验指导
6、参考程序
AL>[SI]开始初始化取数送AL指针加1Y
NNAL? [SI]CX-1=0?Y存结果结束 图3-1 查找最大值程序流程图 DATA SEGMENT ;数据段定义 MOV DS,AX BUF DB 30,25,56,100,78,97,45,34,44 COUNT EQU $-BUF MAX DB ? MIN DB ? DATA ENDS
STACK SEGMENT PARA STACK 'STA' ;堆栈段 DB 100 DUP(?) STACK ENDS
CODE SEGMENT ;代码段定义 ASSUME CS:CODE,DS:DATA,SS:STACK MAIN PROC FAR
START: PUSH DS ;前三句构造返回指针 MOV AX,0 PUSH AX
MOV AX,DATA ;对数据段赋值
MOV CX,COUNT ;数据个数 MOV SI,OFFSET BUF MOV AL,[SI]
DEC CX ;循环次数为个数减1 AGA: INC SI CMP AL,[SI] JA NEXT MOV AL,[SI] NEXT: LOOP AGA
MOV MAX,AL ;结果处理 EXIT: RET MAIN ENDP CODE ENDS END START
7 实验问题探讨
(1) 伪指令中的表达式是在什么阶段进行运算得出结果的? (2) 如果数据为一组有符号数,如何修改?
(3) 如果在查找最大值的同时查找最小值并存于MIN单元中,应如何实现?
6
32位微机原理与接口技术实验指导
实验三 系统功能调用
1. 实验目的
(1) 掌握系统调用的方法, 包括入口参数设置,功能号设置,系统调用和出口参数获
得。 (2) 进一步熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法,尤其
是对带有中断调用的汇编程序的调试。 (3) 掌握利用汇编实现键盘输入,屏幕显示的程序设计。 2、实验仪器
PC机一台或QTH-2008PC实验设备一套。 3. 实验内容
(1) 利用汇编语言实现以下过程:首先在屏幕显示What is your name: 然后等待用户
从键盘输入姓名存入内存指定区间,输出回车换行后,显示ok!。 (2) 从键盘输入一串字符以空格为结束标记,并按逆序显示输出。 4. 编程指导
DOS 功能调用的一般步骤为:
① 如有必要,装入入口参数到规定的寄存器;
② 装入功能号到 AH 中;如有必要,装入子功能号到 AL 中; ③ 调用 DOS 相应功能的中断 ( 这里一般指 INT 21H ); ④ 如有必要,取出返回结果或出错信息
利用DOS系统功能调用可以实现读键盘、显示,对磁盘、文件的操作、输入输出操作、时间的设置和读取等。
注意对于包含有系统功能调用的汇编程序的调试方法,在单步调试时当遇到 INT 21H 指令时不能用 T 命令跟踪,因为会进入到中断服务程序内部,这并不是我们所关心的。结决的方法为:在单步执行INT 21H 时,可用G命令代替T命令,G 不用接起始地址,断点为INT 21H 的下一句地址。或者,有一些DEBUG 工具包含V 或 B 命令可以不进入中断服务程序内部,而实现单步运行。
7
32位微机原理与接口技术实验指导
5.编程参考 (1) 程序流程图
(2) 实验内容(1)参考程序
DATA SEGMENT ;数据段定义 STR1 DB 'What is you name:$' STR2 DB 'OK!$' STR3 DB 20 DB ? DB 20 DUP(?) DATA ENDS
STACK SEGMENT PARA STACK 'STA' ;堆栈段 DB 100 DUP(?) STACK ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK MAIN PROC FAR
START: PUSH DS ;前三句构造返回指针 MOV AX,0 PUSH AX
MOV AX,DATA ;对数据段赋值 MOV DS,AX
MOV DX,OFFSET STR1 ;显示
8
MOV AH,9 INT 21H
MOV DX,OFFSET STR3 ;接受输入字符 MOV AH,10 INT 21H
MOV DL,0DH ;输出回车换行 MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H
MOV DX,OFFSET STR3 ;显示ok! MOV AH,9 INT 21H
EXIT: RET MAIN ENDP CODE ENDS END START
开始初始化显示回车换行输入字符指针减1中间地址送BX输出是空格?N存入内存指针加1YN(CX)-1=0?Y结束计数器加1 图3-2 逆序输出流程图 32位微机原理与接口技术实验指导
(3) 实验内容(2)参考程序
DATA SEGMENT ;数据段定义 BUF DB 100 DUP(?) DATA ENDS
STACK SEGMENT PARA STACK 'STA' ;堆栈段 DB 100 DUP(?) STACK ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK MAIN PROC FAR MOV AX,0 PUSH AX
MOV AX,DATA ;对数据段赋值 MOV DS,AX MOV SI,OFFSET BUF MOV CX,0
AGA: MOV AH,1 ; 接受字符 INT 21H
CMP AL,' ' ;是否是空格 JZ NEXT
MOV [SI],AL ;存入字符 INC SI INC CX
JMP AGA
NEXT: MOV DL,0DH ;输出回车换行 MOV AH,2 INT 21H MOV DL,0AH INT 21H
LOP1: DEC SI ; 逆序输出 MOV DL,[SI] MOV AH,2 INT 21H LOOP LOP1
EXIT: RET MAIN ENDP CODE ENDS END START
START: PUSH DS ;前三句构造返回指针 MOV AH,2
6.思考题
(1) 利用堆栈实现程序2的要求。 (2) 利用9号调用编写DOS界面下的简易菜单项。
实验四 汇编语言码制转换程序设计
1. 实验目的与要求 (1) 掌握码制转换的基本原理及相应的转换程序的编写。 (2) 进一步掌握利用DOS系统功能调用实现键盘输入,屏幕显示的功能。 2、实验设备
PC机一台或QTH-2008PC实验设备一套。 3. 实验内容 (1) 键盘输入一字符,以二进制形式显示其ASCII值。例如:输入字符A 在屏
9
32位微机原理与接口技术实验指导
幕显示0100 0001。 (2) 键盘输入一串数字串,以空格为结束标记,统计其中数字字符的个数存入
CX中,求这些数字之和存入BX中。例如:输入1234 则 CX=4 BX=0AH. (3) 键盘输入十进制整数(假定范围为0-32767),然后转换成二进制格式存储。 4. 编程指导
在程序设计中,经常需要进行代码转换。常用的代码转换有:BCD码转二进制码,二进制码转BCD码;ASCII码转 BCD码, BCD码转ASCII码;二进制码转ASCII码,ASCII码转二进制码等。
实验(1)是将二进制表示的数据显示,对应每位二进制数0,1的ASCII分别为30H和31H,将其转换后在用2号系统功能调用在屏幕上显示出来。要注意2号调用的出口参数为AL,AL为1调用成功,AL为0调用不成功。
实验(2)实验(3)都要注意从键盘输入的数字实际上是数的ASCII码,必需先将其转换为0-9的数后才能运算,实验(2)将其相加,实验(3)要分别乘各自得权后累加在一起。 5.流程框图和参考程序 (1) 实验内容(1)参考程序
STACK SEGMENT PARA STACK 'STA' ; 堆栈段 MOV DL,30H DB 100 DUP(?) STACK ENDS CODE SEGMENT
ASSUME CS:CODE,SS:STACK START:MOV AH,1 INT 21H MOV BL,AL MOV CX,8 AGA: SHL BL,1
ADC DL,0 MOV AH,2 INT 21H LOOP AGA EXIT: MOV AX,4C00H INT 21H CODE ENDS
END START
(2) 实验内容(2)参考程序
STACK SEGMENT PARA STACK 'STA' ; 堆栈段 JB INPUT DB 100 DUP(?) STACK ENDS CODE SEGMENT
ASSUME CS:CODE,SS:STACK START:MOV CX,0 MOV BX,0 INPUT:MOV AH,1 INT 21H CMP AL,' ' JZ STOP CMP AL,30H
10
CMP AL,39H JA INPUT INC CX SUB AL,30H MOV AH,0 ADD BX,AX JMP INPUT EXIT: MOV AX,4C00H INT 21H CODE ENDS
END START
32位微机原理与接口技术实验指导
INT 21H
POP POP POPF RET
DX AX
BREAK
MY_CODE ENDS
END MAIN
ENDP
RETURN:
8、思考题:
(1) 使用8255读取开关状态/控制LED与使用244或273有什么不同?
实验七 查询方式的串行通讯接口实验
1、实验目的
(1) 掌握查询方式下的PC机串行通讯及程序的设计。 2、实验设备
QTH-2008PC实验设备一套,串行通讯线一条。 3、实验内容
编写查询方式下的串口通讯程序,实现两台计算机的简单通讯,在A机上键入的字符,在B机上显示;反之亦然。 4、实验说明
PC机的串行通讯口是符合RS232标准的通讯口,利用串行通讯线可将两台PC机相连,采用3线连接,连接说明如下:
? 9针插头的2、3、5与另一头的3、2、5分别相连。 ? 可以使用PC机,也可以使用实验箱来完成本实验。 ? 通讯双方要求通讯格式、速率一致才能正常通讯。 5、实验步骤
(1) 首先利用Windows下的超级终端或串口调试助手测试一下串口是否连通。 (2) 编写查询方式下的通讯程序。 6、参考程序
CODE SEGMENT
ASSUME CS:CODE START PROC FAR
MOV DX, 3FBH
MOV AL, 80H OUT DX, AL MOV DX, 3F8H MOV AL, 12
21
32位微机原理与接口技术实验指导
OUT DX, AL MOV DX, 3F9H MOV AL, 0 OUT DX, AL MOV MOV OUT MOV MOV OUT
DX,3FBH AL,03 DX,AL DX,3F9H AL,0 DX,AL
INT MOV OUT PP: MOV IN TEST JZ QQ MOV IN MOV MOV INT QQ: JMP RET START ENDP CODE ENDS END START
DX,3F8H AL, DX DL, AL AH, 2 21H LP1 21H DX,3F8H DX,AL DX,3FDH AL,DX AL,01H
MOV DX,3FCH MOV AL,0AH OUT DX,0AL LP1: MOV AH, 1
INT 16H JZ PP
MOV AH,1 ;(或8,无回显)
7、实验问题 当一台计算机上运行实验程序,另一台计算机上不停地发送字符(编写发送程序),观察是否会丢失字符?提高通讯速率,观察在什么速率时开始丢失字符?
实验八 A/D、DA转换实验
1、实验目的
(1) 掌握0809A/D转换芯片的硬件电路和软件编程。 (2) 掌握DAC0832转换芯片的硬件电路和软件编程。 2、实验设备
QTH-2008PC实验设备一套。 3、实验内容
(1)本实验利用实验板上的ADC0809做A/D转换实验,将模拟信号转换成数字信号并在屏幕上显示,调节电位器观察屏幕上数据的变化。
(2)编写程序,使D/A转换模块输出阶梯波、锯齿波、方波。
4、实验说明
22
32位微机原理与接口技术实验指导
(1) ADC0809
ADC0809是CMOS的8位模/数转换器,采用逐次逼近原理进行A/D转换,芯片内有模拟多路转换开关和A/D转换两大部分,可对8路0~5V的输入模拟电压信号分时进行转换。模拟多路开关由8路模拟开关和3位地址锁存译码器组成,可选通8路模拟输入中的任何一路,地址锁存信号ALE将3位地址信号ADDA、ADDB、ADDC进行锁存,然后由译码电路选通其中的一路,被选中的通道进行A/D转换。A/D转换部分包括比较器、逐次逼近寄存器(SAR)、256R电阻网络、树状电子开关、控制与时序电路等。另外ADC0809输出具有TTL三态锁存缓冲器,可直接连到CPU数据总线上。
在实时控制与实时检测系统中,被控制与被测量的电路往往是几路或几十路,对这些电路的参数进行模/数、数/模转换时,常采用公共的模数、数模转换电路。因此,对各路进行转换是分时进行的。此时,必须轮流切换各被测电路与模数、数模转换电路之间的通道,以达到分时切换的功能。
ADC0809性能如下:
? 8位逐次逼近型A/D转换器,所有引脚的逻辑电平与TTL电平兼容。 ? 带有锁存功能的8路模拟量转换开关,可对8路0~5V模拟量进行分时切换。 ? 输出具有三态锁存功能。
? 分辨率:8位,转换时间:100μs。 ? 不可调误差:±1LBS,功耗:15mW。 ? 工作电压:+5V,参考电压标准值+5V。
? 片内无时钟,一般需外加640KHz以下且不低于100KHz的时钟信号。 ADC0809转换需要遵循一定的时序,首先输入地址选择信号,在ALE信号作用下,地址信号被锁存,产生译码信号,选中一路模拟量输入。然后输入启动转换控制信号START(不小于100ns ),启动A/D转换。转换结束,数据送三态门锁存,同时发出EOC信号,在允许输出信号控制下,再将转换结果输出到外部数据总线。
(2) DAC0832
DAC0832的主要性能: ① 输入的数字量为8位。
② 采用CMOS工艺,所有引脚的逻辑电平与TTL兼容。 ③ 数字量输入可以采用双缓冲,单缓冲和直通方式。 ④ 转换时间为1 μs
23
32位微机原理与接口技术实验指导
⑤ 线性误差:0.2%FSR。(FSR为满量程) ⑥ 分辩率:8位。
⑦ 单一电源:5V~15V,功耗20Mw。 ⑧ 参考电压:+10V~-10V DAC0832的内部结构
它由一个8位输入寄存器,一个8位DAC寄存器和一个8位D/A转换器三部分组成。在D/A转换器中采用R-2R电阻网络。LE信号为每个输入寄存器的内部控制信号,当LE=1时,接收输入数据;当LE=0时,内部锁存数据。 (1) DAC0832的工作方式
双缓冲工作方式——进行两级缓冲。采用双缓冲工作方式,可在对某数据转换的同时,进行下一个数据的采集,以提高速度,更重要的是能够用于需要同时输出多个参数的模拟量系统中,此时对应于每一种参数需要一片DAC0832。双缓冲方式时,CPU必须进行两步操作,第一步把数据写入8位输入寄存器,第二步再把数据从8位输入寄存器写入8位DAC寄存器。
单缓冲工作方式——只进行一级缓冲,可用第一组或第二组控制信号对第一级或第二级缓冲器进行控制。在一组控制信号作用下,输入的数据能一步写入到8位DAC寄存器中。
直通工作方式——不进行缓冲。当DAC0832芯片的CS、WR1、WR2和XFER引脚全部接地,ILE引脚接+5V高电平时,芯片就处于完全直通状态,CPU送来的八位数字量直接送到DAC转换器进行转换。 4、实验原理图
图4-9 ADC0809电路原理
24
32位微机原理与接口技术实验指导
6 实验步骤 (1) ADC0809实验 实验连线
? ? ?
图4-11 DAC0832电路原理
信号源模块短路262.14KHz,CLK0连到AD0809模块的时钟输入端ADCLK。 AD0809模块的ADWR、ADRD连到分别连到PC104总线接口模块的IOWR、IORD。
AD0809模块的数据(AD0~AD7)、地址线(A0~A7)分别连到PC104总线接口模块的数据(D0~D7)、地址线(A0~A7)。
? AD0809模块选通线ADCS连到PC104总线接口模块的IOY0。
? AD0809模块IN0接到电位器的DCOUT。
编制程序,将采样数值转换为电压值进行显示。调节电位器观察显示的变化。
25
图4-10 A/D转换实验连线
32位微机原理与接口技术实验指导
(2) DAC0832 实验连线
? ? ?
DAC0832模块的DAWR分别连到PC104总线接口模块的IOWR。
DAC0832模块的数据(AD0~AD7)连到PC104总线接口模块的数据(D0~D7)。 DAC0832模块选通线DACS连到PC104总线接口模块的IOY0。
图4-12 DA转换实验连线图
编写并运行程序, 用示波器观察AOUT的波形。
7、参考程序
(1)ADC0809实验
;FUNCTION CODE AD0809 DELAY_SET MY_STACK
MY_DATA DIDATA MY_DATA
MY_CODE MY_PROC
SEGMENT PARA 'CODE'
PROC
FAR
SEGMENT PARA 'DATA' DB ? ;要显示的数据 ENDS
MY_STACK
EQU EQU DB ENDS
0180H
01FFH ;延时常数 100 DUP(?)
ASSUME SS:MY_STACK MOV DS,AX MOV MOV OUT MOV LOOP IN CMP CALL JZ
CALL JMP
DIDATA,00H
DX,AD0809 AL,00H
DX,AL;启动AD转换 CX,DELAY_SET $;延时 AL,DIDATA BREAK STARTAD DSUP;显示 STARTAD
MAIN: MOV AX,MY_DATA
STARTAD: MOV
SEGMENT PARA 'STACK'
AL,DX;转换结束读取结果
ASSUME CS:MY_CODE, DS:MY_DATA
MY_PROC ENDP
26
32位微机原理与接口技术实验指导
;显示子程序 DSUP PROC PUSHF PUSH MOV MOV SHR NEAR CX DIDATA,AL CX,04 AL,CL
DELAY
PROC NEAR PUSHF PUSH PUSH MOV DEC DX CX
DX,DELAY_SET CX
D1: MOV CX, 40H D2: JNZ D2
;取高位
CALL MOV AND CALL CALL POP POPF
RET DSUP ENDp SEND PROC CMP JG ADD
JMP SEND1: ADD SEND2: MOV INT
RET SEND ENDp CR PROC MOV MOV INT
RET CR
ENDP
; 延时程序
(2 ) DAC0832实验程序
SEND AL,DIDATA AL,0FH;低位 SEND CR CX
NEAR AL,09H SEND1 AL,30H SEND2 AL,37H
AH,0EH 10H
NEAR ;回车 DL,0DH AH,02H 21H DEC JNZ POP POP POPF RET DELAY ENDp
;
;按任意键退出 BREAK PROC PUSHF PUSH
PUSH MOV MOV INT JE EXEC_EXIT: MOV INT RETURN: POP POP POPF
RET BREAK ENDP
MY_CODE ENDS
END 27
DX D1 CX DX
NEAR
AX DX AH,06H DL,0FFH 21H RETURN
AX,4C00H 21H DX AX MAIN
32位微机原理与接口技术实验指导
阶梯波参考程序
DA0832 DELAY_SET MY_STACK
MY_CODE MY_PROC
DELAY
PROC NEAR; 延时程序 PUSHF PUSH PUSH MOV DEC
DX CX
DX,DELAY_SET CX,800H CX
SEGMENT PARA 'CODE' PROC
FAR
MY_STACK
EQU EQU DB ENDS
0180H ;片选信号 20H ;延时常数 100 DUP(?)
DELAY
;按任意键退出 BREAK
PROC PUSHF PUSH PUSH MOV MOV INT MOV INT POP POP POPF RET ENDP
END START
AX DX AH,06H DL,0FFH 21H AX,4C00H 21H DX AX NEAR
JNZ D2 DEC JNZ POP POP POPF RET ENDP
DX D1 CX DX
SEGMENT PARA 'STACK'
ASSUME CS:MY_CODE, DS:MY_DATA,ASSUME SS:MY_STACK
MOV MOV MOV OUT CALL CALL JMP ENDP
AX,MY_DATA DS,AX AX,0000H DX,AL DELAY BREAK JTB1
START:
MOV DX, DA0832;产生阶梯波 ADD AL,20H
JTB1:
RETURN:
JE RETURN
MY_PROC
BREAK
MY_CODE ENDS
D1: MOV D2:
锯齿波参考程序
DA0832 EQU 0180H ;Base Address Register2 DELAY_SET MY_STACK
MY_STACK MY_DATA MY_DATA
EQU DB ENDS SEGMENT ENDs
PARA 'DATA' 50H ;延时常数
PARA 'STACK' 100 DUP(?)
SEGMENT
MY_CODE MY_PROC
SEGMENT PARA 'CODE' PROC
FAR
ASSUME CS:MY_CODE, DS:MY_DATA, ASSUME SS:MY_STACK START:
MOV MOV
AX, MY_DATA DS, AX
MOV DX,DA0832;产生锯齿波
28
32位微机原理与接口技术实验指导
DELAY PROC NEAR;延时程序
PUSHF PUSH PUSH MOV
DX CX
DX,DELAY_SET CX,10H CX DX
D1 CX DX
MOV OUT INC CALL CALL JMP
AL,00H DX,AL AL DELAY BREAK JCB1 ENDP
DELAY BREAK
POPF RET ENDP PROC PUSHF PUSH PUSH MOV MOV INT JE MOV INT POP POP POPF RET ENDP
END START
AX DX AH,06H DL,0FFH 21H RETURN AX,4C00H 21H DX AX
NEAR ;按任意键退出
JCB1:
MY_PROC
RETURN:
D1: MOV D2: DEC JNZ D2 DEC
JNZ POP POP
BREAK
MY_CODE ENDS
方波参考程序
DA0832 DELAY_SET MY_STACK
MY_STACK MY_DATA MY_DATA MY_CODE MY_PROC
EQU EQU DB ENDS SEGMENT ENDs
SEGMENT PARA 'CODE' PROC
FAR
PARA 'DATA' 0180H 200H ;延时常数
PARA 'STACK' 100 DUP(?)
CALL MOV OUT CALL
DELAY AL,0FFH DX,AL DELAY BREAK FB1
SEGMENT
CALL JMP
MY_PROC
ENDP
DELAY PROC NEAR ;延时程序
PUSHF PUSH PUSH MOV
DX CX
DX,DELAY_SET CX,1FFH CX D2 DX
ASSUME CS:MY_CODE, DS:MY_DATAASSUME SS:MY_STACK
MOV
AX,MY_DATA
MOV MOV MOV OUT
DS,AX
DX,DA0832; 产生方波 AL,0 DX,AL
START: FB1:
D1: MOV D2: DEC JNZ DEC 29
32位微机原理与接口技术实验指导
JNZ D1 POP CX POP DX
POPF RET DELAY ENDP BREAK PROC NEAR;按任意键退出 PUSHF PUSH AX
PUSH
DX MOV AH,06H MOV
DL,0FFH
INT 21H JE RETURN
MOV
AX,4C00H INT 21H RETURN: POP DX POP AX
POPF
RET BREAK ENDP
MY_CODE ENDS
END START
30
正在阅读:
青岛科技大学微机原理与应用实验指导书03-10
顶管施工技术研究10-10
商品混凝土供货技术合同(标准文本)12-21
高三地理高考第一轮单元复习 人类面临的全球性环境问题与可持续发展 401-16
2015(沪教版)三年级数学上册《长方形正方形的面积》综合练习03-03
关注教师情感人文素质,提升教师教育质量07-20
天大2016年12月《企业战略管理》期末大作业考核要求11-21
监理员网上考试题库(总)04-26
作文600字《做一个勇敢的自己》12-25
图书发行代理合同范例08-20
- 高一物理牛顿运动定律全套学习学案
- 水处理一级反渗透加还原剂亚硫酸氢钠后为什么ORP会升高
- 毕业设计(论文)-正文董家口 - 图文
- 荣盛酒店经营管理公司录用通知及入职承诺书II
- 第二讲 大学英语四级快速阅读技巧
- 质量管理体系文件(2015年委托第三方医药物流配送企业专用版本)
- 214071收款办法
- 苏轼对《文选》选文的评价
- 《诊断学基础B》1-8作业
- 广东省东莞市高一数学下学期期末教学质量检查试题
- 海南电网公司VIS推广应用管理办法
- 红星照耀中国习题
- 苏教版小学语文六年级上册期末复习资料之生字词整理
- 局域网组建与应用—王向东
- 税务稽查内部管理文书样式
- 环保社会实践调查表
- 九年级思品第一单元复习
- 2016年全国注册咨询工程师继续教育公路路线设计规范试卷
- 毕业设计-青岛港董家口港区防波堤设计
- 撞背锻炼方法与益处
- 指导书
- 青岛
- 微机
- 原理
- 实验
- 应用
- 大学
- 科技
- 第四套人民币大全套收藏与真伪鉴别
- 《医学物理学》(第八版)复习题
- 四川省内江市高中2018届高三第一次模拟考试题(文史类)数学Word
- 浅析中学生厌学心理的成因及对策研究
- 中共台州市委关于深入推进学习型城市建设的若干意见
- 地理问答题十
- 美联英语学生英语口语如何提高
- 2014云南省昭通市公务员招聘考试《行政职业能力测验》考前真题训
- 毕业论文模板
- 红军长征
- 2014福建会计继续教育-企业会计准则与税法的差异分析在线答案
- “农业区位因素”说课稿
- 桂林山水教学设计
- 湖北省人民政府关于进一步加强征地管理切实保护被征地农民合法权
- 词汇学Unit 6-7 答案
- 管理方法与艺术任务01任务 - 0001判断题
- fortran90程序设计chapter2
- 地理信息
- 空压机改变频方案
- 2012年国际商务综合实训课程方案