找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3634|回复: 0
打印 上一主题 下一主题
收起左侧

8位流水灯LED 8086 8253 源码

[复制链接]
跳转到指定楼层
楼主
ID:348477 发表于 2018-6-9 22:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本设计使用8086主控模块、8253定时/计数模块、8位LED循环模块实现了流水灯功能。
硬件设计:
1.8086主控模块:
包括一片8086,三片74ls273和一片74154。在例程的基础上增加了74154译码电路作为I/O输出
2.8253定时/计数模块:
去掉了例程中的喇叭等元器件,改成利用定时/计数器0将输入时钟的100khz分频成1khz,并作为定时/计数器2的时钟,使定时/计数器2每隔1s产生一个中断。
3.8位LED循环模块:
用一片74ls273输出接口控制8只LED灯,实现每隔一秒循环点亮功能。
4.去掉了例程中的74LS238和或门电路
软件设计:
软件分为三个模块:NMI中断向量初始化模块、可编程定时/计数器8253初始化模块以及中断服务子程序。与例程相比增加了中断向量和中断子程序两个模块。
代码:
.MODEL SMALL
.8086
.STACK
.CODE
.STARTUP

;NMI中断向量初始化
NMI_INIT:PUSH ES      
XOR AX,AX
MOV ES,AX
MOV AL,02H
XOR AH,AH
SHL AX,1
SHL AX,1
MOV SI,AX
MOV AX,OFFSET NMI_SERVICE
MOV ES:[SI],AX
INC SI
INC SI
MOV BX,CS
MOV ES:[SI],BX
POP ES   

;可编程定时/计数器8253初始化
MOV AL,00110111B         ;T0 16位 方式3
MOV DX,0406H             ;控制口地址
OUT DX,AL
MOV DX,0400H             ;T0地址
MOV AX,0100H             ;将100khz分频成1khz
OUT DX,AL
MOV AL,AH               
OUT DX,AL
MOV AL,10110001B         ;T2 16位 方式3
MOV DX,0406H
OUT DX,AL
MOV DX,0404H
MOV AX,1000H             ;将1khz分频成1hz
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV BL,0FEH              ;LED初始状态
MOV DX,0200H             ;8位LED模块74ls273地址
MOV AL,BL
OUT DX,AL
JMP $

;中断服务子程序
NMI_SERVICE: ROL BL,1          ;循环左移
             MOV AL,BL
             MOV DX,0200H      ;74ls273地址
             OUT DX,AL
             MOV DX,0404H
             MOV AX,1000H      ;将1khz分频成1hz
             OUT DX,AL         ;重新装入初值
             MOV AL,AH
             OUT DX,AL
      EXIT: IRET
.DATA
END



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表