微机原理实验报告实验课程:____微机原理与接口技术__学生姓名:________××_________学号:_______××_______专业班级:_______××______第一部分硬件实验实验一 8255控制交通灯实验一、实验目的与要求1、了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。
学会使用8255并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。
2、熟悉8255内部结构和与8088的接口逻辑,熟悉8255芯片的3种工作方式以及控制字格式。
3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。
二、实验设备STAR系列实验仪一套、PC机一台三、实验内容1、编写程序:使用8255的PA0..2、PA4..6控制LED指示灯,实现交通灯功能。
2、连接线路验证8255的功能,熟悉它的使用方法。
四、实验原理图五、实验步骤1、连线说明:2、观察实验结果,是否能看到模拟的交通灯控制过程。
六、实验结果七、实验扩展及思考如何对8255的PC口进行位操作?在端口C置1/置0控制字中,最高位D7应为0;其中的D6,D5,D4三位不用,是0是1对控制字无影响,一般置0即可,D3,D2,D1组合用来选中端口C 的某一位(2^3=8,故端口C的8位都可选择),最后一位D0用于指出选中位是置1还是置0,D0为1则置1,D0为0则置0.03H=00000011B;D7=0,说明此控制字为端口C置1/置0控制字,D6,D5,D4三位不用(本控制字中全部置0),D3,D2,D1三位的组合为"001",按8255A的控制字格式选中的是端口C的第2位(即PC1位),D0=1说明对PC1进行置1操作。
实验二 74HC138译码器实验一、实验目的与要求1、掌握74HC138译码器的工作原理,熟悉74HC138译码器的具体运用连接方法,了解74HC138是如何译码的。
2、认真预习本节实验内容,尝试自行编写程序,填写实验报告二、实验设备STAR系列实验仪一套、PC机一台三、实验内容1、编写程序:使用82C55的PC0、PC1、PC2控制74HC138的数据输入端,通过译码产生8选1个选通信号,轮流点亮8个LED指示灯。
2、运行程序,验证译码的正确性。
四、实验原理图五、实验步骤1、连线说明:C3区:A、B、C ——B4区:PC0、PC1、PC2C3区:G1、G2A、G2B ——C1区:VCC、GND、GNDC3区:JP35 ——G6区:JP65(LED指示灯)B4区:CS、A0、A1 ——A3区:CS1、A0、A12、调试程序,查看运行结果是否正确。
六、实验扩展及思考在应用系统中,74HC138通常用来产生片选信号,请读者考虑一下,应如何处理?138是一个3-8译码器,可以将3位二进制的数据,译成十进制的数据。
在器件连接上,通常情况下,是将地址的最高位分别接到译码器的输入端A2、A1、A0端,然后其输出端Y0-Y7每端接一个芯片的片选。
根据译码表,二进制的地址值000-111,每个地址空间对应其中一个芯片的片选,其它芯片的片选是无效的。
在地址分配中,以最高3位对应的二进制进行地址划分,取值不同,使用的器件也不同。
取三根底地址线,接到38译码器的输入端,译码产生,8个使能控制信号。
实验三数字式温度计实验(18B20)一、实验目的掌握一线串行接口的读写操作;掌握数字温度计DS18B20的使用二、实验设备STAR系列实验仪一套、PC机一台。
三、实验内容1、DS18B20:(1) 一线串行接口数字式温度计(2) 温度测量范围-55℃-125℃,-10℃-85℃内误差±0.5℃(3) 9-12位转换精度,转换时间100ms-750ms,通常为500ms2、实验过程(1) 应用DS18B20制作一个数字温度计,通过DS18B20测量温度,8279控制LED(G5区)动态显示温度四.实验原理图五.实验步骤1、主机连线说明:2、使用DS18B20测量温度,将读出的十六进制温度值转换为十进制数3、通过LED(G5区)动态显示温度,温度数据通过DS18B20获取。
可用手指贴住DS18B20(G1区),温度显示会随之上升。
六.实验结果七、实验扩展及思考题实验内容:读取DS18B20内部64位识别码,了解多个DS18B20协同工作原理实验四简易电子琴实验一、实验目的与要求掌握蜂鸣器的使用方法;掌握蜂鸣器的不同发音的方法。
二、实验设备STAR系列实验仪一套、PC机一台。
三、实验内容1、简易电子琴原理:(1) 蜂鸣器输入不同频率的方波,会发出不同的声音;(2) 通过按键,由单片机控制产生不同频率的方波,从而发出不同的声音。
2.实验过程(1) 通过8255的PA口,使G6区的1~7号键由低到高发出1-7的音阶。
四、实验原理图五、实验步骤1、主机连线说明:2、运行程序,按G6区的1~7号键,输出7种音阶3、使用G6区的1~7号键,弹一首《生日快乐》六、实验结果七.实验扩展及思考题设计一个简易电子播放器实验程序,使用蜂鸣器,回放一段音乐。
实验五电子钟(CLOCK)一.实验目的进一步熟悉8253、8259、8279二、实验设备STAR系列实验仪一套、PC机一台。
三、实验内容1、使用8253定时功能,产生0.5S的定时中断给82592、在G5区的数码管上显示时间3、允许设置时钟初值四、实验步骤1、主机连线说明:2、运行程序,按G5区的F键,设置时钟初值;3、观察G5区数码管上显示的时间是否正确。
五、实验结果第二部分 Debug调试1、进位标志位CFmov al,93mov bl,99add bl,al分析:99+93=(1)2C ,进位标志位置位CF=1;12C>127,溢出标志位置位OF=1;2C转化成二进制为00101100含有奇数个1,奇偶标志位PF=0;2C为正数,符号标志位SF=0;2C不为0,零标志位ZF=0;9+3=C,没有进位,辅助进位标志位AF=02、零标志位ZFmov al,79mov bl,87add bl,al分析:79+87=(1)00,最后结果为0,零标志位置位ZF=1;(1)00有进位,故进位标志位CF=1;00装换成二进制时没有1,故奇偶标志位PF=100为非负数,符号标志位SF=0;3、符号标志位SFmov al,aamov bl,7cadd al.bl分析:AA+7C=(1)26H,运算结果26位正数,故符号标志位复位SF=0mov al, 7cmov bl, 3aadc al,bl分析:3AH+7CH=B6H,B6为负数,SF=1,PL变成NG4、溢出标志位OFmov al,7amov bl,2cadd bl,al分析:7a+2c=a6;2a,7c与a6的符号位不同,故溢出标志位置位OF=1;A6为负数,所以符号标志位SF=1;a6不为零,所以零标志位ZF=0;a6转换成二进制为10100110,1的个数为偶数,所以奇偶标志位PF=1;进行加法时,没有进位,所以进位标志位复位;mov al,aamov bl,7cadd al.bl分析:只有两个符号相同的数相加,且计算结果符号改变时,溢出标志位置位,AA+7C=(1)26H,两个符号不同的数相加,没有溢出,OF=0,OV变成NV;最后结果为26不为零,所以零标志位ZF=0;26转换成二进制为00100110,1的个数为奇数,所以奇偶标志位PF=0;AA和7C相加有进位,故进位标志位CF=15.逻辑指令(1)逻辑与指令:实现某几位的清零操作mov al,FFand al,88分析:88转换成二进制为10001000,对第1、5位清零(2)逻辑或指令:将目的操作数的某些位置位,其它位保留mov al,80or al,88分析:88转化成二进制为10001000,将al的第1、5位置位,其它位保留(3)逻辑异或指令:将目的操作数某些位特定的为取反mov al,ffxor al,88分析:88转化成二进制为10001000,将al的第1、5位取反,其它位保留(4)逻辑非指令:按位取反,且不影响标志位mov al,ffnot al分析:ff转化成二进制为11111111,按位取反后为00000000第三部分汇编程序1 在存储单元DAT中存放着1位十六进制数,将其显示到屏幕上。
(1)运行源代码DSEG SEGMENT 'DATA'DA T D B 0CHDSEG ENDSSSEG SEGMENT STACK 'STACK'DW 100h DUP(?)SSEG ENDSCSEG SEGMENT 'CODE'START PROC FARPUSH DSMOV AX, 0PUSH AXMOV AX, DSEGMOV DS, AXMOV ES, AXMOV AL,DATCMP AL,9JG NEXTADD AL,30HJMP DISPNEXT: ADD AL,37HDISP: MOV DL,ALMOV AH,2INT 21HDONE: MOV AH,4CHINT 21HRETSTART ENDPCSEG ENDSEND START ; set entry point. (2)运行截图2 编写一程序,求2!+3!+4!+5!+6! 的值。
(1)程序源代码DSEG SEGMENT 'DATA'RESULT DW ?DSEG ENDSSSEG SEGMENT STACK 'STACK'DW 100h DUP(?)SSEG ENDSCSEG SEGMENT 'CODE'FACT PROC NEARPUSH AXPUSH BPMOV BP,SPMOV AX,[BP+6]CMP A X,0JNE FACT1INC AXJMP EXITFACT1: DEC AXPUSH AXCALL F ACTPOP AXMUL [BP+6]EXIT: MOV [BP+6],AXPOP BPPOP AXRETFACT ENDPSTART PROC FARPUSH DSMOV AX, 0PUSH AXMOV AX, DSEGMOV DS, AXMOV ES, AXMOV AX,2MOV CX,5MOV DX,0AGAIN: PUSH AXCALL F ACTPOP BXADD DX,BXINC AXLOOP AGAINMOV RESULT,DXRETSTART ENDPCSEG ENDSEND START ; set entry point.(2)运行截图3 从键盘输入一个字符串,将其中小写字母转换为大写字母,然后显示。