微机原理与接口技术设计实验
微机原理及接口技术实验

微机原理及接口技术实验一、实验目的本实验旨在通过学习微机原理和接口技术,了解和掌握微机系统的基本原理和接口技术的应用,培养学生对微机系统的认识和实践操作能力。
二、实验内容1. 微型计算机系统设计与搭建2. 微机输入输出接口技术应用实验3. 微机总线技术应用实验4. 微机存储器技术应用实验5. 微型计算机中断和DMA技术应用实验三、实验原理1. 微型计算机系统设计与搭建微型计算机主要由中央处理器、存储器、输入输出设备和总线组成。
本实验通过选择适当的芯片、电路连接和控制程序设计,实现一个基本的微型计算机系统。
2. 微机输入输出接口技术应用实验输入输出是微型计算机的重要组成部分,通过实验学习各种输入输出接口的原理和使用方法,并进行实际应用。
3. 微机总线技术应用实验总线是微型计算机各个部件之间传送数据和控制信息的公共通信路径。
通过实验学习总线的分类、结构和时序要求,掌握总线的实际应用。
4. 微机存储器技术应用实验存储器是微型计算机中存储数据和程序的重要设备。
通过实验学习不同类型存储器的原理和应用,掌握存储器的选择和使用。
5. 微型计算机中断和DMA技术应用实验中断和直接存储器访问(DMA)是微型计算机连接外部设备的重要技术。
通过实验学习中断和DMA的工作原理,掌握中断和DMA的应用方法。
四、实验步骤1. 根据实验要求,设计并搭建微型计算机系统;2. 连接输入输出设备,并编写控制程序;3. 进行输入输出接口技术应用实验,如串行通信、并行通信等;4. 进行总线技术应用实验,如总线传输数据测试等;5. 进行存储器技术应用实验,如读写存储器数据等;6. 进行中断和DMA技术应用实验,如中断服务程序编写等;7. 完成相关实验报告并进行总结。
五、实验设备和材料1. 微型计算机实验箱、电源适配器;2. 8051单片机、存储器芯片、输入输出芯片,如74HC164等;3. LED数码管、LCD液晶显示器、键盘、计算器等输入输出设备;4. 可编程芯片编程器、逻辑分析仪等实验设备。
微机原理与接口技术实验报告

微机原理与接口技术实验报告引言微机原理与接口技术是计算机科学与技术专业的一门重要课程,通过实验的方式来深入理解微机原理和接口技术的原理和应用。
本实验报告将详细介绍我们在实验中所学到的内容和实验结果。
一、实验目的微机原理与接口技术实验的主要目的是让学生通过实验来了解和掌握微机系统的结构与工作原理,以及接口技术的基本原理和应用。
通过实验,我们可以加深对微机原理和接口技术的理解,并能够熟练操作相应的实验设备和软件。
二、实验内容本次实验主要包括以下几个方面的内容:1. 微机系统的组成与原理:了解微机系统的基本组成部分,包括微处理器、存储器、输入输出设备等,并学习它们的工作原理和相互之间的联系。
2. 微机系统的调试与测试:学习使用调试工具和测试设备来验证微机系统的正确性和稳定性,通过调试和测试来发现和排除系统中的问题。
3. 接口技术的原理与应用:了解各种接口技术的原理和应用,包括并行接口、串行接口、USB接口等,学会设计和实现简单的接口电路。
4. 接口电路的设计与调试:通过实际设计和调试接口电路,加深对接口技术原理的理解,并能够解决实际问题。
三、实验过程及结果在实验中,我们首先学习了微机系统的基本结构和工作原理,并通过实际操作,搭建了一个简单的微机系统。
通过调试和测试,我们验证了系统的正确性和稳定性。
接着,我们学习了各种接口技术的原理和应用。
我们以并行接口为例,设计了一个简单的并行接口电路,并通过实验验证了其正确性。
同时,我们还学习了串行接口和USB接口的原理,并了解了它们在实际应用中的重要性。
在接口电路的设计和调试过程中,我们遇到了一些问题,例如信号传输的稳定性、接口电路的兼容性等。
通过分析和调试,我们逐步解决了这些问题,并取得了令人满意的实验结果。
四、实验总结通过本次实验,我们深入了解了微机原理和接口技术的基本原理和应用。
通过实际操作和调试,我们不仅掌握了微机系统的组成和工作原理,还学会了设计和实现简单的接口电路。
微机原理与接口技术实验报告

微机原理与接口技术实验报告实验目的:本次实验旨在通过实际操作,加深对微机原理与接口技术的理解,掌握接口技术的基本原理和应用方法,提高学生的动手能力和实际应用能力。
实验内容:1. 学习并掌握微机原理与接口技术的基本知识;2. 了解并熟悉常见的接口技术及其应用;3. 进行实际操作,设计并完成一个简单的接口电路。
实验仪器与设备:1. 个人电脑;2. 电子元件,电阻、电容、集成电路等;3. 实验板、示波器、示教电脑等。
实验步骤:1. 阅读相关的微机原理与接口技术的教材,了解基本原理;2. 学习常见的接口技术,例如并行接口、串行接口等;3. 进行实际操作,设计一个简单的接口电路,包括硬件设计和软件编程;4. 调试电路,确保接口电路能够正常工作;5. 编写实验报告,总结实验过程和实验结果。
实验结果与分析:经过实际操作,我们成功设计并完成了一个简单的接口电路。
在实验过程中,我们深入理解了微机原理与接口技术的相关知识,掌握了接口技术的基本原理和应用方法。
通过调试电路,我们验证了接口电路的正常工作,加深了对接口技术的理解。
结论:本次实验使我们更加深入地了解了微机原理与接口技术,提高了我们的动手能力和实际应用能力。
通过设计和完成接口电路,我们对接口技术有了更加直观的认识,为今后的学习和工作打下了坚实的基础。
总结:微机原理与接口技术是计算机专业的重要课程,通过实验学习,我们不仅加深了对知识的理解,还提高了动手能力和实际应用能力。
希望同学们能够认真对待每一次实验,不断提升自己的能力,为未来的发展打下坚实的基础。
至此,本次微机原理与接口技术实验报告完毕。
《微机原理与接口技术》实验指导书

微机原理与接口技术实验指导书实验一:微处理器概述及数据传输实验一、实验目的•了解微处理器的基本概念和工作原理;•学习数据传输的基本知识;•掌握使用微处理器进行数据传输的方法。
二、实验器材•1个微处理器开发板;•1个串行通信模块;•相应的连接线。
三、实验内容在该实验中,你将学习如何使用微处理器进行数据传输,具体实验步骤如下:1.将开发板和串行通信模块连接起来;2.将数据发送器连接到串行通信模块的发送端口,将数据接收器连接到串行通信模块的接收端口;3.通过开发板上的开关设置要发送的数据;4.通过串行通信模块将数据发送到计算机;5.在计算机上使用相应的软件接收数据,并验证接收到的数据是否正确。
四、实验步骤1.将开发板和串行通信模块连接起来,确保连接正确并稳定;2.将数据发送器插入串行通信模块的发送端口,将数据接收器插入串行通信模块的接收端口;3.在开发板上的开关上设置要发送的数据;4.打开计算机上的串行通信软件,配置正确的串口号和波特率;5.点击软件的接收按钮,准备接收数据;6.在开发板上的开关上切换到发送模式,并观察串行通信模块的指示灯是否正常闪烁;7.在串行通信软件上观察接收到的数据是否与设置的数据一致;8.如果数据传输正常,则实验完成。
五、实验注意事项1.连接线务必稳固连接,确保数据传输正常;2.阅读并理解实验器材的使用说明书;3.注意保持实验环境的整洁,避免影响实验结果;4.在进行数据传输时,确保计算机已正确安装了相应的驱动程序。
六、实验总结通过这次实验,我们初步了解了微处理器的基本概念和工作原理,学习了数据传输的基本知识,并掌握了使用微处理器进行数据传输的方法。
我们在实验中成功地连接了开发板和串行通信模块,并成功地进行了数据传输。
通过实验,我们发现数据传输过程中需要注意连接线的稳固连接,以及计算机是否安装了相应的驱动程序。
实验的结果验证了我们的操作方法的正确性,同时也为后续实验奠定了基础。
注意:本指导书旨在引导实验过程,实验过程中如有任何危险情况,请立即停止实验并寻求实验室管理员的帮助。
微机原理与接口技术实验报告

微机原理与接口技术实验报告实验目的:本次实验旨在熟悉并掌握微机原理与接口技术的相关知识,通过实例操作和分析实验数据,加深对微机原理与接口技术的理解。
一、实验器材与软件1. 硬件器材:计算机主机、外设设备2. 软件工具:操作系统、编程软件二、实验步骤及结果分析1. 实验1:计算机开机自检在实验中,通过开机启动计算机,观察计算机进行自检的过程。
根据显示屏上的自检信息,可以判断计算机硬件的工作状态。
2. 实验2:串口通信测试在本实验中,通过串口通信实现计算机与外设设备之间的数据传输。
首先,将串口接口连接到计算机主机,然后进行相应的设置,包括波特率、数据位、停止位和校验位等。
在实验中,通过编写相应的程序,实现计算机与外设设备之间的数据交互。
通过观察实验结果,判断串口通信是否正常。
3. 实验3:并口通信测试本实验旨在通过并行口通信实现计算机与外设设备之间的数据传输。
首先,将并行口接口连接到计算机主机。
然后,根据实验要求进行相应的设置,包括数据总线的宽度、传输模式等。
通过编写程序,实现计算机与外设设备之间的数据交互。
观察实验结果,判断并口通信是否正常。
4. 实验4:USB接口测试在本实验中,通过USB接口实现计算机与外设设备之间的数据传输。
首先,将USB接口连接到计算机主机。
然后,在计算机中安装相应的驱动程序。
通过编写程序,实现计算机与外设设备之间的数据交互。
观察实验结果,判断USB接口是否正常工作。
5. 实验5:网络接口测试本实验旨在通过网络接口实现计算机之间的数据传输。
首先,将计算机连接到局域网中的其他计算机。
然后,进行相应的设置,包括IP地址、子网掩码等。
通过编写程序,实现计算机之间的数据交互。
观察实验结果,判断网络接口是否正常工作。
三、实验总结通过本次实验,我对微机原理与接口技术有了更深入的了解,掌握了串口、并口、USB接口和网络接口等常用接口的使用方法。
通过实验的操作和分析,我对接口通信的原理和实现方式有了更详细的了解,对计算机与外设设备之间的数据传输有了更清楚的认识。
微机原理与接口技术实验报告

微机原理与接口技术实验报告实验一,微机原理实验。
1. 实验目的。
本实验旨在通过对微机原理的实验,加深学生对微机原理相关知识的理解,提高学生的动手能力和实验技能。
2. 实验内容。
本实验主要包括微机原理的基本知识、微处理器的结构和功能、微机系统的总线结构、存储器与I/O接口。
3. 实验步骤。
(1)了解微机原理的基本知识,包括微处理器的分类、功能和工作原理。
(2)学习微机系统的总线结构,掌握总线的分类、功能和工作原理。
(3)了解存储器与I/O接口的基本概念和工作原理。
(4)进行实际操作,通过实验板进行微机原理实验,加深对微机原理知识的理解。
4. 实验结果。
通过本次实验,我深刻理解了微机原理的基本知识,掌握了微处理器的结构和功能,了解了微机系统的总线结构,以及存储器与I/O接口的工作原理。
通过实际操作,我对微机原理有了更深入的认识,提高了自己的动手能力和实验技能。
实验二,接口技术实验。
1. 实验目的。
本实验旨在通过对接口技术的实验,加深学生对接口技术相关知识的理解,提高学生的动手能力和实验技能。
2. 实验内容。
本实验主要包括接口技术的基本知识、接口电路的设计与调试、接口技术在实际应用中的作用。
3. 实验步骤。
(1)了解接口技术的基本知识,包括接口的分类、功能和设计原则。
(2)学习接口电路的设计与调试,掌握接口电路设计的基本方法和调试技巧。
(3)了解接口技术在实际应用中的作用,包括各种接口的应用场景和实际案例。
(4)进行实际操作,通过实验板进行接口技术实验,加深对接口技术知识的理解。
4. 实验结果。
通过本次实验,我深刻理解了接口技术的基本知识,掌握了接口电路的设计与调试方法,了解了接口技术在实际应用中的作用。
通过实际操作,我对接口技术有了更深入的认识,提高了自己的动手能力和实验技能。
总结。
通过微机原理与接口技术的实验,我对微机原理和接口技术有了更深入的理解,提高了自己的动手能力和实验技能。
希望通过今后的学习和实践,能够更加深入地掌握微机原理与接口技术的知识,为将来的工作和研究打下坚实的基础。
微机原理及接口技术实验报告

微机原理及接口技术实验报告16位微机原理显示程序设计实验报告一、实验目的1.掌握PC机上以十六进制形式显示数据的方法。
2.掌握部分DOS功能调用使用方法。
二、实验设备PC微机一台、TD-PITD试验系统一套。
三、实验内容及说明一般来说,有许多程序需要显示输出提示运行的状况和结果,有的还需要将数据区的内容显示在屏幕上,并利用DOS功能调用完成一些提示信息的显示。
通过本实验,初步掌握试验系统配套操作软件的使用。
试验中所使用的DOS功能调用(INT 21H)说明如下。
(1)显示单个字符输出入口:AH=02H调用参数:DL=输出字符(2)显示字符串入口:AH=09H调用参数:DS:DX=串地址,’$’为结束字符(3)键盘输入并回显入口:AH=01H返回参数:AL=输出字符(4)返回DOS系统入口:AH=4CH调用参数:AL=返回码从存储区域读出的数据位十六进制数据,本程序设计的难点在于将十六进制的数据转变成ASCII码显示。
数值与ASCII的关系:0-9转换成ASCII 码是指直接在数字上加上30H即可,A-F转换成ASCII码时直接在数值上加上37H。
实验程序如下。
实验程序清单(例程序文件名:A1.ASM)stack1 segment stackdw 256 dup(?)stack1 endsdata segmentmes db 'press any key to exit!',0AH,0DH,0AH,0DH,'$'mes1 db 'show a as hex:',0AH,0DH,'$'sd db 'a'data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,offset mesmov ah,09Hint 21Hmov dx,offset mes1mov ah,09Hint 21Hmov SI,offset sdmov al,ds:[SI];and al,0F0Hmov cl,4shr al,clcmp al,0AHjb c2add al,07Hc2:add al,30Hmov dl,almov ah,02Hint 21hmov al,ds:[si]and al,0FHcmp al,0AHjb c3add al,07Hc3:add al,30Hmov dl,almov ah,02Hint 21Hkey:mov ah,1int 16Hjz keymov ax,4C00Hint 21Hcode endsend start四、实验步骤1.使用MASM5.0实现(1)编辑源代码源代码的编辑可在.txt 文档中直接编写,程序编写完成后将文件名改成a1.asm,并保存在MASM5.0文件夹所在的目录下MYCODE文件夹中,如:D:\ MASM5.0\MYCODE。
微机原理与接口技术标准实验报告

.实用文档.目录实验一数据传送 (2)实验二算术运算 (8)实验三代码转换 (15)实验四程序的根本结构练习 (21)实验五存储器〔RAM 6264〕扩展 (26)实验六可编程并行接口〔8255〕扩展 (29)实验七可编程计数/定时器〔8253〕扩展 (35)实验八A/D、D/A转换 (46)实验九可编程串行通信接口〔8251〕扩展 (54).实验一:数据传送实验学时:2实验类型:验证实验要求:必修一.实验目的1.学习程序设计的根本方法和技能,掌握用汇编语言设计、编写、调试和运行程序的方法;学习用全屏幕编辑软件QEDIT.EXE建立源程序〔.ASM文件〕;学习用汇编软件MASM.EXE对源文件汇编产生目标文件〔.OBJ文件〕;学习用连接程序LINK.EXE对目标文件产生可执行文件〔.EXE文件〕;学习用调试软件TD.EXE调试可执行文件;2.掌握各种寻址方法以及简单指令的执行过程。
二.实验器材PC机三.实验组织运行要求1.利用堆栈实现AX的内容与BX的内容进行交换。
堆栈指针SP=2000H,AX=3000H,BX=5000H;2.汇编、调试、观察、记录结果;⑴用QEDIT.EXE软件输入汇编语言源程序,以.ASM格式文件存盘;⑵用MASM对源程序进行汇编产生二进制目标文件〔.OBJ文件〕,再用连接程序LINK产生可执行文件〔.EXE文件〕;⑶用调试软件TD调试、运行程序,观察、记录结果。
四.实验步骤1.进入子目录E:>\SY86后,利用QEDIT.EXE〔简称Q〕送入以下汇编语言源程序,并以M1.ASM文件存盘⑴汇编语言程序的上机过程①进入\SY86子目录E:>CD\SY86E:\SY86>②进入QEDIT.EXE 编辑界面E:\SY86> Q③输入文件名*.ASM〔如M1.ASM〕后,输入源程序源程序DATA SEGMENT PARA PUBLIC’DATA’ ;数据段定义DB 512 DUP(0)DATA ENDSSTACK SEGMENT PARA STACK’STACK’ ;堆栈段定义DB 512 DUP( ?)STACK E NDSCODE SEGMENT PARA PUBLIC’CODE’ ;代码段定义ASSUME CS :CODE,DS :DATA,ES:DATA,SS :STACK MAINPROC FAR ;定义过程程序PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXMOV SP,2000hMOV AX,3000hMOV BX,5000hPUSH AXPUSH BXPOP AXPOP BXRETMAIN ENDP ;结束主要局部程序CODE ENDS ;结束代码段END MAIN ;结束汇编⑵用MASM程序产生.OBJ文件操作如下:E:\SY86> MASM M1.ASM M1.OBJMicrosoft〔R〕Macro Assembler Version 5.00Copyright〔C〕Microsoft Corp 1981-1985,1987. All rights reserved. Object Filename [HEXASC.OBJ]:Source listing [NUL.LST]:Cross-reference [NUL.CRF]:51576+385928 Bytes symbol space free0 Warning Errors0 Severe Errors以上说明汇编过程已经完成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一:编写程序,比较两个字符串STRING1和STRING2所含的字符是否相同,若字符相同则显示“Match”,否则显示“NoMatch”参考程序:DATASEGMENTSTRING1DB'HAPPYASM'LENEQU$-STRING1STRING2DB'HAPPYASM'MESSAGE1DB'MATCH',0DH,0AH,'$'MESSAGE2DB'NOMATCH',0DH,0AH,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVES,AXLEASI,STRING1LEADI,STRING2MOVCX,LENCOMPARE:MOVAL,[SI]MOVBL,[DI]CMPAL,BLJNEDISMATCHINCSIINCDILOOPCOMPAREMATCH:LEADX,MESSAGE1JMPDISPDISMATCH:LEADX,MESSAGE2DISP:MOVAH,09HINT21HMOVAH,4CHINT21HCODEENDSENDSTART实验二:编写程序,从键盘输入一串字符,以‘$’或回车结束,将其中的小写字母转变为大写字母,其余字符不做转换,原样输出,结果显示在屏幕上。
参考程序:DATASEGMENTBUFDB50DB?DB50DUP(?)INPUTSTRINGDB'PLEASEINPUTASTRING:','$' OUTPUTSTRINGDB'OUTPUTSTRINGIS:','$' ENTERSTRINGDB0DH,0AH,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEADX,INPUTSTRINGMOVAH,09HINT21HLEADX,BUFMOVAH,0AHINT21HLEADX,ENTERSTRINGMOVAH,09HINT21HLEABX,BUFADDBX,2NEXT1:MOVAL,[BX]INCBXCOMPARE:CMPAL,24HJZDISPCMPAL,61HJBNEXT1CMPAL,7AHJANEXT1SUBAL,20HMOV[BX-1],ALJMPNEXT1DISP:LEADX,OUTPUTSTRINGMOVAH,09HINT21HLEADX,BUF+2MOVAH,09HINT21HMOVAH,4CHINT21HCODEENDSENDSTART实验三:利用子程序方法编写程序,设有10个无符号数的字节序列,查找该序列中的最大值和最小值,并把结果显示在屏幕上。
参考程序1:(针对一位10进制数)STACKSEGMENTSTACKDW256DUP(?)TOPLABELWORDSTACKENDSDATASEGMENTBUFDB00H,01H,02H,03H,04HDB05H,06H,07H,08H,09HCOUNTEQU$-BUFENTERSTRINGDB0DH,0AH,'$'MAXSTRINGDB'THEMAXIMUNNUMBERIS:','$'MINSTRINGDB'THEMINIMUNNUMBERIS:','$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEASP,TOPMOVSI,OFFSETBUFMOVCX,COUNTCALLBRANCHPUSHAXLEADX,MAXSTRINGMOVAH,09HINT21HPOPAXMOVDL,AHADDDL,30HPUSHAXMOVAH,02HINT21HLEADX,ENTERSTRINGMOVAH,09HINT21HLEADX,MINSTRINGMOVAH,09HINT21HPOPAXMOVDL,ALADDDL,30HMOVAH,02HINT21HMOVAH,4CHINT21HBRANCHPROCNEARJCXZNEXT4PUSHSIPUSHCXPUSHBXMOVBH,[SI]MOVBL,BHCLDNEXT1:LODSBCMPAL,BHJBENEXT2MOVBH,ALJMPNEXT3NEXT2:CMPAL,BLJAENEXT3MOVBL,ALNEXT3:LOOPNEXT1MOVAX,BXPOPBXPOPCXPOPSINEXT4:RETBRANCHENDPCODEENDSENDSTART参考程序二:(针对两位十六进制数或无符号数)STACKSEGMENTSTACKDW256DUP(?)TOPLABELWORDSTACKENDSDATASEGMENTBUFDB0FFH,55H,33H,44H,54HDB45H,46H,47H,48H,1AHCOUNTEQU$-BUFENTERSTRINGDB0DH,0AH,'$'MAXSTRINGDB'THEMAXIMUNNUMBERIS:','$'MINSTRING DB'THEMINIMUNNUMBERIS:','$' DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEASP,TOPMOVSI,OFFSETBUFMOVCX,COUNTCALLBRANCHMOVDX,AXPUSHDXLEADX,MAXSTRINGMOVAH,09HINT21HPOPDXMOVAL,DHPUSHDXCALLDISPGAO4POPDXMOVAL,DHPUSHDXCALLDISPDI4LEADX,ENTERSTRINGMOVAH,09HINT21HLEADX,MINSTRINGMOVAH,09HINT21HPOPDXMOVAL,DLPUSHDXCALLDISPGAO4POPDXMOVAL,DLCALLDISPDI4MOVAH,4CHINT21HBRANCHPROCNEARJCXZNEXT4PUSHSIPUSHCXPUSHBXMOVBH,[SI]MOVBL,BHCLDNEXT1:LODSBCMPAL,BHJBENEXT2MOVBH,ALJMPNEXT3NEXT2:CMPAL,BLJAENEXT3MOVBL,ALNEXT3:LOOPNEXT1MOVAX,BXPOPBXPOPCXPOPSINEXT4:RETBRANCHENDPDISPDI4PROCNERR;低四位ANDAL,0FHMOVDL,ALCMPDL,9JLENUM1ADDDL,7NUM1:ADDDL,30HMOVAH,02HINT21HRETDISPDI4ENDPDISPGAO4PROCNERR;高四位SARAL,4ANDAL,0FHMOVDL,ALCMPDL,9JLENUM2ADDDL,7NUM2:ADDDL,30HMOVAH,02HINT21HRETDISPGAO4ENDPCODEENDSENDSTART实验四:8255交通灯参考程序:MY8255_AEQU288H;8255的A口地址MY8255_BEQU289H;8255的B口地址MY8255_CEQU28AH;8255的C口地址MY8255_MODEEQU28BH;8255的控制寄存器地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATASEGMENTLADB?;定义数据变量LBDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,MY8255_MODE;定义8255工作方式MOVAL,80H;工作方式0,A口和B口为输出OUTDX,ALL1:MOVDX,MY8255_A;写A口发出的数据,1组绿灯亮,2组红灯亮MOVAL,24HOUTDX,ALCALLDALLY1MOVCX,05HL2:MOVDX,MY8255_A;写A口发出的数据,1组黄灯亮,2组红灯亮MOVAL,44HOUTDX,ALCALLDALLY2MOVDX,MY8255_A;写A口发出的数据,1组黄灯灭,2组红灯亮MOVAL,04HOUTDX,ALCALLDALLY2LOOPL2L3:MOVDX,MY8255_A;写A口发出的数据,1组绿灯亮,2组红灯亮MOVAL,81HOUTDX,ALCALLDALLY1MOVCX,05HL4:MOVDX,MY8255_A;写A口发出的数据,1组黄灯亮,2组红灯亮MOVAL,82HOUTDX,ALCALLDALLY2MOVDX,MY8255_A;写A口发出的数据,1组黄灯灭,2组红灯亮MOVAL,80HOUTDX,ALCALLDALLY2LOOPL4L5:MOVAH,01H;判断是否有按键按下,调用功能号1INT16H;ROMBIOS功能调用JZL1;无按键则跳回继续循环,有则退出QUIT:MOVAX,4C00H;结束程序退出;INT21H;DOS系统功能调用DALLY1PROCNEAR;软件延时子程序,东西方向红灯亮,南北方向绿灯亮PUSHCXPUSHDIMOVCX,3FFHY1:MOVDI,9000HX1:DECDIJNZX1LOOPY1POPDIPOPCXRETDALLY1ENDPDALLY2PROCNEAR;软件延时子程序,黄灯闪烁(即亮与灭)的时间间隔,PUSHCXPUSHDIMOVCX,3FHY2:MOVDI,9000HX2:DECDIJNZX2LOOPY2POPDIPOPCXRETDALLY2ENDPCODEENDSENDSTART参考程序2:流水灯MY8255_AEQU288H;8255的A口地址MY8255_BEQU289H;8255的B口地址MY8255_CEQU28AH;8255的C口地址MY8255_MODEEQU28BH;8255的控制寄存器地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATASEGMENTLADB?;定义数据变量DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,MY8255_MODE;定义8255工作方式MOVAL,80H;工作方式0,A口和B口为输出OUTDX,ALMOVCX,0FFFFHMOVBL,80HL1:MOVDX,MY8255_A;写A口发出的数据MOVAL,BLOUTDX,ALCALLDALLY1RORBL,1LOOPL1QUIT:MOVAX,4C00H;结束程序退出INT21H;DOS系统功能调用DALLY1PROCNEAR;软件延时子程序,东西方向红灯亮,南北方向绿灯亮PUSHCXPUSHDIMOVCX,3FHY1:MOVDI,9000HX1:DECDIJNZX1LOOPY1POPDIPOPCXRETDALLY1ENDPCODEENDSENDSTART实验五:8254一赫兹方波输出参考程序:MY8254_COUNT0EQU280H;8254计数器0端口地址MY8254_COUNT1EQU281H;8254计数器1端口地址MY8254_COUNT2EQU282H;8254计数器2端口地址MY8254_MODEEQU283H;8254控制寄存器端口地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODESTART:MOVDX,MY8254_MODE;初始化8254工作方式MOVAL,37H;计数器0,方式3OUTDX,ALMOVDX,MY8254_COUNT0;装入计数初值MOVAL,00;1000分频OUTDX,ALMOVAL,10OUTDX,ALMOVDX,MY8254_MODE;初始化8254工作方式MOVAL,77H;计数器1,方式3OUTDX,ALMOVDX,MY8254_COUNT1;装入计数初值MOVAL,00;1000分频OUTDX,ALMOVAL,10OUTDX,ALQUIT:MOVAX,4C00H;结束程序退出INT21HCODEENDSENDSTART实验六:AD转换(0809)参考程序:CODESEGMENTASSUMECS:CODESTART:MOVDX,298H;启动A/D转换器OUTDX,ALMOVCX,0FFFFHDELAY:LOOPDELAYMOVDX,298HINAL,DXPUSHDXPUSHAXCALLDISPGAO4POPAXPOPDXCALLDISPDI4PUSHDXMOVAH,06HMOVDL,0FFHINT21HPOPDXJESTARTMOVAH,4CHINT21HDISPDI4PROCNERR;低四位ANDAL,0FHMOVDL,ALCMPDL,9JLENUM1ADDDL,7NUM1:ADDDL,30HMOVAH,02HINT21HRETDISPDI4ENDPDISPGAO4PROCNERR;高四位SARAL,4ANDAL,0FHMOVDL,ALCMPDL,9JLENUM2ADDDL,7NUM2:ADDDL,30HMOVAH,02HINT21HRETDISPGAO4ENDPCODEENDSENDSTART。