微机原理实验报告
更新时间:2023-05-29 23:41:01 阅读量: 实用文档 文档下载
资深通信专业学霸整理的实验报告
微机原理实验报告
资深通信专业学霸整理的实验报告
目 录
一、I/O地址译码与交通灯控制实验……………………………………3 二、可编程定时器/计数器(8253)……………………………………6 三、中断实验(纯DOS)………………………………………………11 四、模/数转换器………………………………………………………18五、串行通讯 …………………………………………………………16六、课程综合实验(抢答器) …………………………………………28
一、I/O地址译码与交通灯控制实验
资深通信专业学霸整理的实验报告
一.实验目的
通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。 二.实验内容
如图5-3,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律燃灭。
十字路口交通灯的变化规律要求:
(1) 南北路口的绿灯、东西路口的红灯同时亮3秒左右。 (2) 南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。 (3) 南北路口的红灯、东西路口的绿灯同时亮3秒左右。 (4) 南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。 (5) 转(1)重复。
8255动态分配地址: 控制寄存器: 0C40BH
A口地址: 0C408H C口地址: 0C40AH
三.程序流程图和程序清单
资深通信专业学霸整理的实验报告
DATA SEGMENT X DB ? DATA ENDS
STACK1 SEGMENT STACK DW 100H DUP(0) STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATA
MOV DS,AX MOV DX,0EC0BH MOV AL,80H OUT DX,AL
;写控制字
;---------------INIT----------------
资深通信专业学霸整理的实验报告
L3: MOV DX,0EC0AH
CALL DELAY CALL DELAY
;长延时,3s左右
MOV AL,24H OUT DX,AL
;南北绿灯,东西红灯亮
CALL DELAY CALL DELAY CALL DELAY CALL DELAY CALL DELAY
MOV BL,8 MOV AL,04H
L0: XOR AL,40H ;南北黄灯闪,东西红灯亮
MOV AL,81H OUT DX,AL
;南北红灯亮,东西绿灯亮
CALL DELAY OUT DX,AL CALL DELAY
;延时
CALL DELAY
DEC BL ;闪烁几次 JNZ L0
CALL DELAY
CALL DELAY
CALL DELAY ;长延时,3s左右
CALL DELAY CALL DELAY CALL DELAY CALL DELAY
MOV BL,9
MOV AL,80H
L1: XOR AL,02H ;南北红灯亮,东西黄灯闪
OUT DX,AL CALL DELAY DEC BL
JNZ L1 ;闪烁几次
;延时
CALL DELAY
CALL DELAY
资深通信专业学霸整理的实验报告
;------------------------------
;-----------延时函数------------ DELAY : PUSH CX PUSH DX MOV CX,1FFFH LOP1: MOV DX,0FFFFH LOP2: DEC DX
LOOP LOP1 POP DX POP CX RET
JNZ LOP2 MOV AH,4CH INT 21H MOV DL,0FFH MOV AH,06H INT 21H JZ L3
;六号功能判断若无字符输入ZF=1继续循环
CODE ENDS END START
四.实验遇到的问题和解决方法
问题:绿灯灭后黄灯没有出现闪烁的效果,一直保持常亮
解决方法:修改程序,通过利用异或和循环指令使绿灯灭、红灯亮后,黄灯口的状态从0到1循环变换,并通过调用延迟子程序,从而实现人眼可辨的黄灯闪的效果。
二、可编程定时时钟/计数器(8253)
资深通信专业学霸整理的实验报告
一、实验目的
掌握8253的基本工作原理和编程方法。
二、实验内容
1. 按图5-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
图 5-1
2. 按图5-2连接电图,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。
图5-2
三.实验原理
资深通信专业学霸整理的实验报告
8253具有3个独立的计数通道,采用减1计数方式。在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。当计数脉冲是已知周期的时钟信号时,计数就成为定时。作计数器时, 要求计数的次数可直接作为计数器的初值预置到减“1”计数器中。
8253中各通道可有6种可供选择的工作方式, 以完成定时、计数或脉冲发生器等多种功能。本实验用到的是方式0—计数结束中断。在写入计数值N之后的第一个CLK的下降沿将N装入计数执行单元,待下一个CLK的下降沿到来且门控信号GATE为高电平时,通道开始启动计数。在计数过程中,OUT一直保持低电平,直到计数达“0”时,OUT输出由低电平变为高电平,并且保持高电平。 8253动态分配地址: 控制寄存器: 0C403H
计数器0地址: 0C400H 计数器1地址: 0C401H
四.程序流程图和程序清单 1)
DATA SEGMENT N EQU 0BH
;计数器初值,不大于
0FH
资深通信专业学霸整理的实验报告
CHL
DB 0AH,0DH,'$' ;换行
DATA ENDS
STACK1 SEGMENT STACK DW 100 DUP(0) STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATA MOV DS,AX
;--------------INIT----------------
L0: ;MOV AL,0
CMP CL,0 JNL L0
;CL不小于0时,继续循环
MOV DX,OFFSET CHL MOV AH,09H INT 21H
;输出字符串换行
;OUT DX,AL MOV DX,0C400H IN AL,DX CMP AL,CL JNE L0 DEC CL MOV DL,AL
;若AL不等于CL,则继续到L0循环 ;更改CL值
;读取当前数值
;计数器0锁存
;MOV DX,IO8253 MOV CL,N
MOV DX,0C400H MOV AL,N
MOV DX,0C403H MOV AL,10H OUT DX,AL
;控制寄存器地址
;计数器0,低字节,方式0,二进制计数 ;写入控制字
OUT DX,AL ;写入计数初值
CMP DL,09H ;是0~9吗? JLE ASCI ADD DL,07H ;是A~F
MOV AH,02H ;单字符输出计数器当前值 INT 21H
ASCI: ADD DL,30H
资深通信专业学霸整理的实验报告
;------------------------------
MOV AH,4CH INT 21H END START
CODE ENDS
2)
DATA SEGMENT X DB ? DATA ENDS
STACK1 SEGMENT STACK DW 100H DUP(0) STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1
START: MOV AX,DATA
MOV DS,AX
资深通信专业学霸整理的实验报告
MOV AL,36H
MOV DX,0C403H ;写计数器0控制字 OUT DX,AL
MOV AX,1000 ;写计数器0初值 MOV DX,0C400H
OUT DX,AL ;先写低字节后写高字节 MOV AL,AH OUT DX,AL
;----------------------------------------------- MOV AL,76H MOV DX,0C403H
OUT DX,AL ;写计数器1控制字 MOV AX,1000 ;写计数器0初值 MOV DX,0C401H OUT DX,AL
MOV AL,AH ;先写低字节后写高字节 OUT DX,AL CODE ENDS END START
五.实验遇到的问题和解决方案 问题:计数初值没有显示出来
解决方法:进行TD调试,发现逻辑上出现了问题。修改程序,通过利用CMP AL,CL JNZ L0来实现将所有的计数值都显示出来。
三、中断实验(纯DOS)
一、实验目的
1、掌握PC机中断处理系统的基本原理。 2、学会编写中断服务程序。 二、实验原理与内容 1、实验原理
PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。IBMPC、PC/XT机内有一片8259中断控制器对外可以提供8个中断源:
中断源 中断类型号 中断功能 IRQ0 08H 时钟
资深通信专业学霸整理的实验报告
IRQ1 09H 键盘 IRQ2 0AH 保留 IRQ3 OBH 串行口2 IRQ4 0CH 串行口1 IRQ5 0DH 硬盘 IRQ6 0EH 软盘
IRQ7 0FH 并行打印机
8个中断源的中断请求信号线IRQ0~IRQ7在主机的62线ISA总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。对于PC/AT及286以上微机内又扩展了一片8259中断控制,IRQ2用于两片8259之间级连,对外可以提供16个中断源:
中断源 中断类型号 中断功能 52
IRQ8 070H 实时时钟 IRQ9 071H 用户中断 IRQ10 072H 保留 IRQ11 O73H 保留 IRQ12 074H 保留 IRQ13 075H 协处理器 IRQ14 076H 硬盘 IRQ15 077H 保留
PCI总线中的中断线只有四根,INTA#、INTB#、INTC#、INTD#,它们需要通过P&P的设置来和某一根中断相连接才能进行中断申请。
资深通信专业学霸整理的实验报告
2、实验内容
实验电路如图31,直接用手动产单脉冲作为中断请求信号(只需连接一根导线)。要求每按一次开关产生一次中断,在屏幕上显示一次“TPC pci card Interrupt”,中断10次后程序退出。 三、编程提示
1. 由于9054的驱动程序影响直写9054芯片的控制寄存器,中断实验需要在纯DOS的环境中才能正常运行。这里指的纯DOS环境是指微机启动时按F8键进入的DOS环境。WINDOWS重启进入MSDOS方式由于系统资源被重新规划过,所以也不能正常实验。
2. 由于TPC卡使用PCI总线,所以分配的中断号每台微机可能都不同,编程时需要了解当前的微机使用那个中断号并进行设置,获取方法请参看汇编程序使用方法的介绍。(也可使用自动获取资源分配的程序取得中断号)
3. 在纯DOS环境下,有些微机的BIOS设置中有将资源保留给ISA总线使用的选项,致使在纯DOS环境(WINDOWS环境下不会出现此问题)下PCI总线无法获得系统资源,也就 53
无法做实验,这时需要将此选项修改为使用即插即用。
资深通信专业学霸整理的实验报告
4. 在纯DOS环境下,有些微机的BIOS设置中有使用即插即用操作系统的选项,如果在使用即插即用操作系统状态下,BIOS将不会给TPC卡分配系统资源,致使在纯DOS环境(WINDOWS环境下不会出现此问题)下PCI总线无法获得系统资源,也就无法做实验,这时需要将此选项修改为不使用即插即用操作系统。
5. 由于TPC卡使用9054芯片连接微机,所以在编程使用微机中断前需要使能9054的中断功能,代码如下:
mov dx,ioport_cent+68h ;设置 tpc 卡中9054芯片io口,使能中断 in ax,dx or ax,0900h out dx,ax
其中IOPORT_CENT是9054芯片寄存器组的I/O起始地址,每台微机可能都不同,编程时需要了解当前的微机使用哪段并进行设置,获取方法请参看本书结尾部分的介绍。(也可使用自动获取资源分配的程序取得),+68H的偏移是关于中断使能的寄存器地址,设置含义如下:
程序退出前还要关闭9054的中断,代码如下:
mov dx,ioport_cent+68h ;设置 tpc 卡中9054芯片io口,关闭中断 in ax,dx
and ax,0f7ffh out dx,ax
6. PC机中断控制器8259 的地址为20H、21H,编程时要根据中断类型号设置中断矢量,8259中断屏蔽寄存器IMR对应位要清零(允许中断),中断服务结束返回前要使用中断结束命令:
MOV AL,20H OUT 20H,AL
中断结束返回DOS时应将IMR对应位置1,以关闭中断 。 四、参考流程图
资深通信专业学霸整理的实验报告
资深通信专业学霸整理的实验报告
五、参考程序 程序名:INT.ASM ;386以上微机适用 ;纯dos下才能使用 ;tasm4.1或以上编译 data segment
int_vect EQU 071H ;中断0-7的向量为:08h-0fh,中断8-15的向量为:70h-77h 55
irq_mask_2_7 equ 011111011b ;中断掩码,中断0-7时从低至高相应位为零,中断8-15时第2位为零
irq_mask_9_15 equ 011111101b ;中断0-7时全一,中断8-15时从低至高相应位为零
ioport_cent equ 0d800h ;tpc 卡中9054芯片的io地址 csreg dw ?
ipreg dw ? ;旧中断向量保存空间 irq_times dw 00h ;中断计数
msg1 db 0dh,0ah,'TPC pci card Interrupt',0dh,0ah,'$' msg2 db 0dh,0ah,'Press any key to exit!',0dh,0ah,'$'
msg3 db 0dh,0ah,'Press DMC to interrupt 10 times and exit!',0dh,0ah,'$' data ends
stacks segment db 100 dup (?) stacks ends code segment
assume cs:code,ds:data,ss:stacks,es:data start:
;Enable Local Interrupt Input .386 cli
mov ax,data mov ds,ax mov es,ax mov ax,stacks mov ss,ax
mov dx,ioport_cent+68h ;设置 tpc 卡中9054芯片io口,使能中断 in ax,dx or ax,0900h out dx,ax
mov al,int_vect ;保存原中断向量 mov ah,35h int 21h mov ax,es mov csreg,ax mov ipreg,bx
mov ax,cs ;设置新中断向量
资深通信专业学霸整理的实验报告
56
mov ds,ax
mov dx,offset int_proc mov al,int_vect mov ah,25h int 21h
in al, 21h ;设置中断掩码 and al, irq_mask_2_7 out 21h, al in al, 0a1h
and al, irq_mask_9_15 out 0a1h, al mov ax,data mov ds,ax
mov dx,offset msg2 mov ah,09h int 21h
mov dx,offset msg3 mov ah,09h int 21h
mov irq_times,0ah sti loop1:
cmp irq_times,0 ;等待中断并判断中断10次后退出 jz exit mov ah,1 int 16h
jnz exit ;按任意键退出 jmp loop1 exit: cli
mov bl, irq_mask_2_7 ;恢复中断掩码 not bl in al, 21h or al, bl out 21h, al
mov bl, irq_mask_9_15 not bl in al, 0a1h 57
or al, bl out 0a1h, al
mov dx,ipreg ;恢复原中断向量 mov ax,csreg mov ds,ax
资深通信专业学霸整理的实验报告
mov ah,25h mov al,int_vect int 21h
mov dx,ioport_cent+68h ;设置 tpc 卡中9054芯片io口,关闭中断 in ax,dx
and ax,0f7ffh out dx,ax mov ax,4c00h int 21h
int_proc proc far ;中断处理程序 cli
push ax push dx push ds
dec irq_times
mov ax,data ;Interrupt to do mov ds,ax
mov dx,offset msg1 mov ah,09h int 21h
mov al,20h ;Send EOI out 0a0h,al out 20h,al pop ds pop dx pop ax sti iret
int_proc endp code ends
四、模/数转换器
一、实验目的
了解模/数转换的基本原理,掌握ADC0809的使用方法。
资深通信专业学霸整理的实验报告
二、实验内容
1、实验电路原理图如图38。通过实验台左下角电位器RW1输出0~5V直流电压送入ADC0809通道0(IN0),利用debug的输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。 启动IN0开始转换: Out 0298 0 读取转换结果: In 0298
2、编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。 3、将JP3的1、2短接,使IN2处于双极性工作方式,并给IN1输入一个低频交流信号(幅度为±5V),编程采集这个信号数据并在屏幕上显示波形。 三、实验提示
1、ADC0809的IN0口地址为298H,IN1口地址为299H。
2、IN0单极性输入电压与转换后数字的关系为:
其中Ui为输入电压,UREF为参考电压,这里的参考电压为PC机的+5V电源。 3、一次A/D转换的程序可以为 MOV DX,口地址
OUT DX,AL ;启动转换 ;延时
IN AL,DX ;读取转换结果放在AL中 四、参考流程图
资深通信专业学霸整理的实验报告
五、参考程序1:AD_1.ASM ioport equ 0d400h-0280h io0809a equ ioport+298h code segment assume cs:code
start:mov dx,io0809a ;启动A/D转换器 out dx,al
mov cx,0ffh ;延时 delay:loop delay
in al,dx ;从A/D转换器输入数据 mov bl,al ;将AL保存到BL mov cl,4
shr al,cl ;将AL右移四位
call disp ;调显示子程序显示其高四位 mov al,bl and al,0fh
call disp ;调显示子程序显示其低四位 mov ah,02
mov dl,20h ;加回车符 int 21h mov dl,20h int 21h
资深通信专业学霸整理的实验报告
push dx
mov ah,06h ;判断是否有键按下 mov dl,0ffh int 21h pop dx
je start ;若没有转START mov ah,4ch ;退出 int 21h
disp proc near ;显示子程序 mov dl,al
cmp dl,9 ;比较DL是否>9
jle ddd ;若不大于则为'0'-'9',加30h为其ASCII码 add dl,7 ;否则为'A'-'F',再加7 ddd: add dl,30h ;显示 mov ah,02 int 21h ret
disp endp code ends end start
五、串行通讯
一、实验目的
1、 进一步了解串行通信的基本原理。
2、 掌握串行接口芯片8250的工作原理和编程方法。 3、 熟悉PC机串行口的基本连接方法
二、实验内容
1、PC机RS-232串口自发自收。
按照PC机串口自发自收的连接方法连线。编写PC机自发自收串行通信程序,要求:从键盘输入一个字符,将字符通过串口发送出去,再由此串口将字符接收回来并在屏幕上显示,实现自发自收。 2、 两台PC机间RS-232串口通信。
按照PC机RS-232串口直接互连的方法连接两台PC机。 编写PC机直接互连串行通信程序;要求:由甲机键盘键入字符经串口发送给乙机,再由乙机通过串口接收字符并显示在屏幕上。当键入感叹号“!”,结束收发过程。
正在阅读:
微机原理实验报告05-29
幼儿园教学见习、实习指导手册 - -教师工作 - 图文09-27
新冠疫情防控工作总结范文八篇07-30
教务处九月份工作小结14.903-04
2016北师大版二年级数学上册期末试卷合集 - 图文09-11
索赔函样本02-16
广州市蔬菜零售商家名录2018版127家 - 图文11-07
消防安全培训记录表03-29
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 微机
- 原理
- 实验
- 报告
- 薪资管理方案 Microsoft Office Word 文档 (4)
- 格力电器投资分析之我见
- 非瓣膜性心房颤动患者血清人巨噬细胞移动抑制因子水平的变化及意义
- 关于关于劳动者工伤维权的指
- 高一历史组备课组总结 文档 (9)
- 通用设备经济寿命年限参考表
- 农类高职院校人文素质课程教育的调查与思考
- 2015高一数学第3章 指数函数、对数函数和幂函数作业题及答案解析3.1.2(一)
- 钒氧化还原液流电池的研究进展(2)
- 车险业务承保政策制定指南
- 2015-2016第一学期文化素质教育公选课开课计划一览表
- 【2018-2019】人力资源社会保障审批制度改革的路径-易修改word范文 (4页)
- 北京理工大学C语言网络教室 三角形 安排比赛 学生成绩排序
- 幼儿教育思想史平时作业
- 最新幼小衔接—数学(思维训练)知识分享
- 中考作文题目 (114)
- 静压预应力混凝土管桩施工质量与安全控制措施探讨
- 护理核心制度解读
- 陈云开校初安全纪律教育大会上的讲话09、3
- 某大型国有企业工资分配方案