第一部分软件程序设计(共8学时)一、实验环境wave 6000简介1、软件安装以安装在C盘为例:将WA VE文件夹拷贝到C盘根目录下,再将WA VE文件夹下的ICESOFT 文件夹拷贝到C盘根目录下。
图1 安装文件然后双击图标INSTALL.EXE开始安装,进入界面:图2 安装wave6000仿真环境点击安装WA VE6000仿真开发环境,点击安装,开始安装过程,安装结束后出现:图3 安装过程再点击安装Lab6000/2000P实验例子:图 4 安装Lab6000/2000P实验例子出现界面:图 5 实验例子安装过程电机OK开始安装,直到安装结束。
安装成功后,会在桌面上出现图标:,双击即可进入编辑环境。
图 6 编辑环境2、编辑环境设置图7 仿真器设置a图8 仿真器设置b图9 勾选使用伟福软件模拟器图10 语言设置图11 目标文件设置2、①新建文件图12 新建文件②打开已有文件图13 打开文件双击选择要打开的文件即可。
3、文件保存:文件名为英文字母,不超过8个字符,扩展名为ASM,保存在C:\WA VE6000下,注意保存路径中不能出现中文字符。
图14 保存文件4、源程序的汇编链接及程序调试①源程序输入完毕或打开已有文件后,单击图标程序进入编译链接状态,若程序无语法错误,则显示:图15 汇编链接状态a程序中出现语法错误时的编译结果是:图16 汇编链接状态b双击错误处即可定位到出现错误的语句上,图17 汇编链接状态及错误定位错误语句逐句修改后,再重新编译连接,直到通过编译。
②程序调试:方法有:复位(CTRL-F2)设置断点(CTR+F8)、跟踪(F7)、单步运行(F8)、连续运行(CTR+F9)等方法。
断点的设置和取消:光标置预设断点行,按CTRL_F8,即可,在已设断点行再次按下CTRL_F8即可取消断点设置。
图18 设置断点后的情况③实验结果查看可以通过查看寄存器内容、数据段内容、观察窗口内容、DOS显示结果等判断程序执行是否正常。
图19 设置观察窗口图20 数据段内容查看图21 查看DOS显示结果图22 查看寄存器内容软件实验一实验内容在数据区定义字母数字串,分别统计数字、大写字母、小写字母个数,分别存放在SHUZI30-39、DAXIE41-5A、XIAOXIE61-7A单元中。
多次统计,记录统计结果。
实验要求在熟悉wave 6000编程环境的基础上,完成上述源程序的输入、汇编、修改、运行等实验步骤,直到程序执行得到正确结果为止。
熟练掌握单步运行、断点设置、自动运行、寄存器内容,数据区内容查看等程序调试技术。
软件实验二(选做)实验内容在数据区BUFF开始定义若干个有符号字节型数据,数据块以’$’为结束符,编写程序统计数据块中正数、负数和0的个数,分别存入PLUS、MINUS、ZREA 单元中。
软件实验三实验内容将内存区定义的字母数字串的统计结果以16进制形式显示出来,显示格式为:The Nembers of Digital is:XXHThe Nembers of Capital Letters is:XXHThe Nembers of Small Letters is:XXH程序要求:1、二进制转十六进制并显示的功能由BTOHDSP实现2、回车换行用CRLF宏指令实现3、字符H的显示用OUTPUT宏指令实现4、提示信息的显示用宏INOUT宏指令实现实验要求:调试程序,直到正确实现所要求的功能。
软件实验四实验内容从键盘键入字母数字串,统计各类字符个数并以十进制形式在显示器上显示出来。
显示格式要求1、在显示器上显示提示信息:Pleace input any digital and letter string2、在显示器上显示The string you inputed is:XXXXXXXXXX3、在显示器上分行显示十进制统计结果The Nembers of Digital is:XXThe Nembers of Capital Letters is:XXThe Nembers of Small Letters is:XX4、在显示器上显示提示信息Are you continue?(Y/N)按Y继续1~3的统计显示过程,按N或其它字符均退出统计返回DOS。
这里建议:不区分输入Y或N的大小写,均为有效。
程序要求:1、提示字符串的显示功能用宏指令INOUT实现2、回车换行用CRLF宏指令实现3、单个字符输入用INPUT宏指令实现4、分类统计功能由子程序TONGJI实现5、二进制转十进制并显示功能由子程序BTOD 实现软件实验五(选做)实验内容在数据区定义30个学生的成绩(0~100之间),统计不及格(<60)、及格(60~69)、中等(70~79)、良好(80~89)、优秀(90~100)学生的个数和平均分,分类以十进制形式显示出来(平均分仅显示整数即可)。
显示格式要求分行在各相关提示信息下,以十进制形式显示各统计结果的数值。
第二部分硬件实验(8学时)一、仿真器设置:(Lab6000实验箱为绿色箱子、Lab2000实验箱为黑色箱子)1、通信设置:将用来做软件仿真的“使用伟福软件模拟器”选项取消,勾选“使用USB通信图23 Lab6000通信设置图24 Lab2000通信设置其中Lab2000实验箱上的COM口选择要与配套计算机上的串口标签一致,点击“测试串行口“可测试串口是否正常。
2、仿真器设置图25 Lab6000仿真器设置图26 Lab2000仿真器设置二、硬件布局图首先根据硬件布局图熟悉各接口芯片、译码电路、开关、LED指示灯、单脉冲输入、电位器等常用输入输出器件所处位置。
各片选译码起始地址如下:CS0:8000H CS1:9000H CS2:A000H CS3:B000HCS4:C000H CS5:D000H CS6:E000H CS7:F000H图27 硬件实验布局图三、实验选择:图28 实验选择此时按“实验要求”即可看到本次实验的要求、按“实验目的”可看到本次实验的目的等等。
按“连线”可根据指示将所需连线连接好。
按“汇编程序”即可将实验程序装入wave 6000环境进行编译连接和下载。
实验四、8259中断实验选择8259外部中断试验,按图接线后,点“汇编程序”装入实验程序,阅读并理解试验程序后编译链接下载程序,观察实验现象。
然后按如下要求对程序进行修改;实验原程序如下:(行号是为描述方便而后加的)1 mode equ 82h ; 8255 工作方式2 PA8255 equ 8000h ; 8255 PA口输出地址3 CTL8255 equ 8003h4 ICW1 equ 00010011b ; 单片8259, 上升沿中断, 要写ICW45 ICW2 equ 00100000b ; 中断号为20H6 ICW4 equ 00000001b ; 工作在8086/88 方式7 OCW1 equ 11111110b ; 只响应INT0 中断8 CS8259A equ 09000h ; 8259地址9 CS8259B equ 09001h10 data segment11 CNT db 012 data ends13 code segment14 assume cs:code, ds: data15 IEnter proc near16 push ax17 push dx18 mov dx, PA825519 inc CNT20 mov al, CNT21 out dx, al ; 输出计数值22 mov dx, CS8259A23 mov al, 20h ; 中断服务程序结束指令24 out dx, al25 pop dx26 pop ax27 iret28 IEnter endp29 IInit proc30 mov dx, CS8259A31 mov al, ICW132 out dx, al33 mov dx, CS8259B34 mov al, ICW235 out dx, al36 mov al, ICW437 out dx, al38 mov al, OCW139 out dx, al40 ret41 IInit endp42 start proc near43 mov dx, CTL825544 mov al, mode45 out dx, al46 cli47 mov ax, 048 mov ds, ax49 mov bx, 4*ICW2 ; 中断号50 mov ax, code51 shl ax, 4 ; x 1652 add ax, offset IEnter ; 中断入口地址(段地址为0)53 mov [bx], ax54 mov ax, 055 inc bx56 inc bx57 mov [bx], ax ; 代码段地址为058 call IInit59 mov ax, data60 mov ds, ax61 mov CNT, 0 ; 计数值初始为062 mov al, CNT63 mov dx, PA825564 out dx, al65 sti66 LP: ; 等待中断,并计数。
67 nop68 jmp LP69 start endp70 code ends71 end start①将65行的sti指令用分号;注释掉,再重新编译链接下载程序,运行,观察实验现象并正确解释实验现象,然后取消注释。
②将第7行的OCW1 改为11111111b ,再重新编译链接下载程序,运行,观察并正确解释实验现象,然后改回原来的值。
正确理解OCW1的作用。
③将24行的out dx, al指令注释掉,再重新编译链接下载程序,运行,观察并正确解释实验现象,然后取消注释。
④将27行的iret注释掉,再重新编译链接下载程序,运行,观察并正确解释实验现象,然后取消注释。
正确理解IRET指令的作用。
⑤将40行的ret注释掉,再重新编译链接下载程序,运行,观察并正确解释实验现象,然后取消注释。
正确理解RET指令的作用⑥程序在哪个片段内等待中断?⑦修改程序,使按下单脉冲10次后,程序结束退出。
实验五定时器/计数器8253实验1、选择8253计数器实验,按图接线后,点“汇编程序”装入实验程序,阅读并理解试验程序后编译链接下载程序,观察实验现象。
实验原参考程序如下:CONTROL equ 08003hCOUNT0 equ 08000hCOUNT1 equ 08001hCOUNT2 equ 08002hcode segmentassume cs:codestart proc nearmov al, 30h ; 通道0,方式0mov dx, CONTROLout dx, almov al, 5 ; 计数器初始值。