-1-32位微机系统与应用实验指导书樊克利吴文华西安电子科技大学计算机学院专业实践中心2009年9月-2-第一部分实验平台简介QTH-2008PCI-B实验仪以PC微机为主机,通过采用PCI9054为桥接主芯片的PCI-LOCAL_ISABUSPCI插卡,将PC机的PCI总线转换为LOCAL及ISA总线。将PCI-LOCAL_ISABUSPCI插卡,安装在PC机的某一插槽内,并有34、40芯扁平电缆把LOCAL_ISABUS总线信号连接到实验箱内,供作基本接口实验使用。在接口实验单元中,系统提供了各种常用外围接口及其控制应用部件从而全面支持“微机接口技术”及“微机控制应用”的各项实验内容。实验系统所具有的硬软件结构对用户的实验设计具有良好的开放特性,系统总线及各种外围接口器件都可由用户来操作连接,从而极大地提高了学生的实际和操作能力,避免了单纯验证式实验方式的弊病,从而增强学生的综合设计能力32位微机原理实验调试平台具有以下特点:调试界面采用自行开发的VC++风格的QTH组合软件包。全新的WINDOWS界面版本,支持WIN98/ME/2000/XP/NT操作系统。符合编程语言语法的彩色文本显示,用户可根据个人爱好修改特定的着色功能。先进的错误定位,可直接进入错误位置,无需查找错误。完美的编辑编译集成环境,可在同一个编辑窗口中编译连接源程序,无需做其它任何设置。完美的集成调试环境,可在Windows98/ME及WindowsXP环境下,在QTH调试窗口中直接运行源程序和调试任意ASM汇编程序,无需任何其它烦琐的操作。-3-表1QTH-2008PCI-B实验仪的标准配置及功能主控模块2(编号:G)1、提供ISA32位数据总线、16位地址总线接口2、符合ISA接口的控制插口:存储器读写、DMA等信号LCD与IC卡实验模块(编号:D)1、128*64LCD显示实验2、IC卡实验主控模块1(编号:A)1、提供ISA8位数据总线、16位地址总线接口2、符合ISA接口的控制插口:片选、读写、中断、DMA等信号3、电源信号:+5V/3A、±12V/0.5A4、简单的门电器:或、与、非门、触发器5、复位按钮电机、风扇、喇叭(编号:H)1、四相步进电机2、直流电机3、音频电路4、光、磁控制风扇5、单刀双掷继电器6、164串并转换电路244/273、8254实验模块(编号:E)1、74LS244与74LS273基本输入/输出实验2、8254定时器与计数器和分频器实验8255、16C550实验模块(编号:B)1、8255通用I/O接口实验、打印机实验2、16C550通用串行口接口与PC机通讯实验AD/DA,32位DRAM,语音(编号:I)1、ADC08098位AD实验2、DAC08328位DA实验3、ISD1420语音实验4、32位存储器读写、DMA传送实验控制与信号源模块(编号:F)1、配有带驱动的16个LED显示器2、8路手动电平控制3、2路手动单脉冲输出4、2路振荡方波信号源:1HZ,32Hz,1024Hz,32.768KHz,262.14KHz,1.5MHz,6MHz,24MHz八组选择5、1路分频器:CLOCK/2,CLOCK/4,CLOCK/8,CLOCK/164组选择键盘LED显示模块(编号:C)1、4*4键盘与4位LED八段显示实验2、16*16LED中文字幕移动实验-4-第二部分实验程序(汇编)开发集成环境2.1QTHPCI开发环境QTHPCI开发环境是集编辑、编译/汇编、调试为一体,VC风格的用户界面,是理想的开发工具。(快捷方式放置在桌面上:QTHPCI)开发环境操作说明如下:第一步:关闭当前项目菜单命令:[项目|关闭项目]当用户要调用新的文件时必须关闭已经打开的项目,此时QTH集成开发环境关闭界面上所有的窗口。因为当打开项目文件后,QTH集成开发环境默认所有编译/汇编、产生代码的过程都是对当前项目进行的。第二步:在文件菜单下打开应用程序。如果您要创建一个新的程序文件,使用菜单命令:[文件|新建]。或使用工具栏中“新建”钮。如果您要打开一个已存在的程序文件,使用菜单命令:[文件|打开]。或使用工具栏中“打开”命令钮。第三步:编译当前文件、编译连接当前项目。使用菜单命令:[项目|编译当前文件]或使用工具栏中“编译”命令钮。编译通过后还必须进行连接操作,您也可以直接对当前文件进行编译连接操作。此命令自动地对修改过的源程序进行编译或汇编,然后连接所有的OBJ,LIB文件,完成调试程序所需的准备工作。使用菜单命令:[项目|编译连接]或工具栏中‘编译连接’命令钮。第四步:执行[项目|编译]命令后产生的结果显示在消息框中,当QTH发生错误时,消息窗口中的错误信息自动与源文件关联,提示出错的位置。在消息窗口中错误提示处双击鼠标左键,也可将错误信息与源文件的错误位置关联。如果编译出现错误,在修改文件后重复进行第三步操作。第五步:编译连接通过后,按连续运行程序,按按钮进入TD调试器,如图2-3-2。按ALT+ENTER键进入全屏模式后按F9连续执行。你也可以单步、宏单步、断点的调试,详细参见附录DTurboDebugger调试器的使用。注:在实验过程中需要进行人机交互的(键盘输入)必须先进入TD调试器后按ALT+ENTER、F9连续运行。-5-2.2汇编语言编写基本格式STACKSEGMENTPARASTACK;DW100DUP(?)STACKENDSDATASEGMENT;DATADEFINEDATAENDSCODESEGMENTASSUMEDS:DATA,SS:MYSTACK,CS:CODESTART:;INSERTYOUROWNCODESCODEENDSENDSTART2.3DOS系统功能调用DOS系统功能调用方法:INT21H常用DOS系统功能调用01H功能:从键盘输入一个字符并回显入口:AH=01H出口:AL=ASCII字符注释:等待键盘输入并自动在屏幕上显示键入的字符。02H功能:显示输出(写字符到标准输出设备)入口:AH=021HDL=要显示的ASCII字符注释:自动在屏幕上显示DL的字符09H功能:显示字符串入口:AH=09HDS:DX=字符串的起始地址注释:字符串必须以ASCII码‘$’(24H)结束。0AH功能:从键盘输入一串字符到缓冲区入口:AH=0AHDS:DX=自定义的缓冲区首地址-6-注释:[DS:DX]=缓冲区最大字符数(最大235)[DS:DX+1]=缓冲区实际输入的字符数[DS:DX+2]=键盘输入的第一个字符2.4编程举例:CODESEGMENT;定义一个CODE段ASSUMECS:CODE;定义CODE段为代码段START:;可执行语句起始处MOVAH,02H;以下三条语句将显示字母aMOVDL,’a’INT21HMOVAH,4CH;以下二条语句将返回DOSINT21HCODEENDS;CODE段结束ENDSTART;整个程序结束-7-第三部分实验内容实验一汇编语言编程实验3.1.1实验目的(1)掌握汇编语言的编程方法(2)掌握DOS功能调用的使用方法(3)掌握汇编语言程序的调试运行过程3.1.2实验设备PC机一台。3.1.3实验内容(1)将指定数据区的字符串数据以ASCII码形式显示在屏幕上,并通过DOS功能调用完成必要提示信息的显示。(2)在屏幕上显示自己的学号姓名信息。(3)循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输入”Q”或“q”时结束。(4)自主设计输入显示信息,完成编程与调试,演示实验结果。考核方式:完成实验内容(1)(2)(3)通过,完成实验内容(4)优秀。实验中使用的DOS功能调用:INT21H表3-1-1显示实验中可使用DOS功能调用AH值功能调用参数结果1键盘输入并回显AL=输出字符2显示单个字符(带Ctrl+Break检查)DL=输出字符光标在字符后面6显示单个字符(无Ctrl+Break检查)DL=输出字符光标在字符后面8从键盘上读一个字符AL=字符的ASCII码9显示字符串DS:DX=串地址,‘$’为结束字符光标跟在串后面4CH返回DOS系统AL=返回码3.1.4实验步骤(1)运行QTHPCI软件,根据实验内容编写程序,参考程序流程如图3-1-1所示。(2)使用“项目”菜单中的“编译”或“编译连接”命令对实验程序进行编译、连接。-8-(3)“调试”菜单中的“进行调试”命令进入Debug调试,观察调试过程中数据传输指令执行后各寄存器及数据区的内容。按F9连续运行。(4)更改数据区的数据,考察程序的正确性。低-9-实验二数码转换实验3.2.1实验目的(1)掌握不同进制数及编码相互转换的程序设计方法。(2)掌握运算类指令编程及调试方法。(3)掌握循环程序的设计方法。3.2.2实验设备PC机一台。3.2.3实验内容及说明(1)重复从键盘输入不超过5位的十进制数,按回车键结束输入;(2)将该十进制数转换成二进制数;结果以2进制数的形式显示在屏幕上;(3)如果输入非数字字符,则报告出错信息,重新输入;(4)直到输入“Q”或‘q’时程序运行结束。(5)键盘输入一字符串,以空格结束,统计其中数字字符的个数,并在屏幕显示。考核方式:完成实验内容(1)(2)(3)(4)通过,完成实验内容(5)优秀。转换过程参考流程如图3-2-2所示。十进制数可以表示为:Dn*10n+Dn-1*10n-1+…+D0*100=Di*10i其中Di代表十进制数1、2、3、…、9、0。上式可以转换为:Di*10i=(((Dn*10n+Dn-1)*10+Dn-2)*10+…+D1)*10+D0由上式可归纳出十进制数转换为二进制数的方法:从二进制数的最高位Dn开始做乘10加次位的操作。依此类推,则可求出二进制数结果。表3-3-1数码转换对应关系十六进制BCD码二进制机器码ASCII码七段码共阳共阴00000000030H40H3FH10001000131H79H06H20010001032H24H5BH30011001133H30H4FH40100010034H19H66H50101010135H12H6DH60110011036H02H7DH70111011137H78H07H81000100038H00H7FH-10-91001100139H18H67HA10141H08H77HB101142H03H7CHC110043H46H39HD110144H21H5EHE111045H06H79HF111146H0EH71H-11-实验三基本IO口扩展实验3.3.1实验目的了解TTL芯片扩展简单I/O口的方法,掌握数据输入输出程序编制的方法。3.3.2实验内容说明74LS244是一种三态输出的8总线缓冲驱动器,无锁存功能,当G为低电平时,Ai信号传送到Yi,当为高电平时,Yi处于禁止高阻状态。其引脚图如下:74LS273是一种带清除功能的8D触发器,1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。其引脚图如下:-12-本实验要求用74LS244作为输入口,读取开关状态,并将此状态通过74LS273连接到发光二极管显示。具体实验内容如下:(1)当开关Yi为低电平时对应的发光二极管点亮,Yi为高电平时对应的发光二极管灭。(2)当开关Yi全为高电平时,发光二极管Qi从左至右轮流点亮。(3)当开关Yi全为低电平时,发光二极管Qi从右至左轮流点亮。(4)自主设计控制及显示模式,完成编程调试,演示实验结果。编程方法见IO(样例程序).txt.(在编译环境下程序名后缀为.asm且不能含有汉字)考核方式:完成实验内容(1)(2)(3)通过。完成实验内容(4)优秀-13-3.3.3实验原理图图3-2-174LS244与74LS273扩展I/O口原理图实验连线图:图3-2-2扩展I/O口连线图-14-3.3.4实验步骤(1)实验连线:244的CS——ISA总线接口模块的0000H,Y7—Y0——开关K1—K8。273的CS——ISA总线接口