微机综合实验
微机实验报告
微机实验报告第⼀次实验1.写出完成下列功能的指令序列(1)传送20H到AL寄存器MOV AL , 20H(2)将(AL)*2 MOV AL , 02H MUL AL (3)传送25H到BL寄存器MOV BL , 25H (4)(AL)*BL MUL BL问最后结果(AX)=?AX=0940H2.分别写出完成下列指令要求的指令(1)将BX的低4位清零AND BX , F0H(2)将AX的⾼4位置1 OR AX , F0H(3)将DX的低4位取反;XOR DX , 0FH(4)将CX的中间⼋位清零AND CX , 0FF0H(5)将AX中与BX中的对应位不相同的位均置1 XOR AX , BX3.上机运⾏下⾯指令序列,分析运⾏后(AX)=?mov cl , 8sar ax ,cldec axmov cx ,8mul cxax=210.9h4. 4.设DS=当前段地址,BX=0300H,SI=0002H,请⽤DEBUG的命令将存储器偏移地址300-304H连续单元装⼊0AH0BH0CH0DH0EH。
在DEBUG状态下送⼊下⾯的程序,并⽤单步执⾏的⽅法,分析每条指令原源地址的形成过程?当数据传送完毕时,AX中的内容是什么?8.编程:求两个数的平均值。
这两个数分别放在X单元和Y单元中,⽽平均值放在Z单元中。
即Z=(X+Y)/2 data segmentx db 2y db 6z db ?data endscode segmentassume cs:code, ds;datastart:mov ax, datamov ds,axmov al, xmov ah,0add al,ymov bl,2div blint 21hcode endsend start9.输⼊下⾯源程序,并对程序进⾏会变,连接,调式并说明程序的功能。
data segment number dw 0168hdata endscode segmentassume cs;code, ds: dataorg 0100hstart:mov ax, datamov ds, axmov dx,0mov bx, 0001hmov di, 8000hmov si, 0mov ax, numbermov cx, 16next;test ax, bxjz continueor dx, diinc sicontinue:ror di, 1mov ah,4chint 21hcode endsend start1.编写程序: 求1+2+3+…..+100的和data segment number db 01hdata endscode segmentassume cs:code , ds:datastart:mov ax , datamov ds , axmov ax , datamov bx , numbermov ax , 0mov cx , 64hnext:add ax ,bxinc bxloop nextmov ah , 4chint 21hcode endsend start2.在内存中tab为⾸的地⽅存有1-9的平⽅值,从键盘输⼊⼀个数(1-9),将该数存⼊X单元,⽴⽅值存⼊XXX单元中data segmenttab db 0,1,4,9,16,25,36,49,64,81x db 10dup(?)xxx db 10dup(?)data endscode segmentassume cs:code ,ds: datastart:mov ax ,datamov ds , ax mov ax , datamov cx ,09hnext:mov ah , 1int 21hand ah ,0fhmov bx ,ahmov si , offset tabmov sp , offset xmov di , offset xxxmov dx , byte ptr[bx+si]mov al, blmul dxmov [bx+di] ,axmov [sp+bx] , bxmov ah , 4chint 21hcode endsend start第⼆次实验顺序程序设计从键盘输⼊两个1位⼗进制数,求这两个数的和,并将结果显⽰在屏幕上data segment infor1 db 'please input the first data (<10):$'infor2 db 0ah,0dh,'please input the second data (<10):$'infor3 db 0ah,0dh,'the result is:$'data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,offset infor1mov ah,9int 21hmov ah,1int 21hand al,0fhmov ah,00000000000000000000mov bl,almov dx,offset infor2int 21hmov ah,1int 21hand ax,000fhadd al,blaaaor ax,3030hpush axmov dx,offset infor3 mov ah,9int 21hpop axmov dl,ahpush axmov ah,2int 21hpop axmov dl,almov ah,2int 21hmov ah,4chint 21hcode endsend startresult db 0ah,0dh,'cube result is :$' data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,offset numbermov ah,9int 21hmov ah,1int 21hand ax,000fhmov bx,axmul blmul blmov cl,64hdiv clor al,30hpush axmov dx,offset resultmov ah,9int 21hpop axmov dl,alpush axmov ah,2int 21hpop axmov cl,0ahmov al,ahmov ah,0div clor ax,3030hpush axmov ah,2int 21hpop axmov dl,ahmov ah,2int 21hmov ah,4chint 21hcode endsend start分⽀程序设计1.某程序可从键盘接收命令(0-5),分别专项6个⼦程序,⼦程序⼊⼝地址分别为p0-p5,编制程序,⽤跳转表实现分⽀结构程序设计,记录实验结果data segmentmessage db 'please input key (0-5):$'crmessage db 0ah,0dh,'$'errormessage db 'you hit error key !',0ah,0dhdb 'please try again(0-5):$'message0 db 'you hit the key 0',0ah,0dh,'$'message1 db 'you hit the key 1',0ah,0dh,'$'message2 db 'you hit the key 2',0ah,0dh,'$'message3 db 'you hit the key 3',0ah,0dh,'$'message4 db 'you hit the key 4',0ah,0dh,'$'message5 db 'you hit the key 5',0ah,0dh,'$'code segmentassume cs:code,ds:data start:mov ax,datamov ds,axmov ah,9lea dx,messageint 21htryagain:mov ah,1int 21hmov bl,almov ah,9mov dx,offset crmessage int 21hcmp bl,'0'jz key0cmp bl,'1'jz key1cmp bl,'2'jz key2cmp bl,'3'jz key3cmp bl,'4'jz key4cmp bl,'5'jz key5error:mov ah,9mov dx,offset errormessage int 21hjmp tryagainkey0:lea dx,message0mov ah,9int 21hjmp exitkey1:lea dx,message1 mov ah,9int 21hjmp exitkey2:lea dx,message2 mov ah,9int 21hjmp exitkey3:lea dx,message3 mov ah,9int 21hjmp exitkey4:lea dx,message4 mov ah,9int 21hjmp exitkey5:lea dx,message5 mov ah,9int 21hexit:mov ah,4chint 21hcode endsend start第三次实验循环程序设计1.从⾃然数1开始累加,直到累加和⼤于1000为⽌,统计被累加的⾃然数的个数,并把统计的个数送⼊N单元,把累加和送⼊SUM单元。
南理工微机实验报告
南理工微机实验报告篇一:微机实验报告实验1 基本操作实验一、实验目的(1)掌握TD- PITC 80X86微机原理及接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。
(2)掌握使用运算指令类编程及调试方法。
(3)掌握运算类指令对各状态标志位的影响及其测试方法。
(4)学习使用软件监视变量的方法。
二、实验设备PC机一台,TD- PITC实验装置一套三、实验内容及步骤通过对样例程序的操作,学会使用在TD- PITC环境下,如何输入汇编语言程序,如何进行汇编语言源程序的汇编、连接、下载和运行;在调试程序的学习过程中,应学会:如何设置断点,如何单步运行程序,如何连续运行程序,怎样查看寄存器的内容,怎样修改寄存器的内容,怎样查看存储器的内容,怎样修改存储器的内容实验内容一——BCD码转换为二进制实验内容将四个二位十进制数的BCD码存放于3500H起始的内存单元中,将转换的二进制数存入3501H起始的内存单元中,自行绘制流程图并编写程序。
实验步骤:1)运行Wmd86软件,进入Wmd86集成开发环境。
2)根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言。
语言选择后,下次再启动软件,语言环境保持这次的修改不变。
在这里我们选择汇编语言。
3)语言选择后,点击新建来新建一个文档。
默认文件名为Wmd861.4)编写实验程序。
并保存,此时系统会提示输入新的文件名,输完后点击保存。
实验程序清单如下:SSTACK SEGMENT STACKDW 64 DUPSSTACK ENDSCODE SEGMENTASSUME CS:CODESTART:XOR AX,AXMOV SI 3500HMOV DI 3510HA1:MOVE AL,[SI]ADD AL,ALMOV BL,ALADD AL,ALADD AL,ALADD AL,BLINC SIADD AL,[SI]MOV [DI],ALINC SIINC DILOOP A1A2:JMP A2CODE ENDSEND START5)点击编译文件,若程序无误,再点击进行连接。
微机原理及应用实验(题目)
微机原理及应用实验实验一开发环境的使用一、实验目的掌握伟福开发环境的使用方法,包括源程序的输入、汇编、修改;工作寄存器内容的查看、修改;内部、外部RAM内容的查看、修改;PSW中个状态位的查看;机器码的查看;程序的各种运行方式,如单步执行、连续执行,断点的设置。
二、实验内容在伟福开发环境中编辑、汇编、执行一段汇编语言程序,把单片机片内的30H~7FH 单元清零。
三、实验设备PC机一台。
四、实验步骤用连续或者单步的方式运行程序,检查30H-7FH 执行前后的内容变化。
五、实验思考1.如果需把30H-7FH 的内容改为55H,如何修改程序?2.如何把128B的用户RAM全部清零?六、程序清单文件名称:CLEAR.ASMORG 0000HCLEAR: MOV R0,#30H ;30H 送R0寄存器MOV R6,#50H ;50H 送R6寄存器(用作计数器)CLR1: MOV A,#00H ;00 送累加器AMOV @R0,A ;00 送到30H-7FH 单元INC R0 ;R0 加1DJNZ R6,CLR1 ;不到50H个字节,继续WAIT: LJMP WAITEND实验二数据传送一、实验目的掌握MCS-51指令系统中的数据传送类指令的应用,通过实验,切实掌握数据传送类指令的各种不同的寻址方式的应用。
二、实验内容1.编制一段程序,要求程序中包含7中不同寻址方式。
2.编制一段程序,将片内RAM30H~32H中的数据传送到片内RAM38H~3AH中。
3.编制一段程序,将片内RAM30H~32H中的数据传送到片外RAM1000H~1002H 中。
4.编制一段程序,将片内RAM40H~42H中的数据与片外RAM2000H~2002H中的数据互换。
三、实验设备PC机一台。
四、实验步骤逐段编制程序,汇编无误后,用连续或者单步的方式运行程序,检查程序的运行结果,看是否达到预期的效果。
五、实验思考1.如何把片外RAM中1000H~100FH单元中的数传送到片外RAM中2000H~200FH单元中?2.如何把ROM中0200H~0207H单元的数传送至片外RAM0000H~0007H单元中?实验三数码转换一、实验目的掌握采用软件方法进行不同形式数据之间的转换,如十进制数与二进制数的转换、十六进制数与BCD码的转换、BCD数与ASCII码之间的转换、非压缩BCD码与压缩BCD码之间的转换。
微机原理实验三实验报告
实验3. 循环程序设计一、实验目的⒈掌握移位指令的使用方法。
⒉学会循环结构程序的编程方法。
⒊利用DEBUG调试程序查看循环程序循环过程中CS和IP的变化情况。
二、实验要求⒈编写程序并上机调试,记录运行结果。
⒉用DEBUG调试程序调试所编程序,查看并记录每条指令内存单元地址及执行结果(包括F标志寄存各位值。
)⒊注意观察并记录每条指令执行后CS和IP寄存器值变化情况,以加深对循环程序的概念的理解。
三、实验内容⒉编写统计15个学生数学学习成绩程序。
要求:分别统计出低于60分,60-69分,70-79分,80-89分,90-100分的人数,并存放到S5,S6,S7,S8,S9,S10对应内存单元中。
源程序代码;DATA SEGMENTDATA1 DB 55,60,65,88,67,70,75,80,77,85,90,66,95,53,100DATA2 DB 5 DUP(?)DATA ENDS;CODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV CX,15LEA SI,DATA1LEA DI,DATA2AGAIN:MOV AL,[SI]CMP AL,90JB NEXT1INC BYTE PTR[DI]JMP NEXT0NEXT1:CMP AL,80JB NEXT2INC BYTE PTR[DI+1]JMP NEXT0NEXT2:CMP AL,70JB NEXT3INC BYTE PTR[DI+2]JMP NEXT0NEXT3:CMP AL,60JB NEXT4INC BYTE PTR[DI+3]JMP NEXT0NEXT4:INC BYTE PTR[DI+4]NEXT0:INC SILOOP AGAINMOV AH,4CHINT 21HCODE ENDSEND START程序运行结果截图:四、实验总结本次实验掌握移位指令的使用方法。
微机原理的实验报告
一、实验目的1. 理解微机的基本组成和各部件的功能;2. 掌握微机的工作原理和指令系统;3. 熟悉汇编语言程序设计的基本方法;4. 提高动手能力和实际操作技能。
二、实验内容1. 微机系统组成实验(1)实验目的:了解微机的基本组成和各部件的功能。
(2)实验内容:观察并记录微机系统的各个部件,如CPU、内存、硬盘、主板等,并了解它们的功能。
(3)实验步骤:①观察微机系统各个部件的连接情况;②了解各个部件的功能和作用;③分析微机系统的整体结构。
2. 微机工作原理实验(1)实验目的:掌握微机的工作原理。
(2)实验内容:观察并记录微机工作过程中的各个阶段,如指令的取指、译码、执行等。
(3)实验步骤:①观察微机工作过程中的各个阶段;②了解各个阶段的功能和作用;③分析微机工作原理。
3. 指令系统实验(1)实验目的:熟悉汇编语言指令系统。
(2)实验内容:学习汇编语言的基本指令,如数据传送指令、算术运算指令、逻辑运算指令等。
(3)实验步骤:①学习汇编语言的基本指令;②编写简单的汇编语言程序,实现数据传送、算术运算、逻辑运算等功能;③调试程序,观察程序运行结果。
4. 汇编语言程序设计实验(1)实验目的:提高汇编语言程序设计能力。
(2)实验内容:编写一个汇编语言程序,实现以下功能:①计算两个数的和;②判断一个数是否为偶数;③输出程序运行结果。
(3)实验步骤:①编写汇编语言程序,实现上述功能;②调试程序,观察程序运行结果;③分析程序运行过程,确保程序正确性。
三、实验结果与分析1. 微机系统组成实验:通过观察和记录微机系统的各个部件,了解了微机的基本组成和各部件的功能。
2. 微机工作原理实验:通过观察微机工作过程中的各个阶段,掌握了微机的工作原理。
3. 指令系统实验:通过学习汇编语言的基本指令,熟悉了汇编语言指令系统。
4. 汇编语言程序设计实验:通过编写汇编语言程序,提高了汇编语言程序设计能力。
四、实验心得通过本次微机原理实验,我对微机的基本组成、工作原理和指令系统有了更深入的了解。
微机原理综合性实验报告-AD转换器ADC0809数字温度计设计
微机原理与汇编语言综合性实验报告实验项目名称:A/D转换器 ADC0809数字温度计设计实验目的:掌握A/D转换原理,掌握0809A/D转换芯片的硬件电路和软件编程。
实验要求:包括开发环境要求,技术文档要求两部分。
开发环境要求:软件环境:windows98/windowsXP/windows2000,QTH-8086B环境硬件环境:计算机(Pen4CPU, 256MRAM,60G以上硬盘,输入输出设备)技术文档要求:按照实验报告编写要求进行。
要求软、硬件功能描述清晰,实验总结深刻。
实验内容:1 、实验原理图1 电路原理图本实验采用 ADC0809 做 A/D 转换实验。
ADC0809 是一种8路模拟输入、8位数字输出的逐次逼近法A/D器件,转换时间约100us,转换精度为±1/512,适用于多路数据采集系统。
ADC0809片内有三态输出的数据锁存器,故可以与8088微机总线直接接口。
图中ADC0809的CLK信号接CLK=2.385MHZ,基准电压Vref(+)接Vcc。
一般在实际应用系统中应该接精确+5V,以提高转换精度,ADC0809片选信号0809CS和/IOW、/IOR经逻辑组合后,去控制ADC0809的ALE、START、ENABLE信号。
ADC0809的转换结束信号EOC未接,如果以中断方式实现数据采集,需将EOC信号线接至中断控制器8259A的中断源输入通道。
本实验以延时方式等待A/D转换结束,ADC0809的通道号选择线ADD-A、ADD-B、ADD-C 接系统A/D转换器ADC0809数字温度计设计数据线的低3位,因此ADC0809的8个通道值地址分别为00H、01H、02H、03H、04H、05H 、06H、07H。
启动本A/D转换只需如下三条命令:MOV DX,ADPORT ;ADPORT为ADC0809端口地址。
MOV AL,DATA ;DATA为通道值。
MOV DX, AL ;通道值送端口。
微机原理与接口技术实验综合实验实验报告
微机原理与接口技术实验《简单手势无线遥控小车》实验报告通信科学与工程于广溪113007200701.总体概况与说明1.1 选题概况与说明1.2遥控部分概况与说明1.3机动部分概况与说明2.机械部分分析实现3.硬件系统设计实现3.1电源设计实现3.1.1标准电源来源与稳压3.1.1.1电源的电压和电流要求3.1.1.2电源的纹波要求3.1.1.3 防止电源判定空载关机的方法3.1.2电源升压3.1.3电源降压3.2单片机最小系统版设计实现3.3红外光电开关部分设计实现3.4减速直流电机驱动设计实现3.5 STC单片机USB-串口下载调试实现3.6无线模块分析实现3.7系统总电路图4.软件系统设计实现4.1遥控部分软件系统设计实现4.1.1ST188时序检测方法4.1.2 nRF24L01+驱动程序说明4.1.3 遥控部分所有代码文件4.1.3.1 主文件yaokong.c:4.1.3.2 nRF24L01+驱动程序nRF24L01.c4.1.3.3延时文件delay.c4.1.3.4 52单片机寄存器头文件reg52.h4.1.3.5 所有头文件的头文件allhead.h4.1.3.6 变量声明重定义vartypeabbreviation.h4.1.3.7 电机控制命令定义motorcommand.h4.1.3.8 延时头文件delay.h4.1.3.9 nRF24L01+驱动程序头文件nRF24L01.h 4.2机动部分软件系统设计实现4.2.1直流减速电机的驱动方式说明4.2.2机动部分所有代码文件5.总结1.总体概况说明1.1选题概况与说明:本次微机原理与接口技术实验(综合)实验,我选择的题目是一个可以通过手势动作无线控制的小车。
希望实现的是在遥控端通过产生简单的5种手势动作来控制小车的运动状态和方向。
简单来说就是通过手的向前滑动,向后滑动,向左滑动,向右滑动以及在特定区域滑动实现小车的前后左右以及停止5种动作。
微机原理实验报告
微机原理实验报告实验⼀DEBUG 调试实验类型:实验课时:指导教师:时间:2013 年⽉⽇课次:第节教学周次:第周实验分室:实验台号:实验员:⼀、实验⽬的1.练习使⽤DEBUG,调试简单汇编程序。
⼆、实验要求1.掌握DEBUG的使⽤,调试程序。
2.读懂程序中各条指令,说明程序功能。
三、实验内容1.启动DEBUG,⽤A命令输⼊并汇编下列程序段。
100 MOV SI,200103 MOV CX,10106 MOV AL,0108 MOV [SI ],AL10A INC SI10B INC AL10D DEC CX10E JNZ 108110 INT 3四、实验结果及分析实验⼆简单汇编语⾔设计实验类型:实验课时:指导教师:时间: 2012 年⽉⽇课次:第节教学周次:第周实验分室:实验台号:实验员:⼀、实验⽬的1.巩固DEBUG及宏汇编的使⽤。
2.加深对指令的理解。
⼆、实验要求1.设堆栈指针SP=2000H,(AX)=3000H,(BX)=5000H。
请编⼀程序将AX的内容和BX的内容进⾏交换。
请⽤堆栈作为两寄存器交换内容的中间存储单元,⽤DEBUG调试程序进⾏汇编与调试。
2.设DS=当前段指地址,(BX)=0300H,(SI)=0002H,请⽤DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装⼊0AH、0BH、0CH、0DH、0EH。
在DEBUG状态下送⼊下⾯程序,并⽤单步执⾏的⽅法,分析每条指令源地址的形成过程?当数据传送完毕时,AX中的内容是什么?程序清单如下:MOV AX,BXMOV AX,0304HMOV AX,[0304H]MOV AX,[BX]MOV AX,0001[BX]MOV AX,[BX][SI]MOV AX,0001[BX][SI]HLT3.设(AX)=0002H,编⼀个程序段将AX的内容乘10,要求⽤移位的⽅法完成。
三、思想描述实验内容1将两个寄存器的内容进⾏交换时,必须有⼀个中间寄存器才能进⾏内容的交换,如果⽤堆栈做为中间存储单元,必须遵循先进后出的原则。
微机实验心得体会
微机实验心得体会在进行微机实验的过程中,我深刻体会到了计算机的基本知识和操作技能对于现代生活的重要性。
微机实验是我们学习计算机相关知识的一个基础环节,通过实践操作,我们能够更好地理解计算机的原理和功能,并能够灵活运用计算机技术解决实际问题。
首先,在实验中我学会了基本的计算机硬件组成和工作原理。
在实验中,我们需要将电源、主机、显示器、键盘等硬件进行组装,并学习了各硬件的功能和作用。
通过实践的过程,我清楚地了解到计算机硬件之间的相互协作关系,例如主机通过电源提供电能,显示器显示出计算机的输出结果,键盘用于输入指令等等。
这些基本知识是我们后续学习计算机相关内容的基础,也为我们理解计算机的工作原理打下了坚实的基础。
其次,在实验中我学会了如何安装和配置计算机操作系统。
我们学习了操作系统的安装方法和常见操作系统的特点。
通过实验,我掌握了格式化硬盘、安装操作系统、进行系统配置等技能。
这些技能在今后的学习和工作中都能派上用场,因为操作系统是计算机上运行各种软件程序的基础,掌握了操作系统的安装和配置技能,我能够更好地进行软件开发和系统管理等工作。
此外,在实验中我还学会了计算机的基本维护和故障排除。
在实验过程中,我们常常会遇到各种计算机故障,例如蓝屏、程序崩溃等等。
通过实验,我学会了如何进行故障的分析和处理,例如查看日志、重启计算机、排除软硬件冲突等等。
这些技能在今后的计算机使用过程中将非常实用,因为计算机故障是我们不可避免地遇到的问题,能够熟练处理计算机故障将会提高我们的工作效率和工作质量。
在进行微机实验的过程中,我还发现了自己的一些不足之处,例如操作失误、理解不透彻等。
通过实验,我明确了自己的不足,并积极采取措施进行改进。
在操作方面,我开始格外仔细,注意力集中,避免了不必要的错误。
在理解方面,我多阅读相关资料,向老师和同学请教,提高了自己对计算机知识的理解和掌握程度。
实践是检验真理的唯一标准,通过实验,我深刻体会到了实践的重要性,只有亲自动手进行实践,才能真正掌握知识,发现问题,并积极解决问题。
微机实验作业两个多位十进制数相加
微机实验作业两个多位十进制数相加实验二两个多位十进制数相加一、要求:将两个多位十进制数(如四位)相加,要求被加数、加数以ASCII 码形式按顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前)。
结果显示在屏幕上。
二、目的:1、学习数据传送和算术运算指令的用法。
2、熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序过程。
程序如下:STACK SEGMENT STACK 'STACK'DW 100H DUP(?)STACK ENDSDA TA SEGMENTADD1 DD H ;加数以组合十进制形式存放在双字单元ADD2 DD HSUM DD ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,ES:DATA,SS:STACKSTART: MOV AX,DA TAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AXLEA SI,ADD1 ;将16位偏移地址传送到通用寄存器中LEA DI,ADD2LEA BX,SUMMOV AL,[SI]ADD AL,[DI] ;最低位的一个字节相加DAA ;加法组合BCD码调整MOV [BX],AL ;结果存放在SUM第一个字节MOV AL,[SI+1] ;第二个字节相加ADC AL,[DI+1]DAAMOV [BX+1],ALMOV AL,[SI+2]ADC AL,[DI+2]DAAMOV [BX+2],ALMOV AL,[SI+3]ADC AL,[DI+3]DAAMOV [BX+3],ALMOV DL,00 ;最高位字节有进位则显示"01" ADC DL,00 CALL DISPSUMMOV AH,4CH ;返回DOSINT 21HDISPSUM PROC NEAR ;结果显示子程序PUSH AXPUSH BXPUSH CXPUSH SIMOV SI ,4PUSH DXMOV CX,5LAB:PUSH CXPUSH BXMOV AL,DLMOV BL,DLMOV CL,4 ;显示高位字节SHR AL,CLADD AL,30HMOV AH,02MOV DL,ALINT 21H ;显示一位字符AND BL,0FH ;显示低位字节ADD BL,30HMOV AH,02MOV DL,BLINT 21HPOP BXPOP CXDEC SIMOV DL,[BX][SI] ;结果显示LOOP LAB POP DXPOP SIPOP CXPOP BXPOP AXRETDISPSUM ENDPCODE ENDSEND START。
微机实验心得体会
微机实验心得体会一、实验目的本次微机实验的主要目的是通过实际操作,掌握微机的基本硬件和软件知识,具体包括计算机的组成结构、操作系统的安装与配置、网络管理与维护等方面的内容。
通过实验,旨在提高我们对计算机技朧的理论和实际操作技能,为将来工作或学习提供有力支持。
二、实验内容1. 计算机组成结构实验2. Windows操作系统安装和配置实验3. Linux操作系统安装和配置实验4. 网络管理与维护实验三、实验过程(一)计算机组成结构实验:1. 了解计算机的主要组成部分,包括:中央处理器(CPU)、内存(RAM)、硬盘、主板、显卡、声卡、网卡等。
通过实际拆卸和组装计算机硬件,了解不同硬件设备的性能和功能。
2. 了解计算机的外设接口,如USB接口、音频接口、视频接口等,并能够正确接入以及使用外设设备。
3. 了解计算机的电源管理,了解计算机的供电原理和方法,学会合理使用及维护电源设备。
(二)Windows操作系统安装和配置实验:1. 了解Windows操作系统的安装步骤和方法,掌握安装过程中的注意事项。
2. 了解Windows操作系统的常用设置,包括:屏幕分辨率、桌面背景、声音设置、网络连接等。
3. 了解Windows系统的驱动程序安装与升级,学会使用设备管理器管理硬件设备。
(三)Linux操作系统安装和配置实验:1. 了解Linux操作系统的各个版本的特点,选择适合的版本进行安装。
2. 了解Linux系统的软件包管理,学会使用包管理器和源码编译安装软件。
3. 了解Linux系统的网络配置,学会使用命令行配置网络连接及查看网络信息。
(四)网络管理与维护实验:1. 了解局域网网络设备的工作原理和配置步骤,如路由器、交换机、网卡等设备。
2. 了解网络拓扑结构的设计原则、网络规划、域名解析等知识。
3. 熟悉网络故障排查与解决方法,包括物理层、数据链路层、网络层、传输层等方面的故障。
四、实验心得通过本次微机实验,我对计算机的组成结构、操作系统安装与配置以及网络管理等方面有了更深入的了解。
微机原理实验四串操作指令
实验四串操作指令程序实验一、实验目的1. 熟悉五种串操作指令的功能,会编写常用的串操作应用程序。
2. 会使用DEBUG 命令查看串操作运行的结果。
二、实验环境1. 硬件:PC 微机2. 软件:Masm for Windows 汇编集成开发环境三、实验讲义串指连续存放在存储器中的一些数据字节、字或者双字。
串操作允许对程序连续存放的数据块进行操作。
这是唯一一种可以从存储器到存储器的指令。
源串一般存放在数据段,偏移地址由SI 指定;目标串必须在附加段,偏移地址由DI 指定。
在每次进行串操作后,SI 和DI 两个指针会自动修改。
修改的是增量方向还是减量方向由标志位DF 决定,DF=0 为增量操作,DF=1 为减量操作。
CX 中存放的是数据块的长度,可在CX 前加重复前缀标志,对串进行连续操作。
执行串指令之前,一般先进行如下操作:源串首地址(末地址)→ SI目的串首地址(末地址)→ DI串长度→ CX建立方向标志DF1. 重复前缀标志助记符判断条件说明REP CX 0 CX=CX-1,若CX 0 则重复REPE 或REPZ CX 0 且ZF=1 CX=CX-1,若CX 0 且ZF=1 则重复REPNE 或REPNZ CX=0 且ZF=0 EX=CX-1,若CX 0 且ZF=0 则重复2. 方向标志指令方向标志由标志位DF 决定,有CLD 和STD 两种指令。
CLD 将DF 置0,地址为增量操作。
STD 将DF 置1,地址为减量操作。
3. 串传送指令格式: [REP] MOVS DESTS, SRCS[REP] MOVSB/ MOVSW / MOVSD功能:将DS:SI 中的源串数据传送到ES:DI 规定的目的串单元中。
加重复前缀REP 可实现连续存放的数据块的传送。
例1:将源串中前三个字节的数据传送到目的串。
源串在数据段(DATAS)中,存放在SRC 单元中;目的串在附加数据段(EDATAS)中,存放在DEST 单元中。
微机实验报告
实验1 基本操作实验一、实验目的(1)掌握TD- PITC 80X86微机原理及接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。
(2)掌握使用运算指令类编程及调试方法。
(3)掌握运算类指令对各状态标志位的影响及其测试方法。
(4)学习使用软件监视变量的方法。
二、实验设备PC机一台,TD- PITC实验装置一套三、实验内容及步骤通过对样例程序的操作,学会使用在TD- PITC环境下,如何输入汇编语言程序,如何进行汇编语言源程序的汇编、连接、下载和运行;在调试程序的学习过程中,应学会:如何设置断点,如何单步运行程序,如何连续运行程序,怎样查看寄存器的内容,怎样修改寄存器的内容,怎样查看存储器的内容,怎样修改存储器的内容3.1 实验内容一——BCD码转换为二进制实验内容将四个二位十进制数的BCD码存放于3500H起始的内存单元中,将转换的二进制数存入3501H起始的内存单元中,自行绘制流程图并编写程序。
实验步骤:1)运行Wmd86软件,进入Wmd86集成开发环境。
2)根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言。
语言选择后,下次再启动软件,语言环境保持这次的修改不变。
在这里我们选择汇编语言。
3)语言选择后,点击新建来新建一个文档。
默认文件名为Wmd861.4)编写实验程序。
并保存,此时系统会提示输入新的文件名,输完后点击保存。
实验程序清单如下:SSTACK SEGMENT STACKDW 64 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART:XOR AX,AXMOV SI 3500HMOV DI 3510HA1:MOVE AL,[SI]ADD AL,ALMOV BL,ALADD AL,ALADD AL,ALADD AL,BLINC SIADD AL,[SI]MOV [DI],ALINC SIINC DILOOP A1A2:JMP A2CODE ENDSEND START5)点击编译文件,若程序无误,再点击进行连接。
微机原理实验求最大值和最小值
微机原理实验求最大值和最小值
本实验旨在通过学习微机原理,掌握如何求解一组数据的最大值和最小值。
实验中,
我们将使用基于AT89C51单片机的开发板作为实验平台,结合C语言编程,实现最大值和
最小值的求解,提高学生实际操作的能力。
实验步骤:
1. 准备实验环境
首先,需要准备好基于AT89C51单片机的开发板,并将其连接到电脑上。
在开发板中,需要连接到单片机的引脚上,可以使用杜邦线进行连接。
将开发板上的电源接好,并打开
电源开关。
2. 编写程序
接下来,我们需要使用C语言编写程序,实现最大值和最小值的求解。
程序的具体实
现方法如下:
(1)定义一个数组,用于存储一组数据。
(2)定义两个变量,用于分别记录最大值和最小值。
(3)使用for循环遍历数组中的所有元素,依次比较,更新最大值和最小值。
(4)输出最大值和最小值。
3. 烧录程序
将编写好的程序烧录到AT89C51单片机中。
可以使用KEIL或proteus等软件进行烧录。
4. 测试程序
在烧录程序成功后,需要进行测试,以确保程序能够正确运行。
可以使用模拟器或者
连接GPIO口的LED等外部设备定位问题。
实验结果:
总结:
本实验在提高学生实际操作能力的同时,还能够帮助学生深入理解微机原理。
通过本
次实验,学生学会了如何利用单片机和C语言编程解决实际问题,为以后的学习和实践打
下了基础。
微机原理上机实验(六+十)实验报告 74HC138译码器实验 16x16点阵显示实验
微机原理上机实验报告实验六:74HC138译码器实验实验十:LED 16x16点阵显示实验微机原理上机实验(六)实验报告实验六:74HC138译码器实验一、实验目的1、掌握74HC138译码器的工作原理,熟悉74HC138译码器的具体运用连接方法,了解74HC138是如何译码的。
2、认真预习本节实验内容,尝试自行编写程序,填写实验报告二、实验内容1、编写程序:使用8255的PC0、PC1、PC2控制74HC138的数据输入端,通过译码产生8选1个选通信号,轮流点亮8个LED指示灯。
2、运行程序,验证译码的正确性。
三、实验原理图四、实验步骤1、连线说明:F7区:A、B、C ——D3区:PC0、PC1、PC2F7区:G1、G2A、G2B ——C1区:VCC、GND、GNDF7区:JP63 ——F4区:JP18(LED指示灯)D3区:CS、A0、A1 ——A3区:CS1、A0、A12、调试程序,查看运行结果是否正确五、实验代码Con_8255 EQU 0273H ;8255控制口PC_8255 EQU 0272H ;8255 PC口_STACK SEGMENT STACK ;设置堆栈段DW 100 DUP(?)_STACK ENDSCODE SEGMENTSTART PROC NEARASSUME CS:CODE, SS:_STACKMOV DX,Con_8255MOV AL,80HOUT DX,AL ;8255初始化,PC口作输出用,向8255的控制口输入置位/复位控制字10000000B,PC0~PC7全部复位MOV DX,PC_8255MOV AL,0START1: OUT DX,AL 将00000000B输入8255的PC口CALL Delay 延时INC AL AL加一JMP START1 循环Delay PROC NEAR ;延时Delay1: XOR CX,CX ;CX清零LOOP $ 当前位置循环一次后推出RETDelay ENDPSTART ENDPCODE ENDSEND START六、实验思考题1.在应用系统中,74HC138通常用来产生片选信号,请读者考虑一下,应如何处理?将输入信号转换为三位无符号二进制数,将转换后的数据由低到高分别输入74HC138的A、B、C口,即可实现对最多8的模块的片选功能。
微机原理实验报告
微机原理实验报告实验目的,通过本次实验,掌握微机原理的基本知识,了解微机系统的组成和工作原理,掌握微机系统的组装和调试方法。
实验一,微机系统组成及工作原理。
1.1 微机系统的组成。
微机系统由中央处理器(CPU)、内存、输入设备、输出设备和外部设备等组成。
其中,CPU是微机系统的核心部件,负责控制整个系统的运行。
1.2 微机系统的工作原理。
微机系统的工作原理是通过CPU对内存中的指令进行解释和执行,从而实现各种功能。
CPU通过总线与内存、输入输出设备进行数据传输和控制信号的交换,实现对整个系统的控制和管理。
实验二,微机系统的组装和调试。
2.1 微机系统的组装。
在组装微机系统时,首先要选择合适的主板、CPU、内存、硬盘等配件,然后按照正确的安装顺序和方法进行组装。
组装完成后,还需连接电源、显示器、键盘、鼠标等外部设备。
2.2 微机系统的调试。
组装完成后,需要对微机系统进行调试,检查各个部件是否连接正确,是否能够正常工作。
通过BIOS设置和操作系统的安装,完成对微机系统的调试和配置。
实验三,微机系统的应用。
3.1 微机系统的应用领域。
微机系统广泛应用于各个领域,如办公、教育、科研、娱乐等。
在办公领域,微机系统可以用于文字处理、表格制作、图像处理等;在教育领域,微机系统可以用于多媒体教学、网络教学等。
3.2 微机系统的发展趋势。
随着科技的不断发展,微机系统也在不断更新换代,性能不断提升,体积不断缩小,功耗不断降低。
未来,微机系统将更加智能化、便携化,成为人们生活、工作不可或缺的一部分。
结论,通过本次实验,我对微机原理有了更深入的了解,掌握了微机系统的组成和工作原理,了解了微机系统的组装和调试方法,对微机系统的应用和发展趋势也有了一定的认识。
这对我今后的学习和工作将有很大的帮助。
微机原理上机实验(六+十)实验报告 74HC138译码器实验 16x16点阵显示实验
微机原理上机实验报告实验六:74HC138译码器实验实验十:LED 16x16点阵显示实验微机原理上机实验(六)实验报告实验六:74HC138译码器实验一、实验目的1、掌握74HC138译码器的工作原理,熟悉74HC138译码器的具体运用连接方法,了解74HC138是如何译码的。
2、认真预习本节实验内容,尝试自行编写程序,填写实验报告二、实验内容1、编写程序:使用8255的PC0、PC1、PC2控制74HC138的数据输入端,通过译码产生8选1个选通信号,轮流点亮8个LED指示灯。
2、运行程序,验证译码的正确性。
三、实验原理图四、实验步骤1、连线说明:F7区:A、B、C ——D3区:PC0、PC1、PC2F7区:G1、G2A、G2B ——C1区:VCC、GND、GNDF7区:JP63 ——F4区:JP18(LED指示灯)D3区:CS、A0、A1 ——A3区:CS1、A0、A12、调试程序,查看运行结果是否正确五、实验代码Con_8255 EQU 0273H ;8255控制口PC_8255 EQU 0272H ;8255 PC口_STACK SEGMENT STACK ;设置堆栈段DW 100 DUP(?)_STACK ENDSCODE SEGMENTSTART PROC NEARASSUME CS:CODE, SS:_STACKMOV DX,Con_8255MOV AL,80HOUT DX,AL ;8255初始化,PC口作输出用,向8255的控制口输入置位/复位控制字10000000B,PC0~PC7全部复位MOV DX,PC_8255MOV AL,0START1: OUT DX,AL 将00000000B输入8255的PC口CALL Delay 延时INC AL AL加一JMP START1 循环Delay PROC NEAR ;延时Delay1: XOR CX,CX ;CX清零LOOP $ 当前位置循环一次后推出RETDelay ENDPSTART ENDPCODE ENDSEND START六、实验思考题1.在应用系统中,74HC138通常用来产生片选信号,请读者考虑一下,应如何处理?将输入信号转换为三位无符号二进制数,将转换后的数据由低到高分别输入74HC138的A、B、C口,即可实现对最多8的模块的片选功能。
南理工微机实验报告
南理工微机实验报告篇一:南京理工大学微机实验报告微机实验报告实验2.1汇编语言程序的调试与运行思考题:1、带进位加法程序:DISP MACRO XMOV DL,XMOV AH,02HINT 21HENDMDATA SEGMENTDATA1 DB'65087'DATA2 DB'75087'N EQU $-DATA2DATA ENDSSTACK SEGMENT STACKSTA DB 20 DUP (?)TOP EQU $-STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START:MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXLEA SI,DATA1MOV BX,0MOV CX,NCALL DISPLDISP '+'LEA SI,DATA2MOV BX,0MOV CX,NCALL DISPLDISP '='LEA DI,DATA1MOV CX,NCALL ADDALEA SI,DATA1MOV BX,0MOV CX,NCMP DL,0JZ NEXTDISP '1'NEXT: CALL DISPLDISP 0DHDISP 0AHMOV AX,4C00HINT 21HDISPL PROCDS1:MOV AH,02HMOV DL,[SI+BX]INT 21HINC BXLOOP DS1RETDISPL ENDPADDA PROCPUSH CXMOV BX,0AD1:SUB BYTE PTR [SI+BX],30H SUB BYTE PTR [DI+BX],30HINC BXLOOP AD1POP CXPUSH CXMOV BX,N-1CLCAD2:MOV AL,[SI+BX]ADC AL,[DI+BX]AAAMOV [DI+BX],ALDEC BXLOOP AD2POP CXPUSH CXMOV BX,0MOV DL,0JNC AD3MOV DL,1AD3:ADD BYTE PTR [DI+BX],30H INC BXLOOP AD3POP CXRETADDA ENDPCODE ENDSEND START结果截图:2、上机步骤,调试方法:1、写代码完成功能要求,文件格式为.asm文件(如21si.asm),将文件放入带汇编工具的文件夹中,即含有汇编工具(MASM.EXE)和链接工具(LINK.EXE)的文件夹。
微机实验报告
实验一I/O地址译码与交通灯控制实验一、实验目的1、掌握并行接口8253的基本原理2、掌握8253的编程方法二、实验内容如图所示,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通变化规律燃灭。
三、编程分析1、8255地址分析:控制寄存器地址: 0C40BHA口地址: 04C408HC口地址: 04C40AH2、十字路口交通灯的变化规律要求(1)南北路口的绿灯、东西路口的红灯同时亮三秒;(2)南北路口的黄灯闪烁三次,同时东西路口的红灯继续亮;(3)南北路口的红灯、东西路口的绿灯同时亮三秒;(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁三次;(5)转(1)重复。
3、C口置数分析由于发光二极管是共阴极相连,所以若要其发亮应给高电平;黄灯闪烁是让其不断交替亮灭来实现;同时分析可知只要有绿灯亮,灯就会持续亮三秒,黄灯亮就会闪烁三次。
4、程序设计流程图四、汇编语言程序STACK1 SEGMENT STACKDB 100 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE, SS:STACK1 DY PROC NEARPUSH CXMOV AX, 0FFFFH ;延时程序MOV CX, 02FFFHL0:DEC AXJNZ L0LOOP L0POP CXPOP AXRETDY ENDPSTART: MOV DX, 0C40BHMOV AL, BOUT DX, ALMOV DX, 0C40AHMOV BL, 6H ;设置延迟3秒L1:MOV AL, 00100100B ;南北绿灯亮,东西红灯亮OUT DX, ALCALL DY ;调用延迟子程序DEC BLJNZ L1MOV BL, 4H ;设置第二次闪烁3次L2:MOV DX, 0C40AHMOV AL, 01000100B ; 南北黄灯亮,东西红灯亮OUT DX, ALCALL DYMOV AL, 00000100B ;南北黄灯灭,东西红灯亮,实现要求闪的功能 OUT DX,ALCALL DYJNZ L2MOV BL,6H ;第三次设置亮灭时间为3秒L3:MOV AL,B ; 南北黄灯亮,东西红灯亮OUT DX,ALCALL DYDEC BLJNZ L3MOV BL,4HL4:MOV AL,B ;南北红灯亮,东西黄灯亮OUT DX,ALCALL DYMOV AL,B ;南北红灯亮,东西黄灯灭,实现闪的功能OUT DX,ALCALL DYDEC BLJNZ L4MOV DL,0FFH ;判断是否有键按下,结束程序 MOV AH,06HINT 21HJZ START ;没有键按下,进入下一次循环 MOV AH,4CHINT 21HCODE ENDSEND START五、实验现象:红黄绿灯变化规律如下:南北路口的绿灯、东西路口的红灯同时亮3秒左右;南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮;南北路口的红灯、东西路口的绿灯同时亮3秒左右;南北路口的红灯继续亮,同时东西路口的黄灯闪烁若干次;依次重复。
微机原理实验报告-南通大学
微机原理与接口技术课程设计一.实验目的:可以综合运用微机原理的基础知识,利用集成电路软件设计实现中小规模电子电路或者完成一些功能的程序。
并且通过实验巩固所学的理论知识,学会分析并解决简单的电路设计问题。
二.实验设计内容及要求:设计一多设备状态监视系统,多设备状态可用开关模拟。
若发现一台异常,低电平变高电平,报警(指示灯亮),一旦恢复,撤除报警。
可用8255A的做为8个状态监视输入和8个报警指示灯输出端口,也可用中断实现状态异常检测。
(功能实现☆)。
三.实验原理:(一)多设备状态监视系统原理:系统的规模越来越大,所涉及的设备越来越多,当众多的设备在运行中突然出现故障或问题时,单靠人为一个个地进行排查,不仅耗时耗力,且不一定能准确定位异常设备和故障信息,监控系统维护困难,影响整个系统的正常运作。
随着传感技术与计算机技术的发展,设备的状态监测方法向着自动化、智能化的方向发展,既不影响系统正常的运行,又能直接反映运行中的设备状态,有效、及时和可靠。
设备运行状态监测系统是目前大规模安防系统工程中十分重要的智能检测工具,它省去了许多不必要的繁杂检修,使整个系统更智能、更全面,操作流程更简单,从问题的发现、分析到解决这一流程的效率大大提高。
(二)8086Intel 8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。
资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。
它提供64K 8 位元的输出输入(或32K 16 位元),以及固定的向量中断。
大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。
运算结果会储存在操作数中的一个寄存器。
Intel 8086有四个内存区段(segment)寄存器,可以从索引寄存器来设定。
区段寄存器可以让CPU 利用特殊的方式存取1 MB内存。
8086 把段地址左移4 位然后把它加上偏移地址。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理与接口技术
实验报告
实验内容:微机原理综合设计实验
数字电压表A
组别:5
班级:******** 姓名:刘庭欣学号:********** 班级:******** 姓名:罗太鑫学号**********
一、实验目的:
1、掌握8255的使用及编程原理。
2、掌握8253定时/计数器的编程原理。
3、掌握ADC0809的使用及编程原理。
4、掌握共阴极七段数码管的工作原理。
5、掌握芯片的综合运用。
6、掌握汇编语言程序设计。
二、实验内容:
利用ADC0809采集电位器的电压值,将采集的电压值通过8255显示在七段数码管上,显示数据保留小数点后2位,利用8253定时数据更新,每隔0.5秒数据更新一次。
要求:
1、查阅资料,掌握共阴极七段数码管的工作原理。
2、分析实验原理,设计实验方案,绘出实验连线图。
3、绘制实验程序流程图。
4、编写实验程序,检查无误后,编译、链接并下载入实验系统。
5、运行实验程序,验证程序功能。
扩展要求:
具有设置报警阈值功能,当超过阈值时,点亮一个LED灯。
三、实验方法:
1、设计思路:
利用ADC0809采集电位器的电压值,通过8255 依次选通3个数码管,通过8255依次送入刚才所得的三个值的显示码,利用8253工作在方式二,每隔0.5秒产生一低脉冲送到8255。
将可变电位器AN0与ADC0809的ADIN0相连,将CS2与ADC0809的片选CS0809端相连,将ADC0809的EOC与8255的PC0相连,CS0与8253的片选CS8253相连,CLK3(750KHz)与8253CLK0相连,8253的OUT0与8253CLK2相连,OUT2与8255的PA0相连,CS1与8255的片选CS8255相连,PC4-PC6与LED1-LED3依次相连,PB0-PB7依次与LED-A—LED-DP相连。
画出实验各芯片的连线图,如图:
2、程序流程图:
四、实验源程序:
CODE SEGMENT PUBLIC
ASSUME CS:CODE
ORG 100H
START:
MOV AX,0H
MOV DS,AX
MOV SI,2000H ;定义从0:2000H开始的存储单元
MOV DX,04B6H
MOV AX,91H
OUT DX,AX ;初始化8255,使B口输出,A口输入,C口低四位输入,高四位输出
MOV DX,04A6H
MOV AX,36H ;计数器0,方式3-方波,低八位,后高八位,二进制
OUT DX,AX
MOV DX,04A0H
MOV AX,720
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV DX,04A6H
MOV AX,0B5H ;计数器2,方式2-频率发生器,低八位,后高八位
OUT DX,AX
MOV DX,04A4H
MOV AX,501
OUT DX,AL
MOV AL,AH
OUT DX,AL ;OUT2每0.5秒输出一个低电平到PA0
L2: ;初始化0809,并调用获取AD值函数(已将要显示的数字求出)MOV SI,2000H
MOV DX,04C0H ;指向通道0
CALL GETAD ;调用A/D转换子程序,取得A/D值
L1: ;作为数码管显示模块
MOV SI,2000H
MOV BL,DS:[SI+2]
MOV BH,0 ;取出电压值小数点后第二位
LEA SI,TABLE
ADD SI,BX
MOV BL,CS:[SI] ;得到电压值小数点后第二位的数码管显示码
MOV DX,04B4H ;C口的地址
MOV AL,0E0H ;低电平有效,11100000,PC4
OUT DX,AL ;选通LED1数码管
MOV DX,04B2H ;B口地址
MOV AL,BL
OUT DX,AL ;通过B口送入显示码
CALL DELAY
MOV SI,2000H
MOV BL,DS:[SI+1]
MOV BH,0 ;取出电压值小数点后第一位
LEA SI,TABLE
ADD SI,BX
MOV BL,CS:[SI] ;得到电压值小数点后第一位的数码管显示码
MOV AL,0D0H ;11010000
MOV DX,04B4H ;C口的地址
OUT DX,AL ;选通LED2数码管
MOV DX,04B2H
MOV AL,BL
OUT DX,AL ;通过B口送入显示码
CALL DELAY
MOV SI,2000H
MOV BL,DS:[SI]
MOV BH,0 ;取出电压值个位值
LEA SI,TABLE1
ADD SI,BX
MOV BL,CS:[SI] ;得到电压值个位值的数码管显示码
MOV AL,0B0H
MOV DX,04B4H
OUT DX,AL ;选通LED3数码管
MOV DX,04B2H
MOV AL,BL
OUT DX,AL ;通过B口送入显示码
CALL DELAY
MOV DX,04B0H ;8255A口地址,定时器模块
IN AL,DX
AND AL,00000001
CMP AL,0 ;PA0是否接收到一低电平
JNZ L1 ;PA0没有接收到低电平,跳到数码管显示程序
JMP L2 ;PA0接收到低电平,跳到电压采集程序,每0.5秒采集一次
DELAY:
MOV BP,100H ;延时程序
DELAY1:
DEC BP
CMP BP,0
JNE DELAY1
RET
GETAD:
PUSH DX
MOV AX,34H ;启动A/D
OUT DX,AX
CALL DELAY ;延时等待转换
MOV DX,04B4H ;指向8255C口地址,PC0与0809的EOC相连
WAIT1:
IN AX,DX ;读进EOC状态
TEST AX,1 ;EOC=1,表示一次转换已经结束,=0表示正在转换,TEST相与
JZ WAIT1
POP DX
IN AX,DX ;读A/D值
MOV AH,0 ;用AL储存转换后的8位2进制数
MOV CX,AX
MOV AL,51
MOV BL,3 ;电压阈值在此修改,电压超过3v则报警
MUL BL ;AX现在是阙值
CMP AX,CX
JC L3
MOV AL,01H
MOV DX,4D0H ;指向74LS273
OUT DX,AL
jmp ne ;若小于阈值则灯灭
L3:MOV AL,0
MOV DX,4D0H ;74LS273的第一个口地址
OUT DX,AL ;若大于阈值则灯亮
ne:
MOV AX,CX ;AX现在是测量值
MOV BL,0C4H
MUL BL ;AX乘以196,转换为实际电压的100倍,500/255=196
MOV BX,0001H
MUL BX
MOV BL,64H ;除数100
MOV BH,0
DIV BX ;注意要除两次才能得到个位
DIV BL
MOV DS:[SI],AL ;得到个位值存入0:2000H
MOV AL,AH
MOV AH,00H
MOV BL,0AH
DIV BL
MOV DS:[SI+1],AL ;得到小数点后第一位值存入0:2001H
MOV DS:[SI+2],AH ;得到小数点后第一位值存入0:2002H
RET
TABLE:DB
3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;0-9的八段
数码管显示码
TABLE1:DB
0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH ;0-9的DP点亮八段
数码管显示码,个位用
CODE ENDS
END START
五、实验结果:
在实验箱上连接好电路图,输入源程序,编译并链接,运行程序。
当转动电位器,数码管上显示的数值不断变化,实验箱上的连线图如图:
当旋转电位器,电压值大于3V时(我们设置的阈值为3V),LED灯亮,报警。
达到实验的要求。
实验结果如图:
六、实验中遇到的问题及解决方法:
1.最开始设计电路连接的时候,由于对于实验箱不熟悉,不知道CS0,CS1这些片选信号指向的地址是什么,还有就是第一次连接好电路图,没有拔掉数码管右边的那一排跳线帽,导致转到电位器,数码管显示不会有变化。
2.在程序中没有加入延时函数之间,数码管显示的数一直闪烁,加入合适的延时时间后,数码管能比较稳定的显示。
3.在设计扩展功能时,最开始想着把8255上的一个输出端口接到灯上,后来发现不行,因为没有锁存功能,所以最后选用了74LS273输出。
七、心得体会与建议:
对于综合实验,通过完成一个任务,在这过程中,让我们将几个芯片的功能结合起来,去完成某个特定的功能。
我们小组在准备的时候,发现刚开始并不知道如何让这几个芯片一起工作,后来研究了每个芯片的具体使用方法和功能,才慢慢有了思路。
整个过程下来,感觉综合实验对我们的理论知识提出了更高的要求。
而在完成实验的过程中,我们遇到问题,发现问题,解决问题,虽然过程很曲折,但是确实是收获到了很多。