包含8086扩展,8255交通灯,数码显示
实验一:汇编语言程序设计
实验二:查表程序设计
实验三:I/O口扩展实验
实验四:数码显示
实验五:8255模拟交通灯
实验一汇编语言程序设计 1、学习8088汇编语言程序的基本结构和程序设计的基本方法。 2、熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的全过程。 3、掌握DEBUG基本指令及其使用方法。 编写程序,将80H-8FH共16个字节数据写入数据段1000H偏移地址开始的16个内存单元中。 1、进入编程环境,编写、汇编、链接、运行汇编语言源程序。 2、利用DEBUG指令,对程序进行调试。 3、通过单步、断点等调试手段验证程序功能,查看1000H-100FH单元的数据是否传送正确。 START: MOV SI,80H MOV DI,1000H MOV CX,16 XOR AX,AX NEXT: MOV AX, [SI] MOV [DI],AX INC SI INC DI LOOP NEXT MOV AH,4CH INT 21H END START 
通过这次实验,利用DEBUG功能可以清楚看到程序运行结果以及汇编语句,进一步加深了对汇编指令运行的理解。
实验二 查表程序设计 学习查表程序的设计方法。 PC计算机一台,Dais-86PRO+或Dais-PRO163C实验系统一套。 三、实验内容及步骤 所谓查表,就是根据某个值,在数据表格中寻找与之对应的一个数据,在很多情况下,通过查表比通过计算要使程序更简单,更容易编制。 通过查表的方法实现将一个八位二进制数的高4位和低4位分别转换为ASCII码。0~9的ASCII码为30h~39h,而A~F的ASCII码为41h~46h,这样就可以将0~9与A~F对应的ASCII码保存在一个数据表格中。当给定一个需要转换的十六进制数时,就可以快速的在表格中找出相应的ASCII码值。 实验步骤: 1) 编写实验程序,编译、链接生成可执行文件; 2) 利用DEBUG指令进行调试,查看结果是否正确; 3) 反复修改变量,观察验证程序的正确性。 四、实验程序与DEBUG指令 DATAS SEGMENT TABLE DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,42H,43H,44H,45H,46H DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX MOV DL,4AH LEA BX,TABLE MOV AL,DL AND AL,0FH XLAT MOV AH,AL MOV CL,4 MOV AL,DL SHR AL,CL XLAT MOV DH,AL MOV DL,AH MOV AH,4CH INT 21H CODES ENDS END START 
六.实验总结 通过这次实验,熟悉了查表功能的运用以及运用过程中需要注意的问题,比如查找数值放在AL中,进一步加深了对查找表使用的理解。
实验三 I/O口扩展实验 学习在微机接口系统中扩展简单I/O设备的基本方法。 PC计算机一台,Dais-86PRO+或Dais-PRO163C实验系统一套。 三、实验内容及步骤 接口电路如图1所示。本实验用74LS244作为缓冲输入接口、74LS273作为锁存输出接口扩展构成8位I/O接口。编写程序,读取74LS244缓冲输入接口所连接的K7~K0开关数据,写入到74LS273锁存输出接口,控制L7~L0八个发光二极管的亮灭。 
图1 I/O扩展实验电路图 实验步骤: 1) 按图1连接实验电路; 2) 编写实验程序,经编译、链接无语法错误后装载到实验系统; 3) 全速运行程序,拨动开关K7~K0,观察发光二极管L7~L0状态。
四、实验程序与DEBUG指令 code segment assume cs:code start:mov dx,300H IN al,dx OUT dx,al JMP start MOV ah,4ch INT 21h code ends end start 五、实验结果 六、实验总结 通过这次实验,理解了如何利用IN,OUT输入输出指令读取输出数据,学习在微机接口系统中扩展简单I/O设备的基本方法。进一步加深了对微机系统的理解。
实验四数码显示 了解LED数码管动态显示的工作原理及编程方法。 PC计算机一台,Dais-86PRO+或Dais-PRO163C实验系统一套。 
实验箱LED模块接口如图所示,要求使用8255的PA7—PA0控制数码管字形口、PB5—PB0控制数码管字位口,实现数码管显示“HELLO”。 1、该数码显示系统属于动态显示还是静态显示? 答:动态显示。 2、阐述动态显示和静态显示各自的特点。 答:动态显示特点:亮度相对较低,耗电少,要求I/O口少; 静态显示特点:亮度高,功耗大,要求I/O口或驱动芯片多。 3、整理出详细的实验程序。
data segment data1 db 20h,10h,08h,04h,02h data2 db 89h,86h,0c7h,0c7h,0c0h data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov dx,303h mov al,80h out dx,al again:mov cx,5 lea si,data1 lea di,data2 next:mov dx,301h mov al,[si] out dx,al mov dx,300h mov al,[di] out dx,al mov bx,100h x1:dec bx jnz x1 inc si inc di loop next jmp again mov ah,4ch int 21h code ends end start
通过这次实验,我了解LED数码管动态显示的工作原理,并利用汇编语言完成了对数码管的动态显示,成功显示“HELLO”。
实验五 8255模拟交通灯 掌握通过8255A并行口传输数据的方法,模拟交通灯控制系统。 PC计算机一台,Dais-86PRO+或Dais-PRO163C实验系统一套。 1、实验要求: 1)用8255作输出口,控制12个发光二极管亮灭,模拟交通灯管理: 2)程序初始时为A路口绿灯亮、B路口红灯亮; 3)延迟一段时间后,A路口由绿灯亮变为黄灯闪烁; 4)接着A路口红灯亮、B路口绿灯亮; 5)延迟一段时间后,B路口由绿灯亮变为黄灯闪烁; 6)最后循环至初始时继续。 2、实验步骤: 1) 连接实验电路; 2) 编写实验程序,经编译、链接无语法错误后装载到实验系统; 3) 全速运行程序,观察发光二极管显示,应能循环模拟交通灯显示。 四、实验程序与DEBUG指令 code segment assume cs:code start : mov dx,303h mov al,80h out dx,al mov dx,300h again: mov al,011101b out dx,al call delay mov cx,5 next:mov al,011110b out dx,al call delay1 mov al,011111b out dx,al call delay1 loop next mov al,101011b out dx,al call delay mov cx,5 nex1: mov al,110011b out dx,al call delay1 mov al,111011b out dx,al call delay1 loop next1 jmp again delay proc push cx push ax mov cx,10 x2:mov ax,0ffffh x1:dec ax jnz x1 dec cx jnz x2 pop ax pop cx ret delay endp delay1 proc push bx mov bx,0ffffh x4:dec bx jnz x4 pop bx ret delay1 endp mov ah,4ch int 21h code ends end start  
五、实验结果 通过这次实验,我掌握如何对8255A进行初始化,然后通过8255A并行口传输数据的方法,成功模拟了交通灯控制系统,也学会了如何编写子程序并实现调用。
完整的Word格式文档51黑下载地址:
323冯 微机.docx
(2.48 MB, 下载次数: 12)
|