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

下载本文档

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

文档简介

1 实验一 定时器 计数器实验 一 实验程序 DATA SEGMENT DATA ENDS CODE SEGMENT ASSUME CS CODE DS DATA START PUSH DS MOV AX 0 PUSH AX 返回DOS MOV AX DATA MOV DS AX 初始DS MOV DX 22bH 控制字端口地址 MOV AL 00110111B 定时器0工作在方式3 16位初值 BCD计数 OUT DX AL MOV DX 228H 计数通道0端口地址 MOV AL 00H OUT DX AL mov al 96h 初值9600H 9600 out dx al MOV DX 22BH MOV AL 01010100B 定时器1工作在方式2 8位初值 二进制计数 OUT DX AL MOV DX 229H 计数通道1端口地址 MOV AL 10H 初值10H 16 OUT DX AL JMP CODE ENDS END START 二 实验连线及结果 GATE0 GATE1 5V CLK0 153 6KHZ OUT0 CLK1 OUT1 L1 CS8253 228H fout0 153 6KHZ 9600 16HZ fout1 16HZ 16 1HZ 运行后可观察到LED1在不停闪烁 间隔周期为1秒 2 实验二 双色灯实验 一 实验程序 DATA SEGMENT PB DB DATA ENDS CODE SEGMENT ASSUME CS CODE DS DATA START POP DS MOV AX O PUSH AX 返回DOA MOV DX 206H 控制字端口地址 MOV AL 80H A B C口全设置为方式0 输出 OUT DX AL MOV DX 204H C口端口地址 MOV AL 0FFH OUT DX AL 全灭 MOV DX 204H 全红 MOV AL 0FH OUT DX AL MOV BX 7fH 延时参数 CALL DLY 延时127t BG MOV AL 5AH 东西红 南北绿 OUT DX AL MOV BX 50H CALL DLY 延时50t MOV CX 03H 绿灯闪次数 XH1 MOV AL 5FH 东西红 南北灭 OUT DX AL MOV BX 10H CALL DLY 延时10t MOV AL 5AH 东西红 南北绿 3 OUT DX AL MOV BX 10H CALL DLY 延时10t LOOP XH1 南北绿灯 灭 亮 重复CX次 MOV AL 0AH 东西红 南北黄 OUT DX AL MOV BX 20H CALL DLY 延时20t MOV AL 0A5H 东西绿 南北红 OUT DX AL MOV BX 50H CALL DLY 延时50t MOV CX 03 绿灯闪次数 XH2 MOV AL 0AFH 东西灭 南北红 OUT DX AL MOV BX 10H CALL DLY 延时10t MOV AL 0A5H 东西绿 南北红 OUT DX AL MOV BX 10H CALL DLY 延时10t LOOP XH2 东西绿灯 灭 亮 重复CX次 MOV AL 05H 东西黄 南北红 OUT DX AL MOV BX 20H CALL DLY 延时20t JMP BG DLY PROC NEAR 延时子程序 延时t 假设BX 1 PUSH CX DDD MOV CX 0FFFH CCC LOOP CCC DEC BX CMP BX 0 JNE DDD 4 POP CX RET DLY ENDP CODE ENDS END START 二 实验连线及结果 将DG1 DG4 DR1 DR4连至8255的PC0 PC7 CS8255 200H 双色灯状态变换 全灭 全红127t 东西红 南北绿50t 东西红 南北灭10t亮10t闪3 次 东西红 南北黄20t 东西绿灯 南北红50t 东西灭10t亮10t闪3次 南北红 东西黄 南北红20t 东西红 南北绿50t 实验三 两个多位十进制数相减 一 编辑实验程序一 编辑实验程序EDIT 123 ASM DATA SEGMENT DATA1 DB 33H 39H 31H 37H 38H 第一个数据 作为被减数 DATA2 DB 36H 35H 30H 38H 32H 第二个数据 作为减数 DATA3 DB 5 DUP 0 放运算后结果 MES1 DB MES2 DB DATA ENDS CODE SEGMENT ASSUME CS CODE DS DATA START MOV AX DATA MOV DS AX MOV SI OFFSET DATA1 MOV BX 05 CALL DISPL 显示被减数 MOV AH 09H LEA DX MES1 显示 INT 21H MOV SI OFFSET DATA2 MOV BX 05 显示减数 CALL DISPL MOV AH 09H LEA DX MES2 显示 INT 21H MOV SI OFFSET DATA1 MOV DI OFFSET DATA2 CALL SUBA 减法运算 MOV SI OFFSET DATA3 MOV BX 05 显示结果 CALL DISPL MOV DL 0DH MOV AH 02H INT 21H 光标回车 MOV DL 0AH MOV AH 02H 5 INT 21H 光标换行 INT 21H MOV AH 4CH INT 21H 返回 DOS DISPL PROC NEAR 显示子程序 DSI MOV AH 02 MOV DL SI BX 1 显示字符串中一字符 INT 21H DEC BX 修改偏移量 JNZ DSI RET DISPL ENDP SUBA PROC NEAR 相减子程序 MOV BX 0 MOV CX 05 包括进位 共 5 位 CLC 清进单位 SU2 MOV AL DATA1 BX SBB AL DATA2 BX 带进位相减 AAS 非压缩 BCD 码的减法调整 MOV DATA3 BX AL 结果送被内存 INC BX 指向下一位 LOOP SU2 循环 MOV SI OFFSET DATA3 MOV BX 05 SU3 ADD BYTE PTR SI BX 1 30H DEC BX 二进制运算结果串转化 ASCII 码 以便屏幕显示 JNZ SU3 RET SUBA ENDP CODE ENDS END START 二 编译程序二 编译程序MASM 123 ASM 三 链接三 链接LINK 123 OBJ 四 执行四 执行123 EXE 87193 28056 59137 五 调试五 调试DEBUG 123 EXE r CS 0B7A 0B7A 0000 B8780B MOV AX 0B78 说明代码段开始于 0B7A 0 第一条指令MOV AX DATA 机器指令代码为B8780B 表示 DATA 数据段段地址为 0B78 d 0B78 0 33 39 31 37 38 36 35 30 38 32 显示的内存数据与 DATA 数据段定义一致 实验四 从键盘输入数据并显示 一 实验程序 CRLF MACRO 光标回车 换行宏程序 MOV AH 02H MOV DL 0DH INT 21H MOV AH 02H 6 MOV DL 0AH INT 21H ENDM DATA SEGMENT MARK DB MESS DB INPUT 4 HEX DATA SPACE END 0DH 0AH ERROR DB 0DH 0AH ERROR 0DH 0AH DATA ENDS CODE SEGMENT ASSUME CS CODE DS DATA START MOV AX DATA MOV DS AX DS 初始化 HEAD CRLF 宏调用 回车 换行 MOV MARK 0 错误标志 0 无误 1 出错 MOV AH 09H LEA DX MESS INT 21H 显示提示输入的信息 MESS CALL GETNUM 接收键入数值送 DX CMP MARK 01H JE HEAD 有错 重新输入 MOV CX 16 16 位 MOV BX DX 转换后二进制结果已在 DX 中 TTT ROL BX 1 循环左移 1 位 逐位转为 ASCII 码 并在屏幕显示 MOV DL BL AND DL 01H 屏蔽掉高 7 位 ADD DL 30H 转为 ASCII MOV AH 02H INT 21H 在屏幕显示二进制位对应的 ASCII 字符 LOOP TTT JMP HEAD FINI MOV AH 4CH INT 21H 返回 DOS GETNUM PROC NEAR 子程序 接收键入 ASCII 数值 转换成二进制送 DX XOR DX DX DX 清 0 GGG MOV AH 01H INT 21H 键入单个数 并将 ASCII 值送 AL CMP AL 0DH 输入为回车 表示输入结束 则进行转换 JE PPP CMP AL 20H 输入为空格 则退回 DOS JE FINI CMP AL 30H JB KKK 非法输入 SUB AL 30H CMP AL 0AH JB GETS 输入的是 0 9 ASCII 值 30H 39H CMP AL 11H JB KKK 非法输入 SUB AL 07H 7 CMP AL 0FH JBE GETS 输入的是 A F ASCII 值 41H 46H CMP AL 2AH JB KKK 非法输入 CMP AL 2FH JA KKK SUB AL 20H 输入的是小写字母 a f ASCII 值 61H 66H GETS MOV CL 04 单个输入数已在 AL 中 高 4 位为 0 SHL DX CL MOV AH 0 ADD DX AX 将 AL 凑成 16 位 AX 高 12 位为 0 叠加到 DX 中 JMP GGG KKK MOV AH 09H MOV DX OFFSET ERROR INT 21H 显示出错提示信息 MOV MARK 01H 错误标志 PPP PUSH DX CRLF 宏调用 回车 换行 POP DX RET GETNUM ENDP CODE ENDS END START 二 运行结果 INPUT 4 HEX DATA SPACE END 467A 0100011001111010 INPUT 4 HEX DATA SPACE END 3b69e 1011011010011110 INPUT 4 HEX DATA SPACE END K ERROR INPUT 4 HEX DATA SPACE END 23 0000000000100011 长度 4 只转换后 4 位 长度100 非法成绩 JMP GGG KKK MOV AH 09H MOV DX OFFSET ERROR INT 21H MOV EMARK 01H PPP PUSH DX CRLF 调用宏 CRLF POP DX POP CX RET GETNUM ENDP CODE ENDS END START 二 运行结果 要描述出含有相同成绩 错误成绩的排序结果 并进行分析 实验六实验六 8259A8259A 硬件中断实硬件中断实验验 11 一 实验程序 1 主程序 data segment data ends CODE SEGMENT ASSUME CS CODE DS data START PUSH DS MOV AX 0 PUSH AX MOV AX DATA MOV DS AX CLI 关中断 MOV AL 13H ICW1 边沿触发 单片 要ICW4 MOV DX 200H OUT DX AL MOV AL 10H ICW2 中断号从16开始 MOV DX 201H OUT DX AL MOV AL 1 ICW4 全嵌套方式 86 88系统 OUT DX AL MOV AL 00H OCW1 八个中断全部开放 OUT DX AL MOV DX 239H 8279左边输入 八位显示 外部译码 MOV AL 0 OUT DX AL MOV AL 38H 设置扫描频率 FCLK 56 OUT DX AL MOV AL 0D0H 显示RAM清0 OUT DX AL MOV CX 0FFH L2 LOOP L2 MOV AL 90H 写显示缓冲区RAM命令字 每次写入后地址加1 OUT DX AL MOV DX 238H 12 MOV AL 67H 显示 q OUT DX AL MOV AL 50H 显示 r OUT DX AL MOV AL 0FH 显示 I OUT DX AL STI 开中断 x2 hlt 等待硬件中断 mov cx 5 x1 push cx mov cx 0 loop pop cx loop x1 延时 mov dx 239H mov ax 0d0h out dx al 显示RAM清0 mov cx 0ffh l5 loop l5 mov al 90h out dx al mov dx 238H mov al 67h 中断返回 显示 q out dx al mov al 50h 显示 r out dx al mov al 0fh 显示 I out dx al mov al 80h 显示 out dx al out dx al 显示 mov al 79h 显示 E out dx al jmp short x2 13 code ends end start 2 中断子程序 data segment data ends CODE SEGMENT ASSUME CS CODE DS data START PUSH DS MOV AX 0 PUSH AX MOV AX DATA MOV DS AX STI MOV DX 239H MOV AL 0D0H OUT DX AL MOV CX 0FFH l1 loop l1 MOV AL 90H OUT DX AL MOV DX 238H mov al 80h out dx al 显示 out dx al 显示 out dx al 显示 MOV AL 06H OUT DX AL 显示 1 MOV AL 67H OUT DX AL 显示 q MOV AL 50H OUT DX AL 显示 r MOV AL 0FH OUT DX AL 显示 I 14 IRET CODE ENDS END START 二 实验连线及结果 PLUSE INT 1 INT 88INTR INTA 88 INTA CS8259 200H CS8279已固定接至 238H 加载主程序至地址为8100 加载中断服务程序至地址8200 进入TALK WITH 88ET选项下 键入SW 0 0044 0000 8200 中断类型码 ICW2 i 10H 1 11H 中断向量表地址 11HX4 44H 8200H 0000H为中断服务程序地址 再 执行G8100 0 Y 8100H 0000H为主程序地址 初始数码管显示 Irq 按下 PLUSE 响应8259A的硬件中断 在数码管上显示 Irq1 中断结束时 显示 E Irq 实验七实验七 A DA D 转换实验转换实验 一 实验程序 DATA SEGMENT LED DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 7CH 39H DB 5EH 79H 71H DATA ENDS CODE SEGMENT ASSUME CS CODE DS DATA START MOV AX DATA MOV DS AX call delay MOV DX 239H 8279端口 MOV AL 0 左边输入 八位显示 外部译码 OUT DX AL MOV AL 38H 扫描频率 OUT DX AL MOV CX 06H XZ MOV DX 238H MOV AL 00H OUT DX AL LOOP XZ MOV AL 5eH OUT DX AL 显示 d 15 MOV AL 77H OUT DX AL 显示 A NOP bg mov dx 208H 0809端口 mov al 0 out dx al call delay in al dx 读数 mov ch al 暂存 mov cl 04h ror al cl and al 0fh 取高4位 push ax 暂存 mov dx 239H mov al 83h out dx al 选右边第3个数码管 pop ax LEA BX LED XLAT 查表 转为七段显示代码 MOV DX 238H OUT DX AL 在选中数码管显示高4位数 call delay and ch 0fh 取低4位 mov dx 239H mov al 82h out dx al 选右边第2个数码管 mov al ch XLAT 查表 转为七段显示代码 MOV DX 238H OUT DX AL 在选中数码管显示低4位数 call delay JMP BG delay proc near push cx mov cx 0f00h loop pop cx ret delay endp CODE ENDS END START 二 实验连线及结果 CS8279已固定接至238H CS0809 208H 0809的IN0 PR3的中心抽头 调节电位器 记录不同模拟电压值对应数码管显示数字值 16 实验八实验八 步进电机驱动实验步进电机驱动实验 一 实验程序 DATA SEGMENT LED DB 3FH 06H 5BH 4FH 66H DB 6DH 7DH 07H 7FH 6FH DSP DB 5EH 79H 9H 73H 6DH 0EDH DELAYTIME DB 01H STEP DB 04H 05H 01H 09H 08H DB 0AH 02H 06H 02H 0AH DB 08H 09H 01H 05H 04H DIRDSP DB 40H DATA ENDS CODE SEGMENT ASSUME CS CODE DS DATA START MOV AX DATA MOV DS AX INI MOV DX 206H MOV AL 80H OUT DX AL A B C 口都工作于方式 0 输出 MOV DX 239H 8279 端口 MOV AL 00H OUT DX AL 左边输入 八位显示 外部译码 MOV AL 2AH OUT DX AL 扫描频率参数 MOV AL 90H OUT DX AL 写显示 MOV AL 0D1H OUT DX AL 总清 JMP SHORT 2 WAIT1 IN AL DX 读 8279 状态 MOV AH AL AND AL 80H JNZ WAIT1 D7 0 总清完成 MOV AL AH AND AL 0FH CMP AL 00H JE WAIT1 RAM 未满 等待 LEA BX STEP RUN CALL CHKKEY CALL DISPLAY MOV CX 08H LOOP3 MOV DX 204H 依次从 8255C 口输出步进电机驱动值 MOV AL SI OUT DX AL INC SI 17 CALL DELAY LOOP LOOP3 JMP RUN CHKKEY PROC NEAR RDKEY MOV DX 239H IN AL DX MOV AH AL AND AL 80H CMP AL 80H JE RDKEY MOV AL AH AND AL 0FH CMP AL 00H JE RTN RAM 中无数据 转 RTN MOV AL 40H 读 RAM 首单元数据 OUT DX AL MOV DX 238H IN AL DX 读键值 CHK CMP AL 0FH JE QUIT F 键 退出 CMP AL 0AH JNC DIRE MOV DELAYTIME AL 0 9 键 键值 DELAYTIME JMP RTN DIRE CMP AL 0BH

温馨提示

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

评论

0/150

提交评论