微机原理8253实验

一、实验题目:
1.8253定时实验,利用8253完成1秒的延时。
2.利用8253硬件延时控制跑马灯运行。
3.选做8255键盘显示实验。
二、实验目的:
熟悉汇编语言编程环境,掌握8253芯片工作原理、电路设计及利用汇编语言编写接口软件。
三、实验电路图
在这里插入图片描述
在这里插入图片描述
四、软件设计程序流程图
在这里插入图片描述
五、实验软件代码(加注释)
8253延时程序:
CODE SEGMENT
ASSUME CS:CODE
START:
MOV DX,29BH
MOV AL,00110101B;8253初始化,选择通道0,采用BCD计数方式
OUT DX,AL
MOV DX,298H
MOV AL,00H;写计数器初值,先写低字节,后写高字节
OUT DX,AL
MOV AL,50H
OUT DX,AL
MOV DX,29BH
MOV AL,01110111B;8253初始化,选择通道1,采用BCD计数方式
OUT DX,AL
MOV DX,299H
MOV AL,00H;写计数器初值,先写低字节,后写高字节
OUT DX,AL
MOV AL,04H
OUT DX,AL
CODE ENDS
END START

硬件延时控制跑马灯:
CODE SEGMENT
ASSUME CS:CODE
MOV AL,10010010H;8255初始化
MOV DX,283H
OUT DX,AL
;8253硬件延时程序
START:
MOV DX,29BH
MOV AL,00110101B;8253初始化,选择通道0,采用BCD计数方式
OUT DX,AL
MOV DX,298H
MOV AL,00H;写计数器初值,先写低字节,后写高字节
OUT DX,AL
MOV AL,50H
OUT DX,AL
MOV DX,29BH
MOV AL,01110111B;8253初始化,选择通道1,采用BCD计数方式
OUT DX,AL
MOV DX,299H
MOV AL,00H;写计数器初值,先写低字节,后写高字节
OUT DX,AL
MOV AL,04H
OUT DX,AL
;8255输出程序
MOV AL,01H
MOV BL,AL;将Al值送到BL暂存
;8253输出电平上升沿进入
XUN1:
MOV DX,281H;从8255B口输入
IN AL,DX
TEST AL,01H;测试8253是否为高电平
JNZ XUN1;否,继续循环测试
XUN2:
MOV DX,280H;从8255A口输入
IN AL,DX
TEST AL,01H;测试开关输出是否为高电平
JNZ XUN2;否,继续循环测试
;8255输出
MOV AL,BL;将暂存在BL中的值送到AL中
MOV DX,282H
OUT DX,AL;C口输出
;8253输出电平下降沿退出
XUN3:
MOV DX,281H;从8255B口输入
IN AL,DX
TEST AL,01H;测试8253是否为高电平
JZ XUN3;是,继续循环测试
;左移一位,暂存在BL中,防止AL被修改
ROL BL,1
JMP XUN1;循环检测该程序
CODE ENDS
END START
六、实验结果
与实验一结果相同,各个灯在打开开关后依次循环亮起,不同的是延时的方式,本次实验为硬件延时。
七、实验小结
本次实验主要是对8253芯片延时功能的考察,通过这次实验实践了8253的硬件延时功能,同时也结合了8253和8255两个芯片的使用,对于汇编程序也更加熟悉。

展开阅读全文
©️2020 CSDN 皮肤主题: 游动-白 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值