微机原理报告.doc_第1页
微机原理报告.doc_第2页
微机原理报告.doc_第3页
微机原理报告.doc_第4页
微机原理报告.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息科学与工程学院 微机实验报告书 课 题: 微机原理与接口技术 班 级: 通信 学 号: 姓 名: 指导教师: 二一 年 十二月phnbriwn假日无线网密码目录一、绪论二、双色灯实验2.1实验要求,目的,32.2实验电路连线 42.3实验说明和实验步骤42.4实验源代码42.5实验结果分析及总结5三、定时器/计数器实验53.1实验要求,目的,53.2实验电路连线63.3实验说明和实验步骤73.4实验源代码 83.5实验结果分析及总结10四、软件实验五、实验总结分析和感想11六、参考文献11二、双色灯实验2.1实验要求,目的一实验要求编写程序,以8255为输出口,控制四个双色灯按要求发光。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态,东西绿灯通车,南北灯灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯二、实验目的1学习单板方式下扩展简单I/O接口的方法以双色灯的使用。2进一步学习微处理器的编程技术。2.2实验电路连线8255的CS片选接至适配板上138译码处的200H207H插孔。2.3实验说明和实验步骤1、因为本实验是模拟交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态,东西绿灯通车,南北灯灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。2、双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮2.4实验源代码D1 EQU 10H D2 EQU 200HDATA SEGMENTPB DB ?DATA ENDSSTACK SEGMENT STACKSTA DW 50 DUP(?)TOP EQU LENGTH STA STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: PUSH CS POP DS MOV DX,203H ;设置为全输出 MOV AL,80H OUT DX,AL MOV DX,200H MOV AL,00 OUT DX,AL ;清LED MOV DX,200H ;全红 MOV AL,0F0H OUT DX,AL MOV BX,7fH CALL DLYBG: MOV AL,01011010B ;南北绿,东西红 OUT DX,AL MOV BX,D2 CALL DLY MOV CX,03HXH1: AND AL,0F5H ;绿灭 OUT DX,AL MOV BX,D1 CALL DLY OR AL,0aH ;绿亮 OUT DX,AL MOV BX,D1 CALL DLY LOOP XH1 OR AL,0a0H ;南北黄 OUT DX,AL MOV BX,D1 CALL DLY MOV BX,D1 CALL DLY MOV AL,10100101B ;南北红,东西绿 OUT DX,AL MOV BX,D2 CALL DLY MOV CX,03XH2: AND AL,0FaH OUT DX,AL MOV BX,D1 CALL DLY OR AL,05H OUT DX,AL MOV BX,D1 CALL DLY LOOP XH2 OR AL,50H OUT DX,AL MOV BX,D1 CALL DLY MOV BX,D1 CALL DLY JMP BGDLY PROC NEAR PUSH CXDDD: MOV CX,2fffHCCC: LOOP CCC DEC BX CMP BX,0 JNE DDD POP CX RET DLY ENDP CODE ENDSEND START2.5实验结果分析及总结一,实验结果是看到四个交通灯,按规律交替地变化,以东西南北两两交替地实现了交通控制的功能,二,源代码编写分析:先把10H和200H赋给两个端口,在数据段定义PB的空间,里面内为空,然后在堆栈段定义50个字节的内容,并把长度赋值给TOP。在程序的正文部分,先向控制端口写方式控制字,然后通过A端口向外设输出信息,即使LED灯全灭。然后分时段向外设写入灯的控制信息实现,双色灯的交替变化,00是全灭控制,01控制灯变红,02控制灯变绿,03控制变黄,最后通过延迟设计使等每隔几秒就亮和灭。 三、定时器/计数器实验3.1实验要求,目的一、实验要求 编程将8253定时器0设定为方式3,定时器1设定在方式2,定时器0输出作为定时器1的输入,定时器1的输出接在一个LED上,运行后可观察到该LED在不停闪烁。二、实验目的了解8253定时器的硬件连接方法及时序关系。掌握8253的各种模式编程及原理。3.2实验电路连线GATE0GATE1连至电源+5V,CLK0接OUT1,OUT1用线连至一个发光管(L0), CLK1接1MHZ, CS53片选孔用线连至译码处20820F这个孔。3.3实验说明和实验步骤四、实验说明8253的工作频率为02MHZ,所以输入的CLK频率必须在2MHZ以下。3.4实验源代码;自由扩展实验例程 8253定时器实验CONTROL equ 20bhCOUNT0 equ 208hCOUNT1 equ 209hCOUNT2 equ 20ahcode segment assume cs:codestart proc near mov al, 36h; 00110110B ; 计数器0,16位,方式3,二进制 mov dx, CONTROL out dx, al mov ax, 10000 mov dx, COUNT0 out dx, al ; 计数器低字节 mov al, ah out dx, al ; 计数器高字节 mov al, 76h; 01110110B ; 计数器1,16位,方式3,二进制 mov dx, CONTROL out dx, al mov ax, 100 mov dx, COUNT1 out dx, al ; 计数器低字节 mov al, ah out dx, al ; 计数器高字节 jmp $start endpcode ends end start3.5实验结果分析及总结 实验结果清晰地显示了,每隔一个固定的时间灯就会亮一次的过程,可以说达到了预期的实验效果。 8253芯片实现定时功能,主要步骤是,先向芯片写入初始计数值,通过初始值控制时间的定时功能,第二步是向相应的端口写入方式控制字,以实现对芯片方式的控制,和中断结束的控制。8253芯片主要的功能有计数和定时功能,必须要对8253芯片进行初始化编程才能实现相应的功能,主要两个内容一是:方式控制字,二是:写入计数初值。这些内容的写入主要是向相应的端口写入。另外要特别注意端口的选择,这需要根据A0,位来分析判断决定。四、软件实验与数据有关的寻址方式:以 MOV 指令为例 立即寻址 MOV AX , 3069H 寄存器寻址 MOV AL , BH 直接寻址 MOV AX , 2000H 寄存器间接寻址 MOV AX , BX 寄存器相对寻址 MOV AX , COUNT SI 基址变址寻址 MOV AX , BP DI 相对基址变址寻址 MOV AX , MASK BX SI (1) 立即寻址方式* 操作数在指令中给出 指令格式:MOV AL, 5 MOV AX, 3064H MOV AL, A (2) 寄存器寻址方式* 操作数在指定的寄存器中 MOV AX, BX MOV AL, BH MOV AX, 3064H (3) 直接寻址方式* 有效地址EA由指令直接给出 例:MOV AX, 2000H EA=2000H, 假设(DS)=3000H, 那么PA=32000H (4)寄存器间接寻址* EA在基址寄存器(BX/BP) 或变址寄存器(SI/DI) 中 MOV AX, BX PA = 16d (DS) + (BX) MOV AX, ES:BX PA = 16d (ES) + (BX) MOV AX, BP PA = 16d (SS) + (BP) 5) 寄存器相对寻址方式* 指令格式: MOV AX, COUNTSI 或 MOV AX, COUNT+SI 假设 (DS)=3000H, (SI)=2000H, COUNT=3000H, 则: PA = 35000H 假设(35000H)=1234H, 那么 (AX)=1234H (6) 基址变址寻址方式* 指令格式:MOV AX, BX DI MOV AX, BX+DI MOV AX, ES:BX SI ( 7 ) 相对基址变址寻址方式 MOV AX, MASK BX SI 或 MOV AX, MASK BX+SI 或 MOV AX, MASK+BX+SI数据传送指令: 通用数据传送指令 MOV、PUSH、POP、XCHG 累加器专用传送指令 IN、OUT、XLAT 地址传送指令 LEA、LDS、LES 标志寄存器传送指令 LAHF、SAHF、PUSHF、POPF 类型转换指令 CBW、CWD 例:LEA BX, BX+SI+0F62H LDS SI , 10H LES DI , BX mov dx, 100 in al, 61h and al,11111100bsound: xor al, 2 ; 1 0 1循环 out 61h, al ;ON OFF ON循环 mov cx, 140h ;脉宽Wait1: loop wait1 dec dx jne sound例: IN AX, 28H MOV DATA_WORD, AX例: MOV DX, 3FCH IN AX, DX例: OUT 5, AL换码指令:XLAT 或XLAT OPR执行操作:(AL) ( (BX) + (AL) )例:MOV BX, OFFSET TABLE ; (BX)=0040H MOV AL, 3 XLAT TABLE(此处TABLE仅为提高可读性) 指令执行后 (AL)=33H(3的ASCII码)算术指令: 加法指令 ADD、ADC、INC 减法指令 SUB、SBB、DEC、NEG、CMP 乘法指令 MUL、IMUL 除法指令 DIV、IDIV 十进制调整指令 DAA、DAS、 AAA、AAS、AAM、AAD 加法指令 加法指令: ADD DST, SRC 执行操作: (DST) (SRC) + (DST) 带进位加法指令: ADC DST, SRC 执行操作: (DST) (SRC) + (DST) + CF 加1指令: INC OPR 执行操作: (OPR) (OPR) + 1 减法指令减法指令: SUB DST, SRC 执行操作: (DST) (DST) - (SRC)带借位减法指令: SBB DST, SRC 执行操作: (DST) (DST) - (SRC) - CF减1指令: DEC OPR 执行操作: (OPR) (OPR) - 1求补指令: NEG OPR 执行操作: (OPR) - (OPR)比较指令: CMP OPR1, OPR2 执行操作: (OPR1) - (OPR2例:x、y、z 均为双精度数,分别存放在地址为X, X+2; Y, Y+2;Z, Z+2的存储单元中,用指令序列实现 w x + y + 24 - z ,并用W, W+2单元存放wMOV AX, XMOV DX, X+2ADD AX, YADC DX, Y+2 ; x+y ADD AX, 24ADC DX, 0 ; x+y+24SUB AX, ZSBB DX, Z+2 ; x+y+24-zMOV W, AXMOV W+2, DX ; 结果存入W, W+2单元逻辑指令: 逻辑运算指令 AND、OR、NOT、XOR、TEST 移位指令 SHL、SHR 、 SAL 、SAR、 ROL、ROR、RCL、RCR例:屏蔽AL的第0、1两位 AND AL, 0FCH例:置AL的第5位为1 OR AL, 20H 例:使AL的第0、1位变反 XOR AL, 3例:测试某些位是0是1 TEST AL, 1 JZ EVEN逻辑左移 SHL OPR, CNT逻辑右移 SHR OPR, CNT算术左移 SAL OPR, CNT(同逻辑左移)算术右移 SAR OPR, CNT例:(BX) = 84F0H (1) (BX) 为无符号数,求 (BX) / 2 SHR BX, 1 ; (BX) = 4278H (2) (BX) 为带符号数,求 (BX) 2 SAL BX, 1 ; (BX) = 09E0H, OF=1 (3) (BX) 为带符号数,求 (BX) / 4 MOV CL, 2 SAR BX, CL ; (BX) = 0E13CH例:(AX)= 0012H,(BX)= 0034H,把它们装配成(AX)= 1234HMOV CL, 8ROL AX, CLADD AX, BX(3) (BX)=84F0H,把 (BX) 中的 16 位数每 4 位压入堆栈MOV CH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论