《微机原理与接口实验报告(12页).doc》由会员分享,可在线阅读,更多相关《微机原理与接口实验报告(12页).doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-微机原理与接口实验报告-第 12 页 微机原理与接口实验报告班级:姓名:学号:日期:2016.12.4目录实验1 六位数码管动态显示实验实验2 小键盘案件识别实验实验3 8位AD转换实验实验4步进电机实验实验1 六位数码管动态显示实验1.1 实验目的了解共阴级数码管显示数字的原理,掌握六位共阴级数码管动态显示的控制方法。1.2 实验原理、内容,接线图,程序流程图,必要时附上实验步骤和电路原理图。将09这十个数字按照从右到左的顺序循环步进显示,即首先从最右端数码管显示“0”,间隔一定时间后向左移动一位,直到最左端。到最左端后变换数字,按照同样的方法显示19,以此循环往复。做实验之前需要将七段数
2、码管上方的拨动开关打到“CPU”位置。实验接线图如图1所示,只需将LED_CS连接到地址译码200H即可。图1 六位数码管显示实验接线图图2 六位数码管单元电路图实验系统使用了6个七段共阴级数码管,形成6位数码管显示电路,如图3-6所示。该电路由六个共阴级数码管组成,使用了段码锁存器(字形锁存器)74LS273、OC门驱动器和位码锁存驱动器TPIC6B273。段码锁存器(字形锁存器)74LS273输出高电平有效,位码锁存驱动器TPIC6B273输出低电平有效。/CS为两个锁存器的片选信号。地址线A0用来区分选择段码还是位码,在/CS=0,/IOW=0的情况下,A0=0 CPU发出来的数据被锁到
3、段码锁存器(字形锁存器)74LS273,保存字形编码,A0=1 CPU发出来的数据被锁到位码锁存驱动器TPIC6B273,保存位选码。由于位码锁存驱动器TPIC6B273将输入的每一位数据反相后再输出的,所以对于段选和位选输入代码来说,都是高电平有效(高电平点亮数码管)。每个七段共阴级数码管显示十进制/16进制数字的字形编码如图3。图3共阴级7段数码管编码表流程图如下:图4六位数码管显示实验主程序参考流程图图5六位数码管显示实验显示子程序参考流程图1.3 完整的程序清单和相关注释。.model small.386data segment num db 3fh,06h,5bh,4fh,66h,6
4、dh,7dh,07h,7fh,6fhdata endscode segment assume cs:code,ds:dataBEGIN: mov si,0 mov ax,data mov ds,ax lea bx,num count:mov cx,6 mov ah ,00000001bscan:mov al,bx+si ;字形处理 mov dx,200h out dx,al mov al,ah;字位处理 mov dx,201h out dx,al call delay shl ah,1 loop scan add si,1 cmp si,10 jnz count sub si,10 jmp c
5、ountdelay proc near push cx mov cx,0lop: loop loppop cx retdelay endpcode ends end BEGIN1.4 实验数据及结果分析 完成了0到9的八个数码管依次顺序显示,每次的显示都有一定的延迟,当显示完数字9以后就再次从0开始。1.5 实验过程中遇到的问题,以及解决办法 遇到的问题:显示的时候一开始很难延迟。 解决的方案:通过构造一个延迟函数来完成,在延迟函数中一直重复进行某一个动作,用计数器的倒计时来完成延迟的功能,由于需要调用新的函数,而且需要一个计数器的支持,所以需要将cx压入栈中。1.6 实验总结 熟悉了汇编语言
6、的相关语言,也熟悉了软件与接线板的操作。通过入栈压栈的方式,完成对于延迟操作的函数构造。同时,也实践了mov al,bx+si mov dx,200h out dx,al的字形处理,和mov al,ah mov dx,201h out dx,al的字为命令的语句熟悉。实验2 小键盘按键识别实验1.1 实验目的掌握用软件方法识别行列式键盘按键的原理和方法。1.2 实验原理、内容,接线图,程序流程图,必要时附上实验步骤和电路原理图。当实验板上的小键盘有键按下时,将其对应的键号( 16进制数0F)显示在七段数码管上。实验系统提供了一个16按键的小键盘,采用行列式44键盘,形成矩阵结构,如图3-10所
7、示。通常,该键盘矩阵的行线和列线分别与8255并行接口的两个端口连接,通过程序的检测和判断来识别按键操作。当需要检测某键按下时,依次给1、2、3、4行线输出低电平,某键按下时,相应的行和列上的两条线短路,即相应的列线被拉成低电平,其他列线维持高电平。程序通过并口读回4根列线的值,根据行线列线为0的状态即可判断出该按键的键号(即位置)。图6 4X4键盘原理图实验接线图如图7所示,将8255端口A的PA0PA3与4个行线KL0KL3连接,将8255端口B的PB0PB3与4个列线KR0KR3连接,设置选择8255 A组、B组端口为方式0(基本输入输出方式)工作,且端口A方向为输出,用来控制行线,端口
8、B方向为输入,用来读入列线值。编写汇编程序,根据送出的行线值和读入的列线值来判断出该按键的位置,并将其键号在数码管上显示出来。图7 小键盘按键识别实验接线图流程图如下:图8 小键盘按键识别实验程序流程图1.3 完整的程序清单和相关注释。.model small .386DATA SEGMENTrowport dw 200h colport dw 201h controlport dw 203h ;控制字led_cs dw 210h char db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71htable dw 0f
9、efeh dw 0fefdh dw 0fefbh dw 0fef7h dw 0fdfeh dw 0fdfdh dw 0fdfbh dw 0fdf7h dw 0fbfeh dw 0fbfdh dw 0fbfbh dw 0fbf7h dw 0f7feh dw 0f7fdh dw 0f7fbh dw 0f7f7hDATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART:begin:mov ax,data mov ds,ax mov dx,controlport mov al,10000010b out dx,al;8255初始化L1: call kb1 mo
10、v bh,ah mov bl,al call delay call kb1 cmp bl,al jnz begin cmp bh,ah jnz begin mov ax,bx call disp call delay jmp L1kb1 proc mov ah,0fehkb2:mov al,ah mov dx,rowport out dx,al;输出数据 mov dx,colport in al,dx;读入PB口内容 or al,0f0h cmp al,0ffh jne num1 rol ah,1 jmp kb2num1:retkb1 endpdelay proc push cx mov cx
11、,8000hdelay1:loop delay1 pop cx retdelay endpdisp proc push bx push dxkb3: mov si,offset table mov di,offset char mov cx,16kb4: cmp ax,si jz kb5 inc si inc si inc di loop kb4kb5: mov al,di mov dx,led_cs out dx,al;字形处理 mov al,01h inc dx out dx,al;字位处理 pop dx pop bx retdisp endpCODE ENDSEND START1.4 实
12、验数据及结果分析 完成了键盘按键在显示屏上的显示任务,可识别从0到F的各个数字及字母,做到了一一对应。1.5 实验过程中遇到的问题,以及解决办法遇到的问题:如何识别按键的位置解决的方案:用table来记录各个按键的位置,由于table内部的数据是dw的,而字符是db的,所以当字符的偏移地址加一的时候,table的偏移地址加二,从而就可以完成一一对应的操作。1.6 实验总结 熟悉了汇编语言和软件操作,也完成了键盘和显示屏的连接操作,完成了实验任务。但是代码部分还可以做适当的简略,逻辑部分还需要一定的考虑。实验3 8位A/D转换实验1.1 实验目的掌握模/数信号转换的基本原理,掌握ADC0809芯
13、片的查询方式使用方法。1.2 实验原理、内容,接线图,程序流程图,必要时附上实验步骤和电路原理图。从ADC0809通道0输入0-+5V可变电压,启动AD转换,使用查询方式读取转换数据,并以16进制显示在数码管上。实验接线如图3-21。图9 8位A/D 转换实验接线图流程图如下:图 10 8位A/D 转换实验参考流程图1.3 完整的程序清单和相关注释。.MODEL small.386AD_CS EQU 200hLED_CS EQU 210hDATA SEGMENTLEDCODE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H,77H,7CH,39H,5EH,
14、79H,71H ;数码管0到f的显示DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AXRPT: MOV DX,AD_CS OUT DX,AL ;让ADC0809锁存地址,并启动转换 MOV DX,AD_CS ADD DX,2 ;此时DX指向202H处L1: IN AL,DX ;读取ADC0809的EOC引脚状态并加以判断 TEST AL,01H ;EOI是否为1,判断转换是否完成 JZ L1 ;否,重复读入EOC状态并判断; MOV DX,AD_CS INC DX IN AL,DX CALL DISP
15、JMP RPTDISP PROC MOV SI,OFFSET LEDCODE;设置7段表首地址 MOV BX,SI MOV CH,AL MOV CL,4;截取转换数据的高四位 ROR AL,CL AND AL,0FH MOV AH,0 ADD BX,AX MOV AL,BX;获取LED显示编码 MOV DX,LED_CS OUT DX,AL;转换后显示 MOV AL,02H INC DX NOP OUT DX,AL CALL DELAY MOV AL,CH AND AL,0FH MOV AH,0 ADD SI,AX MOV AL,SI MOV DX,LED_CS OUT DX,AL MOV A
16、L,01H INC DX OUT DX,AL CALL DELAY RETDISP ENDPDELAY PROC PUSH CX MOV CX,50HX1: LOOP X1 POP CX RETDELAY ENDPCODE ENDSEND START1.4 实验数据及结果分析 完成了数模信号的转化任务,成功地将模拟量转化为数字量,范围为0到ff,完成了模拟量和显示屏的连接。1.5 实验过程中遇到的问题,以及解决办法 遇到的问题:在模拟量改变的时候,显示屏的内容没有相应改变。 解决的方案:后查是在程序中,忘记将数据转入,少一个in操作所致。1.6 实验总结 熟悉了汇编语言的编写操作和软件与连接板
17、的实际操作,也熟悉了模拟量和数字量之间的转换任务。实验4 步进电机实验1.1 实验目的掌握步进电机的控制方法。1.2 实验原理、内容,接线图,程序流程图,必要时附上实验步骤和电路原理图。编写汇编程序,使用8255的A口控制步进电机的运转。步进电机型号为20BY20H04,工作电压5V,每转一圈需48步,每步旋转7.5度。48 * 7.5 360,刚好是一圈。步进电机的励磁线圈及其励磁顺序如图3-24所示。电机驱动电路使用了ULN2803芯片。图11 步进电机励磁顺序与步进代码实验接线图如图12所示,8255的PA口的PA0PA3分别连接步进电机的BJ_IN1BJ_IN4,对应步进电机的A、B、
18、/A、/B。图12 步进电机控制实验接线图流程图如下:图 13步进电机控制实验参考流程图1.3 完整的程序清单和相关注释。.model small.386io_ad equ 200hdata segmentspeed db 2data endscode segment assume cs:code,ds:datastart:mov ax,data mov ds,ax mov dx,IO_AD add dx,03 mov al,80h out dx,al;8255初始化speedin:a1: mov dx,IO_AD mov al,01h out dx,al;向PA口写入一个数据 call de
19、lay mov al,03h out dx,al call delay mov al,02h out dx,al call delay mov al,06h out dx,al call delay mov al,04h out dx,al call delay mov al,0Ch out dx,al call delay mov al,08h out dx,al call delay mov al,09h out dx,al call delay jmp a1delay proc push ax push cx push dx mov dh,speedx1: mov cx,0f00hx2: loop x2 dec dh jnz x1 pop dx pop cx pop ax retdelay endpcode ends end start1.4 实验数据及结果分析 完成了电动机顺时针旋转的任务。1.5 实验过程中遇到的问题,以及解决办法 遇到的问题:如何使得电动机连续旋转。 解决的方案:连续输入3,2,6,4,c,8,9就可以完成此项功能。1.6 实验总结 本实验较为简单,熟悉了如何操作电动机的学习任务,提高了动手实践能力,同时熟悉了汇编语言和相关的软件操作。