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

微机原理及接口技术实验一、实验目的本实验旨在通过学习微机原理和接口技术,了解和掌握微机系统的基本原理和接口技术的应用,培养学生对微机系统的认识和实践操作能力。
二、实验内容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. 可编程芯片编程器、逻辑分析仪等实验设备。
微机原理与接口技术实验报告

微机原理与接口技术实验报告
本次实验是关于微机原理与接口技术的实验报告,通过本次实验,我们将深入
了解微机原理与接口技术的相关知识,并通过实际操作来加深对这些知识的理解和掌握。
实验一,微机原理。
在本次实验中,我们首先学习了微机的基本原理,包括微机的组成结构、工作
原理和基本功能。
通过实际操作,我们了解了微机的主要组成部分,如中央处理器(CPU)、内存、输入输出设备等,并学习了它们之间的工作原理和相互配合关系。
同时,我们还学习了微机的基本指令系统和数据传输方式,加深了对微机工作原理的理解。
实验二,接口技术。
在接口技术的实验中,我们学习了微机与外部设备之间的接口技术,包括并行
接口、串行接口和通用接口等。
我们通过实际操作,了解了这些接口技术的工作原理和应用场景,学会了如何通过接口技术实现微机与外部设备的数据交换和通信。
实验三,实验综合。
在本次实验的最后,我们进行了一个综合实验,通过实际操作来综合运用微机
原理和接口技术的知识,实现一个具体的功能。
通过这个实验,我们加深了对微机原理与接口技术的理解,掌握了如何将理论知识应用到实际操作中。
总结。
通过本次实验,我们深入学习了微机原理与接口技术的相关知识,并通过实际
操作加深了对这些知识的理解和掌握。
微机原理与接口技术作为计算机科学与技术的基础知识,对我们今后的学习和工作都具有重要意义。
希望通过这次实验,能够对大家的学习和工作有所帮助,并为今后的学习打下坚实的基础。
以上就是本次实验的实验报告,希望对大家有所帮助。
感谢大家的阅读!。
微机原理与接口技术实验

实验要求1、带预习报告上机根据实验要求,作好充分预习,设计实验硬件原理及接线图(必须标出相关的管脚号,以备硬件连线及测试),画出程序流程图,写出源程序清单,规划好调试步骤,上机时带预习报告。
注意:无预习报告者不得做实验。
2、认真实验,经教师检查后,方可离开注意掌握软、硬件调试方法,提高分析问题、解决问题的能力。
对所编写的程序必须十分清楚,作到知其然,亦知其所以然,硬件电路原理清楚,熟练应用常规的仪器(如万用表、示波器等)检查测试硬件电路。
指导教师还会根据实验要求,提出问题。
3、按时提交实验报告实验结束后,在预习报告的基础上,完成实验报告,并于下次实验时交给指导教师。
实验报告格式实验* ***** ***** *****一、实验目的二、实验内容三、硬件原理及接线图四、程序流程图五、程序清单六、实验步骤七、实验结果及现象分析八、收获及建议测13实验安排:地点:综合实验楼0701实验周次星期小节一 6 五1,2二8 五1,2三10 五1,2四12 五1,2五14 五1,2实验一汇编语言程序的调试一、实验目的1、掌握8086汇编程序的编辑、编译、连接及运行过程。
2、掌握使用HQFC软件调试程序的方法。
二、实验内容:编制程序并调试1、上机调试P45 项目1程序。
要求:1)写出调试步骤2)记下代码段数据。
3)记下数据段数据4)用单步调试法调试,记下每句程序目的操作数执行结果。
观察每句程序执行过程中CS、 IP、 FLAGS寄存器的变化。
2、上机调试P54 项目2程序,用单步调试法指出每句程序的调试结果。
要求:1)记下代码段数据。
2)记下数据段数据3)记下程序执行前附加段数据、程序执行后附加段数据。
3)用单步调试法调试,记下lop句之前每句程序目的操作数执行结果。
观察其它句程序的执行结果,观察每句程序执行过程中CS、 IP、 FLAGS寄存器的变化。
三、调试步骤1、编辑源程序,形成****.ASM文件(可用HQFC软件或XP系统下的记事本编辑源程序) (注:在E:盘上建立一个你自己的文件夹,保存你自己的文件)2、编译,形成****.OBJ文件(可用HQFC软件的编译功能)3、链接,形成****.EXE文件(可用HQFC软件的构建功能)4、运行(或调试)(可用HQFC软件的重构运行功能或开始调试)四、调试步骤参考1、编译(编译)在当前运行环境下,选择菜单栏中的“ASM文件编译”菜单,选择编译选项则程序对当前ASM源文件进行编译,编译调试窗口中输出汇编的结果,若程序汇编有错,则详细报告错误信息。
《微机原理与接口技术》实验指导书

微机原理与接口技术实验指导书实验一:微处理器概述及数据传输实验一、实验目的•了解微处理器的基本概念和工作原理;•学习数据传输的基本知识;•掌握使用微处理器进行数据传输的方法。
二、实验器材•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、实验内容一:实验目的:(1) 阅读《实验操作.ppt》, 学习汇编工具的使用(2) 学习附录的程序代码, 理解并输入、编译和查错3) 学习利用编译错误信息进行附录的程序修改;(程序包含一个语法错误和一个逻辑错误)4)学习程序流程控制: (条件跳转指令ja jb (call指令, 观察程序执行时堆栈的变化(学会用debug –g命令设置断点);5 )学习程序中有限的寄存器的使用。
2.实验内容:(1)打开masm for windows软件, 在其中输入实验要求附给的程序, 保存后运行, 程序报错:(2)经分析发现, “noneeded”没有定义, 改为“notneeded”后正常运行(3)运行过程中发现当字母或数字个数达到两位数时, 统计结果的各位与十位对调了。
如下图, 字母数应为13, 但显示为31(4)经检查, 发现第80行程序有误, inc指令应改为dec指令。
运行后程序正常, 调试完毕。
如下图程序框图如下:实验内容二:1.实验目的及内容:编写完整程序, 实现功能:统计以下字符串STR中空格的数目, 结果保存在COUNT中, 并把个数在屏幕上显示出来。
STR DB ' AB CDE FG H I J K L MNOPQ RST UV W XYZ 12 34 56 78 9'L EQU $-STRCOUNT DB ?(字符串STR可以从这里直接拷贝到程序中)实验结果:程序如下:dispmsg macro messgemov ah,9lea dx,messgeint 21hendmDATA segmenttishi db 0dh,0ah,'the original string is:' string db ' AB CDE FG H I J K L MNOPQ RST UV W XYZ 12 34 56 78 9' STRINGLEN= $-stringnewline db 0dh,0ahNspace db 0dH,0aH,'Number of char space is:',?,?Nsp db ?,'$'DATA endsSTACK segment stack 'stack'sta db 100 dup(?)stack endsCODE segmentASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,seg DATAMOV DS,AXxor cx,cxxor dl,dlmov cl,stringlenlea bx,stringcnt:mov al,[bx]cmp al,' 'jz yesspinc blloop cnt jmp shijinzhiyessp:inc dlinc blloop cntjmp shijinzhishijinzhi:lea bx,Nspmov ah,02hint 21hcall char2asc dispmsg tishiMOV AH,4CHINT 21Hchar2asc procmov dl,10 next: xor ah,ahdiv dladd ah,'0'mov [bx],ahdec bxor al,aljnz nextretchar2asc endpcode endsend startEND START运行结果如下:程序流程图如下:实验中遇到的问题及解决方法:1.汇编语言中寄存器有限, 在使用时注意是否保存寄存器中原有的值, 防止在使用寄存器时将原值改变。
8255实验-微机原理与接口技术

实验线路连接
(1) 8255A芯片PC0~ PC7插孔依次接K1~ K8。
(2) 8255A芯片PB0~PB7插孔依次接L1 ~ L8。
(3) 8255A的CS插孔CS-8255接译码输出Y7插
孔。
要求: ① 读懂系统程序中有关 8255A 的部分。
包括:端口地址、初始化编程、 二极管发光情况与开关状态间的对应关系
并使其根据开关 K1~ K8 的状态发光。 · 以 K8 作为总开关,
若 K8打开(0),则 L1~ L8同时熄灭; 若 K8闭和(1),则 L1~ L7由K1~ K7控 制。
IOCONPT EQU 0073H IOCPT EQU 0072H IOBPT EQU 0071H IOAPT EQU 0070H
② 执行程序,并进行观察,记录。 PC 口 8 位接 8 个开关 K1~ K8 , PB 口 8 位接 8 个 LED 发光二极管 L1~ L8 , 并使其根据开关 K1~ K8 的状态发光。
③ 改变电路接法并修改程序,要求实现:
· PA 口 8 位接 8 个开关 K1~ K8 ,
PB 口 8 位接 8 个发光二极管 L1~ L8
IOLED: CALL FORMAT CALL LEDDISP
MOV AL,90H B口输出
;10010000 写方式控制字 方式0 A口输入
MOV DX,IOCONPT
OUT P
IOLED1: MOV DX,IOAPT
IN AL,DX
MOV DX,IOBPT
OUT DX,AL
并行接口 8255 的应用
1、实验目的 掌握8255A和微机接口方法。 掌握8255A的工作方式和编程原理。
2、实验内容
微机原理与接口技术实验

6
认识Tddebug集成操作软件 实验一 认识 集成操作软件
6、实验步骤 、 运行Tddebug软件,选择Edit菜单编写实验程序 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接, 生成执行文件。 使用Rmrun菜单中的Run运行程序,观察运行结果。 使用Rmrun菜单中的Debug调试程序,查看程序段、数据段、附加 段装入内存后的分配情况。单步执行数据传送指令后,观察各寄存 器及数据区的内容。过程如下:
4).从键盘输入一个字符,判断该字符是小写字母、大写字母、数字或其他字符,并给出相应的 ).从键盘输入一个字符,判断该字符是小写字母、大写字母、数字或其他字符, ).从键盘输入一个字符 提示。 提示。
–
数字0~9的ASCII码为30H~39H;大写字母的ASCII码为41H~5AH;小写字母的ASCII码为61H~7AH;
Pmrun Rmrun Help Quit
5
认识Tddebug集成操作软件 实验一 认识 集成操作软件
5、实验内容及说明 、 (1)实验内容:数据传送实验
– –
编程将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕 上。参见示例程序。 修改此程序,采用字符串传送指令完成。
(2)实验中使用DOS功能调用(INT 21H),参见教材《32位微型计算机原理与接口 技术》89页 显示字符串
–
–
按F7单步执行,在代码区中有一个三角,表示正在执行的指令。每一条 指令的执行一定会使目标寄存器和状态寄存器发生变化,从相关窗口看 结果。 检查内存数据区的内容,关键是找出用户程序的数据段和附加段:
方法1:在CPU窗口按Tab键使内存数据显示区成为活动区,按Ctrl+G键,输 入:“DS或ES寄存器的值:偏移地址”,即可显示用户指定的数据区 方法2:选择菜单View| Dump,弹出内存数据显示窗口。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一:编写程序,比较两个字符串STRING1和STRING2所含的字符是否相同,若字符相同则显示“Match”,否则显示“No Match”参考程序:DATA SEGMENTSTRING1 DB 'HAPPY ASM'LEN EQU $-STRING1STRING2 DB 'HAPPY ASM'MESSAGE1 DB 'MATCH',0DH,0AH,'$'MESSAGE2 DB 'NO MATCH',0DH,0AH,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART:MOV AX,DATAMOV DS,AXMOV ES,AXLEA SI,STRING1LEA DI,STRING2MOV CX,LENCOMPARE:MOV AL,[SI]MOV BL,[DI]CMP AL,BLJNE DISMATCHINC SIINC DILOOP COMPAREMATCH:LEA DX,MESSAGE1JMP DISPDISMATCH:LEA DX,MESSAGE2DISP: MOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START实验二:编写程序,从键盘输入一串字符,以‘$’或回车结束,将其中的小写字母转变为大写字母,其余字符不做转换,原样输出,结果显示在屏幕上。
参考程序:DATA SEGMENTBUF DB 50DB ?DB 50 DUP(?)INPUTSTRING DB 'PLEASE INPUT A STRING:','$' OUTPUTSTRING DB 'OUTPUTSTRING IS:','$' ENTERSTRING DB 0DH,0AH,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA DX,INPUTSTRINGMOV AH,09HINT 21HLEA DX,BUFMOV AH,0AHINT 21HLEA DX,ENTERSTRINGMOV AH,09HINT 21HLEA BX,BUFADD BX,2NEXT1:MOV AL,[BX]INC BXCOMPARE:CMP AL,24HJZ DISPCMP AL,61HJB NEXT1CMP AL,7AHJA NEXT1SUB AL,20HMOV [BX-1],ALJMP NEXT1DISP:LEA DX,OUTPUTSTRINGMOV AH,09HINT 21HLEA DX,BUF+2MOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START实验三:利用子程序方法编写程序,设有10个无符号数的字节序列,查找该序列中的最大值和最小值,并把结果显示在屏幕上。
参考程序1:(针对一位10进制数)STACK SEGMENT STACKDW 256 DUP(?)TOP LABEL WORDSTACK ENDSDATA SEGMENTBUF DB 00H,01H,02H,03H,04HDB 05H,06H,07H,08H,09HCOUNT EQU $-BUFENTERSTRING DB 0DH,0AH,'$'MAXSTRING DB 'THE MAXIMUN NUMBER IS:','$'MINSTRING DB 'THE MINIMUN NUMBER IS:','$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXLEA SP,TOPMOV SI,OFFSET BUFMOV CX,COUNTCALL BRANCHPUSH AXLEA DX,MAXSTRINGMOV AH,09HINT 21HPOP AXMOV DL,AHADD DL,30HPUSH AXMOV AH,02HINT 21HLEA DX,ENTERSTRINGMOV AH,09HINT 21HLEA DX,MINSTRINGMOV AH,09HINT 21HPOP AXMOV DL,ALADD DL,30HMOV AH,02HINT 21HMOV AH,4CHINT 21HBRANCH PROC NEARJCXZ NEXT4PUSH SIPUSH CXPUSH BXMOV BH,[SI]MOV BL,BHCLDNEXT1: LODSBCMP AL,BHJBE NEXT2MOV BH,ALJMP NEXT3NEXT2: CMP AL,BLJAE NEXT3MOV BL,ALNEXT3: LOOP NEXT1MOV AX,BXPOP BXPOP CXPOP SINEXT4: RETBRANCH ENDPCODE ENDSEND START参考程序二:(针对两位十六进制数或无符号数)STACK SEGMENT STACKDW 256 DUP(?)TOP LABEL WORDSTACK ENDSDATA SEGMENTBUF DB 0FFH,55H,33H,44H,54HDB 45H,46H,47H,48H,1AHCOUNT EQU $-BUFENTERSTRING DB 0DH,0AH,'$'MAXSTRING DB 'THE MAXIMUN NUMBER IS:','$' MINSTRING DB 'THE MINIMUN NUMBER IS:','$' DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXLEA SP,TOPMOV SI,OFFSET BUFMOV CX,COUNTCALL BRANCHMOV DX,AXPUSH DXLEA DX,MAXSTRINGMOV AH,09HINT 21HPOP DXMOV AL,DHPUSH DXCALL DISPGAO4POP DXMOV AL,DHPUSH DXCALL DISPDI4LEA DX,ENTERSTRINGMOV AH,09HINT 21HLEA DX,MINSTRINGMOV AH,09HINT 21HPOP DXMOV AL,DLPUSH DXCALL DISPGAO4POP DXMOV AL,DLCALL DISPDI4MOV AH,4CHINT 21HBRANCH PROC NEARJCXZ NEXT4PUSH SIPUSH CXPUSH BXMOV BH,[SI]MOV BL,BHCLDNEXT1: LODSBCMP AL,BHJBE NEXT2MOV BH,ALJMP NEXT3NEXT2: CMP AL,BLJAE NEXT3MOV BL,ALNEXT3: LOOP NEXT1MOV AX,BXPOP BXPOP CXPOP SINEXT4: RETBRANCH ENDPDISPDI4 PROC NERR ;低四位AND AL,0FHMOV DL,ALCMP DL,9JLE NUM1ADD DL,7NUM1: ADD DL,30HMOV AH,02HINT 21HRETDISPDI4 ENDPDISPGAO4 PROC NERR ;高四位SAR AL,4AND AL,0FHMOV DL,ALCMP DL,9JLE NUM2ADD DL,7NUM2: ADD DL,30HMOV AH,02HINT 21HRETDISPGAO4 ENDPCODE ENDSEND START实验四:8255交通灯参考程序:MY8255_A EQU 288H ;8255的A口地址MY8255_B EQU 289H ;8255的B口地址MY8255_C EQU 28AH ;8255的C口地址MY8255_MODE EQU 28BH ;8255的控制寄存器地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENTLA DB ? ;定义数据变量LB DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,MY8255_MODE ;定义8255工作方式MOV AL,80H ;工作方式0,A口和B口为输出 OUT DX,ALL1: MOV DX,MY8255_A ;写A口发出的数据,1组绿灯亮,2组红灯亮MOV AL,24HOUT DX,ALCALL DALLY1MOV CX,05HL2: MOV DX,MY8255_A ;写A口发出的数据,1组黄灯亮,2组红灯亮MOV AL,44HOUT DX,ALCALL DALLY2MOV DX,MY8255_A ;写A口发出的数据,1组黄灯灭,2组红灯亮MOV AL,04HOUT DX,ALCALL DALLY2LOOP L2L3: MOV DX,MY8255_A ;写A口发出的数据,1组绿灯亮,2组红灯亮MOV AL,81HOUT DX,ALCALL DALLY1MOV CX,05HL4: MOV DX,MY8255_A ;写A口发出的数据,1组黄灯亮,2组红灯亮MOV AL,82HOUT DX,ALCALL DALLY2MOV DX,MY8255_A ;写A口发出的数据,1组黄灯灭,2组红灯亮MOV AL,80HOUT DX,ALCALL DALLY2LOOP L4L5: MOV AH,01H ;判断是否有按键按下,调用功能号1 INT 16H ;ROM BIOS 功能调用JZ L1 ;无按键则跳回继续循环,有则退出QUIT: MOV AX,4C00H ;结束程序退出; INT 21H ;DOS 系统功能调用DALLY1 PROC NEAR ;软件延时子程序,东西方向红灯亮,南北方向绿灯亮 PUSH CXPUSH DIMOV CX,3FFHY1: MOV DI,9000HX1: DEC DIJNZ X1LOOP Y1POP DIPOP CXRETDALLY1 ENDPDALLY2 PROC NEAR ;软件延时子程序,黄灯闪烁(即亮与灭)的时间间隔, PUSH CXPUSH DIMOV CX,3FHY2: MOV DI,9000HX2: DEC DIJNZ X2LOOP Y2POP DIPOP CXRETDALLY2 ENDPCODE ENDSEND START参考程序2:流水灯MY8255_A EQU 288H ;8255的A口地址MY8255_B EQU 289H ;8255的B口地址MY8255_C EQU 28AH ;8255的C口地址MY8255_MODE EQU 28BH ;8255的控制寄存器地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENTLA DB ? ;定义数据变量DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,MY8255_MODE ;定义8255工作方式MOV AL,80H ;工作方式0,A口和B口为输出OUT DX,ALMOV CX,0FFFFHMOV BL,80HL1: MOV DX,MY8255_A ;写A口发出的数据MOV AL,BLOUT DX,ALCALL DALLY1ROR BL,1LOOP L1QUIT: MOV AX,4C00H ;结束程序退出INT 21H ;DOS 系统功能调用DALLY1 PROC NEAR ;软件延时子程序,东西方向红灯亮,南北方向绿灯亮 PUSH CXPUSH DIMOV CX,3FHY1: MOV DI,9000HX1: DEC DIJNZ X1LOOP Y1POP DIPOP CXRETDALLY1 ENDPCODE ENDSEND START实验五:8254一赫兹方波输出参考程序:MY8254_COUNT0 EQU 280H ;8254计数器0端口地址MY8254_COUNT1 EQU 281H ;8254计数器1端口地址MY8254_COUNT2 EQU 282H ;8254计数器2端口地址MY8254_MODE EQU 283H ;8254控制寄存器端口地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DX,MY8254_MODE ;初始化8254工作方式MOV AL,37H ;计数器0,方式3OUT DX,ALMOV DX,MY8254_COUNT0 ;装入计数初值MOV AL,00 ;1000分频OUT DX,ALMOV AL,10OUT DX,ALMOV DX,MY8254_MODE ;初始化8254工作方式MOV AL,77H ;计数器1,方式3OUT DX,ALMOV DX,MY8254_COUNT1 ;装入计数初值MOV AL,00 ;1000分频OUT DX,ALMOV AL,10OUT DX,ALQUIT: MOV AX,4C00H ;结束程序退出 INT 21HCODE ENDSEND START实验六:AD转换(0809)参考程序:CODE SEGMENTASSUME CS:CODESTART:MOV DX,298H ;启动A/D转换器OUT DX,ALMOV CX,0FFFFHDELAY:LOOP DELAYMOV DX,298HIN AL,DXPUSH DXPUSH AXCALL DISPGAO4POP AXPOP DXCALL DISPDI4PUSH DXMOV AH,06HMOV DL,0FFHINT 21HPOP DXJE STARTMOV AH,4CHINT 21HDISPDI4 PROC NERR ;低四位AND AL,0FHMOV DL,ALCMP DL,9JLE NUM1ADD DL,7NUM1: ADD DL,30HMOV AH,02HINT 21HRETDISPDI4 ENDPDISPGAO4 PROC NERR ;高四位SAR AL,4AND AL,0FHMOV DL,ALCMP DL,9JLE NUM2ADD DL,7NUM2: ADD DL,30HMOV AH,02HINT 21HRETDISPGAO4 ENDPCODE ENDSEND START。