《电子信息工程专业课程实习报告微机原理与接口技术课程实习报告.doc》由会员分享,可在线阅读,更多相关《电子信息工程专业课程实习报告微机原理与接口技术课程实习报告.doc(34页珍藏版)》请在三一办公上搜索。
1、电子信息工程专业课程实习报告课程名称: 微机原理与接口技术 系别: 电 子 技 术 系 专业: 电 子 信 息 工 程 学号: 03742010021 指导教师:李伟春、梁春美、郑卫娟、盛碧琦 完成时间: 2013.12.20 项目一 定时应用实验的变型 利用8253芯片生成方波 用LED灯发出信号显现一、实习目的1. 掌握8253的工作方式及应用编程。2. 掌握8253典型应用电路的接法。3. 掌握8253的在PC系统中的典型应用方法。二、实习内容(一)工作原理1.8253具有以下基本功能:l 有3个独立的16位计数器;l 每个计数器可按二进制或十进制(BCD)计数;l 每个计数器可编程工作
2、于6种不同工作方式;l 8253每个计数器允许的最高计数频率为2MH;l 计数脉冲可以是有规律的时钟信号,也可以是随意信号。l 计数器的初值公式为n=其中是输入时钟脉冲的频率,是输出波形的频率。2.8253的工作方式如下:u 方式0计数到0结束输出正跃变信号(可作为中断请求信号)u 方式1硬件可触发单稳方式(形成负脉冲,宽度=NCLK脉冲周期)u 方式2频率发生器方式(输出固定频率的脉冲)u 方式3方波发生器u 方式4软件触发选通方式(输出负脉冲,宽度为一个CLK周期)u 方式5硬件触发选通方式(输出负脉冲,宽度为一个CLK周期)(二)工作方法1.学习过程采取理论知识补充和网上相关视频的查找学
3、习相结合的方式,分层次的进行步骤演练2.下载网上的模版,针对有一定难度的综合性实践操作进行演练和对比,找出自身仍旧存在的不足,进行进一步的完善。3.结合周边同学的实践经验和体会进行交流,并从中学习提高(三)实施过程1.首先明确8253芯片中的各个接口所代表的含义,按照实验要求,对照于8253芯片所独自具有的特性,链接如下图图1所示。2根据实验内容编写实验程序,经编译、链接无误后装入系统。3运行实验程序,产生的方波通过LED灯显示信号,观察最终结果。图1 8253定时应用实验接线图三、实习心得1. 明白了锁存的重要性,掌握了给计数器写入初值,及脉冲的作用,也明白了循环取计数器当前的计数值的方法。
4、2. 但实验结果最终还是不成功,经过多次试验也不能到正确结果,我的水平太有限了,仔细阅读程序也未发现错误,还需进一步努力学习。项目二 基本输入输出实验的变型 利用开关拨动利用8255 芯片使数据灯显示发生变化一、实习目的1.利用8255可编程并行口芯片,实现输入/输出实验,实验中用8255PA口作输出,PB口作输入2.了解8255芯片结构及编程方法3.了解8255输入输出实验方法二、实习内容(一)工作原理利用8255可编程并行口芯片,实现输入/输出实验,实验中用8255PA口作输出,PB口作输入。8255的CS/接地址译码/CS0,则命令字地址为8003H,PA口地址为8000H,PB口地址为
5、8001H,PC口地址为8002H。PA0-PA7(PA口)接LED0-LED7(LED)PB0-PB7(PB口)接K0-K7(开关量)。数据线、读/写控制、地址线、复位信号板上已接好。可编程通用接口芯片8255A有三个八位的并行I/O口,它有三种工作方式。本实验采用的是方式0:PA,PC口输出,PB口输入。很多I/O实验都可以通过8255来实现。(二)工作方法1.学习过程采取理论知识补充和网上相关视频的查找学习相结合的方式,分层次的进行步骤演练2.下载网上的模版,针对有一定难度的综合性实践操作进行演练和对比,找出自身仍旧存在的不足,进行进一步的完善。3.结合周边同学的实践经验和体会进行交流,
6、并从中学习提高(三)实施过程1.在实验箱断电的情况下连好线。(实验一连接序号1-9;实验二连接序号1-17)连线连接孔1连接孔21CS08255CS2L08255-PA03L18255-PA14L28255-PA25L38255-PA36L48255-PA47L58255-PA58L68255-PA69L78255-PA710K08255-PB011K18255-PB112K28255-PB213K38255-PB314K48255-PB415K58255-PB516K68255-PB617K78255-PB7(2) 输入程序并检查,保存程序。(3) “编译”程序。(4) “全速执行”程序。(
7、5) 记录实验结果及分析。三、实习心得这个实验我们使用了两种方式感受8255这款芯片的输入输出效果,通过这个实验,我对工作方式选择控制字的有了进一步的了解,知道怎么控制字,也知道它们之间的通信过程。项目三 自发自收实验的变型 利用8251芯片对于字符 的ASCII码进行自发自收一、实习目的1、了解串行通讯的基本原理。2、掌握串行接口芯片8251的工作原理和编程方法。二、实习内容(一)工作原理(1)按图连接好电路 (8251 插在带锁通用插座D 上),其中8253 计数器用于产生8251 的发送和接收时钟,TXD 和RXD 直接相连;(2)编写测试程序,初始化8251,实现连续发送固定字符,用示
8、波器观察发送波形,试用多种不同字符格式和字符;(3)编程实现从键盘输入一个字符, 将其ASCII 码加1 后发送出去,再接收回来在屏幕上显示,实现自发自收;(4)若在调试方式下用命令或单步初始化8251,用端口输出(发送)和输入(接收)检查硬件;编程简单周期连续发送,用示波器观察发送过程和波特率(波形)。(二)工作方法1.学习过程采取理论知识补充和网上相关视频的查找学习相结合的方式,分层次的进行步骤演练2.下载网上的模版,针对有一定难度的综合性实践操作进行演练和对比,找出自身仍旧存在的不足,进行进一步的完善。3.结合周边同学的实践经验和体会进行交流,并从中学习提高(三)实施过程1、实验连线连接
9、138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端G与总线单元上方的GS相连。将8251串行通信单元的T/RXC与分频单元的T6相连,CLK与分频单元的T0相连,8251CS与译码单元的Y0相连,将8251串行通信单元RXD与TXD相连。用8芯扁平电缆将8251串行通信单元的数据总线插座与数据总线单元任一插座相连。2、LED环境在“P.”状态下按“0EV/UN”,装载实验所需的代码程序。在4000-400Fh内存单元中填入16个数据。在“P.”状态下键入35C0,然后按“EXEC”进入实验项目的运行。3、PC环境在与PC联机状态下,编译、连接、下载PH88.as
10、m,用连续方式运行程序。4、观察运行结果在连续运行下,8251开始将4000400Fh内存单元的数据发送串行口,再从串行口接收数据并存到5000-500Fh内存单元,当LED显示“P.”则表示操作完成。用复位命令结束程序,检查5000-500Fh内存单元的数据,应与4000-400Fh一致。5、终止运行按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。本程序为8251串行通信自发自收实验;PC发送、8251接收程序请装载 PH888251R.ASM;8251发送、PC接收程序请装载 PH888251T.ASMZ8251 EQU 0FFE1HD8251 EQU 0
11、FFE0HZXK EQU 0FFDCHZWK EQU 0FFDDHCODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 35C0H ;TX=RX;=修改开始START: MOV DX,Z8251 MOV AL,00H OUT DX,AL MOV AL,00H OUT DX,AL MOV AL,00H OUT DX,AL MOV AL,40H OUT DX,AL MOV AL,0CEH OUT DX,AL MOV AL,25H OUT DX,AL;=修改结束 MOV AL,01H MOV BX,0400H MOV BX,ALSR0: CALL WP MO
12、V SI,4000H MOV DI,5000H MOV CX,0010HSR1: MOV AH,SI CALL SEND CALL RX MOV DI,AH INC SI INC DI LOOP SR1SR2: CALL DIS JMP SR2RX: MOV DX,Z8251RX1: IN AL,DX TEST AL,02H JZ RX1 MOV DX,D8251 IN AL,DX MOV AH,AL RET;-WP: MOV BUF,11H MOV BUF+1,10H MOV BUF+2,10H MOV BUF+3,10H MOV BUF+4,10H MOV BUF+5,10H RET;-S
13、END: MOV DX,Z8251W1: IN AL,DX TEST AL,01H JZ W1 MOV DX,D8251 MOV AL,AH OUT DX,AL RET;-DIS: MOV CL,20H MOV BX,OFFSET BUFDIS1: MOV AL,BX PUSH BX MOV BX,OFFSET LED XLAT POP BX MOV DX,ZXK OUT DX,AL MOV AL,CL MOV DX,ZWK OUT DX,AL PUSH CX MOV CX,0100HDELAY: LOOP $ POP CX CMP CL,01H JZ EXIT INC BX SHR CL,1
14、 JMP DIS1EXIT: MOV AL,00H MOV DX,ZWK OUT DX,AL RET;-LED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3HBUF DB ;-CODE ENDS END START三、实习心得这次的实验十分有趣,通过此次试验。对于8251的模式有了一个清楚的了解,并掌握了8251芯片串行通信方式的硬件接口电路和软件编辑设计,由于有了之前实验所做的铺垫,此次实验做得较为顺利,得到了理想的结果。项目四 中断控制实验的变型
15、利用8259中断控制器的中断控 制单元ICU单一终端进行计数一、实习目的掌握8259中断控制器的接口方法。 掌握8259中断控制器的应用编程。二、实习内容(一)工作原理8259芯片介绍中断控制器8259A是专为控制优先级中断而设计的芯片。它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式。即中断结构可以由用户编程来设定。同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统。本实验中使用3号中断源IR3, “ ”插孔和IR3相连,中断方式为边沿触
16、发方式,每拨二次AN开关产生一次中断,满5次中断,显示“8259good”。如果中断源电平信号不符合规定要求,则自动转到7号中断,显示“Err”。(二)工作方法1.学习过程采取理论知识补充和网上相关视频的查找学习相结合的方式,分层次的进行步骤演练2.下载网上的模版,针对有一定难度的综合性实践操作进行演练和对比,找出自身仍旧存在的不足,进行进一步的完善。3.结合周边同学的实践经验和体会进行交流,并从中学习提高(三)实施过程1、按图连好实验线路图。 8259的INT连8088的INTR; 8259的INTA连8088的INTA;“ ”插孔和8259的3号中断IR3插孔相连,“ ”端初始为低电平;
17、8259的CS端接FF80H孔; 连JX4JX17。2、DJ-8086k软件启动和联机 启动和联机。双击桌面上DJ-8086k快捷图标,即可运行DJ-8086k软件; 新建文件:单击菜单栏“文件”或工具栏“新建”图标,即会建立一个新的源程序编辑窗口,此时可在此窗口编辑、输入源程序(注:新建文件扩展名为 .ASM)。或打开文件F3:单击菜单栏“文件”或工具栏“打开”图标,弹出“打开文件”的对话框,然后选择要装入的源文件,单击“确定”即可装入源文件。;3、调试程序 编译装载F9:打开源文件,依次单击:调试”“编译装载F9”或工具栏上的编译装载图标,状态栏会提示正在编译、编译成功、正在装载数据、装载
18、数据结束,几秒钟后便会弹出源文件调试窗口,如编译出错,会提示错误信息,待修改源文件正确后,重新编译装载即可; 连续运行;单击菜单栏“调试”下的“连续运行”或单击工具栏的连续运行图标,即全速连续运行程序,系统显示82591。 在系统处于命令提示符“P.”状态下,输入12D0,按EXEC键, 系统显示82591。 拨动AN开关按钮, 按满6次显示good。程序如下:CODE SEGMENT ;H8259.ASMASSUME CS:CODEINTPORT1 EQU 0FF80HINTPORT2 EQU 0FF81HINTQ3 EQU INTREEUP3INTQ7 EQU INTREEUP7PA EQ
19、U 0FF20H ;字位口PB EQU 0FF21H ;字形口PC EQU 0FF22H ;键入口ORG 12D0HSTART: JMP START0BUF DB intcnt db ?data1: db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1hdb 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FHSTART0:CLDCALL BUF1CALL WRINTVER ;WRITE INTRRUPTMOV AL,13HMOV DX,INTPORT1OUT DX,ALMOV
20、 AL,08HMOV DX,INTPORT2OUT DX,ALMOV AL,09HOUT DX,ALMOV AL,0F7HOUT DX,ALMOV intcnt,01H;TIME=1STIWATING: CALL DISP ;DISP 8259-1JMP WATINGWRINTVER:MOV AX,0H MOV ES,AX MOV DI,002CH LEA AX,INTQ3 STOSW MOV AX,0000h STOSW MOV DI,003CH LEA AX,INTQ7STOSW MOV AX,0000h STOSW RETINTREEUP3:CLI push ax push bx pus
21、h cx push dx MOV AL,INTCNT CALL CONVERS MOV BX,OFFSET BUF ;077BH MOV AL,10H MOV CX,05HINTRE0: MOV BX AL INC BX LOOP INTRE0 MOV AL,20H MOV DX,INTPORT1 OUT DX,AL ADD INTCNT,01H CMP INTCNT,06H JNA INTRE2 CALL BUF2 ;DISP:goodINTRE1: CALL DISP JMP INTRE1CONVERS: AND AL,0FH MOV BX,offset buf ;077AH MOV BX
22、+5,AL RETINTRE2: MOV AL,20H MOV DX,INTPORT1 OUT DX,AL pop dx pop cx pop bx pop ax STI IRETINTREEUP7:CLI MOV AL,20H MOV DX,INTPORT1 OUT DX,AL call buf3 ;disp:errINTRE3: CALL DISP JMP INTRE3DISP: MOV AL,0FFH ;00HMOV DX,PAOUT DX,ALMOV CL,0DFH ;20H ;显示子程序 ,5msMOV BX,OFFSET BUFDIS1: MOV AL,BX MOV AH,00H
23、PUSH BX MOV BX,OFFSET DATA1 ADD BX,AX MOV AL,BXPOP BXMOV DX,PBOUT DX,ALMOV AL,CLMOV DX,PAOUT DX,ALPUSH CXDIS2:MOV CX,00A0H LOOP $ POP CXCMP CL,0FEH ;01HJZ LX1INC BXROR CL,1 ;SHR CL,1JMP DIS1LX1: MOV AL,0FFHMOV DX,PBOUT DX,ALRETBUF1: MOV BUF,08H MOV BUF+1,02H MOV BUF+2,05H MOV BUF+3,09H MOV BUF+4,17H
24、 MOV BUF+5,01H RETBUF2: MOV BUF,09H MOV BUF+1,00H MOV BUF+2,00H MOV BUF+3,0dH MOV BUF+4,10H MOV BUF+5,10H RETBUF3: MOV BUF,0eH MOV BUF+1,18H MOV BUF+2,18H MOV BUF+3,10H MOV BUF+4,10H MOV BUF+5,10H RETCODE ENDSEND START三、实习心得在实际操作过程中,在连接好电路之后,由于设备等实际问题,导致实验过程中试验台与题目要求不能很好的联系在一起,最终试验台的LED显像管不能准确显示出来。项
25、目五 投票仪设计 利用8253、8255、8259 芯片生成投票系统一、实习目的1熟练掌握8253、8255、8259和其他设备的连线,同时考察程序整体思路的严谨性。2、对于几个芯片的综合性合成运用打下一定的基础。二、实习内容(一)工作原理要实现投票仪,需要四个步骤1、按复位键 2、开始投票 3、统计结果 4、显示结果我通过8255的B口显示LED灯,A口读取开关状态,K0,K2,K4,K6为赞成,K1,K3,K5,K7为反对,C口的高四位用来控制LED灯的显示顺序,C口的低四位连接8253的OUT口,达到定时的效果。8253的CLK连接CPU时钟。KK1连接8259的7号中断,起到复位键的作
26、用。(二)工作方法1.学习过程采取理论知识补充和网上相关视频的查找学习相结合的方式,分层次的进行步骤演练2.下载网上的模版,针对有一定难度的综合性实践操作进行演练和对比,找出自身仍旧存在的不足,进行进一步的完善。3.结合周边同学的实践经验和体会进行交流,并从中学习提高(三)实施过程设计四人投票仪,按下复位键后开始投票,每人用两个开关表示赞成和反对,投票时间为1秒,到时间两开关都未动作表示弃权,统计赞成、反对和弃权的人数并在数码管上显示出来。流程图开始 设置中断向量,设置7波段码值 是开关状态全0并且KK1按下 否否K0=K1=1 是 读取开关状态,进行投票统计,显示结果投票结束时间到 否 是
27、程序如下所示:CODE SEGMENT ASSUME CS:CODESTART: MOV AX,0000H ;初始化DS段 MOV DS,AX MOV AX,OFFSET IRQ7 ;设置中断向量表 MOV SI,003CH ;设置偏移地址 MOV SI,AX MOV AX,CS MOV SI,003EH ;设置CS段地址 MOV SI,AX CLI ;关中断 MOV AL,10010001B ;8255控制字,A口输入,B口输出,C口高四位输出,低四位输入 OUT 63H,AL MOV SI,3008H ;设置7波段码值 MOV SI,3FH MOV SI+1,06H MOV SI+2,5B
28、H MOV SI+3,4FH MOV SI+4,66H STI ;开中断 AA: MOV AL,0FFH ;屏蔽中断 OUT 21H,AL IN AL,60H ;判断开关是否都为0 TEST AL,0FFH JNZ AA ;如果不为0,循环检测 MOV AL,7FH ;如果为0,取消7号中断屏蔽 OUT 21H,AL JMP AA ;继续循环检测 IRQ7: MOV DI,3000H ;设置投票结果存储地址 MOV DI,0 MOV CX,64H ;设置投票时间 MOV AL,0FFH ;LED灯全开 OUT 61H,AL ARR: MOV AL,10110110B ;8253延时 OUT 4
29、3H,AL MOV AL,0H OUT 42H,AL MOV AL,0H OUT 42H,AL AR: IN AL,62H MOV BL,00H AND AL,0CH SUB BL,AL JNZ AR LOOP ARR MOV DL,04H ;设置循环次数,因为有四个人 MOV DH,01H ;设置判断赞成人数向量 RESULT:IN AL,60H ;读取A口状态,即投票结果,存入内存 MOV DI,AL INC DI ;指针加一,用来存放赞成人数 MOV DI,0 ;赞成人数清零 PDZC: TEST AL,DH ;判断是否赞成 JNZ ZCGOON1: ROL DH,2 ;判断向量循环左移
30、2位 DEC DL ;循环次数减一 JNZ PDZC ;不为0,检测下一个人是否赞成 INC DI ;指针加一,用来存放反对人数 MOV DI,0 ;反对人数清零 MOV DH,02H ;设置判断反对人数向量 MOV DL,04H ;设置循环次数 JMP PDFD ZC: INC DI ;赞成人数加一 JMP GOON1 ;继续检测 PDFD: TEST AL,DH ;同上 JNZ FD GOON2: ROL DH,2 DEC DL JNZ PDFD MOV AL,0 JMP QQ FD: INC DI JMP GOON2 QQ: MOV AL,DI ;取反对人数 ADD AL,DI-1 ;加
31、上赞成人数 MOV AH,4H SUB AH,AL ;用总人数减去反对加赞成,即为弃权人数 MOV DI+1,AH ;把弃权人数存到内存 DEC DI LED: MOV CX,2H ;设置时间向量 MOV AL,70H ;设置亮第一盏灯 OUT 62H,AL MOV BX,DI-1 ;取出赞成人数 MOV BL,BH AND BX,0FH ;BX存赞成人数 MOV AL,SI+BX ;从内存取7波段码值 OUT 61H,AL MOV AH,01H WAI1: MOV AL,10110110B ;8253计时 OUT 43H,AL MOV AL,0FH OUT 42H,AL MOV AL,0FH
32、 OUT 42H,ALWAIT1: IN AL,62H MOV BL,00H AND AL,0CH SUB BL,AL JNZ WAIT1 LOOP WAI1 CMP AH,01H JE FLA2 CMP AH,02H JE FLA3 JMP FI FLA2: MOV AL,0B0H ;亮第二盏灯 OUT 62H,AL MOV BX,DI MOV BL,BH AND BX,0FH ;BX存反对人数 MOV AL,SI+BX ;从内存取7波段码值 OUT 61H,AL MOV CX,2H MOV AH,02H JMP WAI1 FLA3: MOV AL,0D0H ;亮第三盏灯 OUT 62H,A
33、L MOV BX,DI+1 MOV BL,BH AND BX,0FH ;BX存弃权人数 MOV AL,SI+BX ;从内存取7波段码值 OUT 61H,AL MOV CX,2H ;设置计时向量 MOV AH,03H ;设置跳转判断向量 JMP WAI1 FI: IN AL,60H ;检测8253的C口低4位状态 AND AL,3H CMP AL,03H ;判断是否为1 JNZ LED ;不是则继续循环 MOV AL,0H ;是则灭灯 OUT 61H,AL MOV AL,10010001B ;8255控制字 OUT 63H,AL MOV AL,20H OUT 20H,AL CLI IRET CODE ENDS END START三、实习心得1、一开始编完程序,觉得不太智能。如果一开始就把开关推上去的话也可以显示结果,但这样显然不是计时投票