使用POTEUS软件来进行模拟仿真 8086汇编语言花式跑马灯课程设计及代码
来源:互联网 发布:网络视频广告收入 编辑:程序博客网 时间:2024/05/17 03:47
一、设计目的
通过本次课程设计让我们进一步深入汇编语言的学习,掌握简单的接口设计技术,将理论知识与实际相联,更进一步地深入学习8255A、8086、8253等芯片的相关知识,以及学习使用POTEUS软件来进行模拟仿真,进一步学习微机原理与接口技术的相关知识,为以后学习打下良好的基础。
二、设计内容
利用8255实现花式跑马灯,跑马灯的运行状态可由开关控制。图中包括由7段数码管组成的日期显示电路,由开关控制的发光二极管流水灯电路和由8253控制的定时闪烁灯的电路
三、设计要求
利用8255实现花式跑马灯,跑马灯的运行状态可由开关控制。图中包括由7段数码管组成的日期显示电路,由开关控制的发光二极管流水灯电路和由8253控制的定时闪烁灯的电路。开关控制功能见下表。
K0
K1
K2
K3
电路运行结果
打开
打开
打开
打开
7段数码管显示开发者代号
打开
打开
打开
打开
发光二极管流水灯亮,模式0
打开
闭合
打开
打开
发光二极管流水灯亮,模式1
打开
打开
闭合
打开
发光二极管流水灯亮,模式2
—
—
—
闭合
闪烁灯亮
四、设计原理及方案
1、花式跑马灯实验电路用元件清单
元件名称
功能说明
8086
微处理器
74273
八D型触发器(带清除端)
NOT
非门
74154
4-16译码器
4078
8输入与非门
8255A
可编程24位接口
8253
8位定时/计数器
SWITCH
开关
LED-BIBY
LED发光管
7SEG-MPX4-CA
4位共阳极7段数码管
7SEG-MPX6-CA
6位共阳极7段数码管
POWER
电源
GROUND
地
2、主要芯片功能
8255A是一种可通过编程并行I/O接口芯片。广泛应用于几乎所有系列的的微机系统中,8255A具有三个带锁存或缓冲数据端口,可与外设并行进行数据交换,8255A有多种操作方式,通用性较强,可为CPU与外设之间提供输入/输出通道。8255A和各端口具有中断控制逻辑,在外设与CPU之间可用中断方式进行信息交换,使用条件传输方式时可用“联络”线进行控制。在本次课程设计中,8255A起到为CPU与外设之间提供输入输出通道来实现对跑马灯花样变换的控制。
8086微处理器,选择最小工作模式(MN/MX引脚接至电源(+5V)),所有的总线控制信号均由8086产生。8086CPU的地址线/数据总线AD15-AD0和地址/状态总线A16/S3-A19/S6是复用的,必须通过地址锁存器把地址总线和数据总线分类离。
3、设计原理图
4、程序代码
I00 EQU 00H
IO1 EQU 10H
IO2 EQU 20H
IO3 EQU 30H
IO4 EQU 40H
IO5 EQU 50H
IO6 EQU 60H
IO7 EQU 70H
IO8 EQU 80H
IO9 EQU 90H
IO10 EQU 0A0H
IO11 EQU 0B0H
IO12 EQU 0C0H
IO13 EQU 0D0H
IO14 EQU 0E0H
IO15 EQU 0F0H
DATA SEGMENT
OUTBUFF DB 1,2,0,4
LEDTAB DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AL,88H ;C口低四位输出B口8位输出 工作在方式0 C口高四位输入 A口8位输出 A工作方式0
MOV DX,IO3+6
OUT DX,AL ;将控制字写入8255A控制端口,设置各端口的工作方式
;8253初始化
MOV AL,00110000B ;二进制计数,选择方式0,选择16位,选择计数器0
MOV DX,IO5+6
OUT DX,AL ;将控制字写入8253控制端口
MOV DX,IO5
MOV AX,500
OUT DX,AL ;将初值低8位输出到计数通道0端口IO5
MOV AL,AH
OUT DX,AL ;将初值高8位输出到计数通道0端口IO5
;8253计数器0的初始化
MOV AL,01110110B ;
MOV DX,IO5+6
OUT DX,AL
MOV DX,IO5+2
MOV AX,5
OUT DX,AL
MOV AL,AH
OUT DX,AL
AGAIN: MOV DX,IO3+2
MOV AL,0H
OUT DX,AL ;清屏
MOV DX,IO3+4
IN AL,DX
TEST AL,20H
JZ L1 ;k0闭合
TEST AL,40H
JZ L2 ;k1闭合
TEST AL,80H
JZ L3 ;k2闭合
JMP LOP1
L1: MOV CL,06H
AGAIN1: MOV DX,IO3+2
MOV AL, CL
OUT DX,AL
MOV BX,10
CALL DELAY
ROL CL,1
MOV DX,IO3+4
IN AL,DX
TEST AL,20H
JZ AGAIN1
JMP AGAIN
L2:
MOV CL,0FFH
AGAIN2: MOV DX,IO3+2
MOV AL,CL
OUT DX,AL
MOV BX,10
CALL DELAY
NOT CL
MOV DX,IO3+4
IN AL,DX
TEST AL,40H
JZ AGAIN2
JMP AGAIN
L3:
MOV CL,55H
AGAIN3:
MOV DX,IO3+2
MOV AL,CL
OUT DX,AL
MOV BX,10
CALL DELAY
NOT Cl
MOV DX,IO3+4
IN AL,DX
TEST AL,80H
JZ AGAIN3
JMP AGAIN
LOP1: CALL DISP
JMP AGAIN
DISP PROC NEAR
AGAIN4:
MOV CL,08H
LEA SI,OUTBUFF
LEDDISP:
MOV AL,CL ;输出位码
MOV DX,IO3+4
OUT DX,AL
LEA BX,LEDTAB
MOV AL,[SI]
XLAT
MOV DX,IO3 ;输出段码
OUT DX,AL
CALL DELAY_1S ;请求延迟1S
MOV AL,0FFH
MOV DX,IO3
OUT DX,AL
CMP CL,01H
JZ NEXT
INC SI
ROR CL,1 ;右移一位
JMP LEDDISP ;跳转到LEDDISP
NEXT:
RET
DISP ENDP
DELAY_1S PROC ;延时子程序
PUSH CX
PUSH BX
MOV BX,01H
D1: MOV CX,0FH
D2: LOOP D2
DEC BX
JNZ D1
POP BX
POP CX
RET
DELAY_1S ENDP
DELAY PROC NEAR ;延时子程序
PUSH BX
PUSH CX
WAIT0: MOV CX,2801
WAIT1: LOOP WAIT1
DEC BX
JNZ WAIT0
POP CX
POP BX
RET
DELAY ENDP
CODE ENDS
END START
5、仿真结果
开关全打开
开关0闭合
开关1闭合交替闪烁
开关2闭合
- 使用POTEUS软件来进行模拟仿真 8086汇编语言花式跑马灯课程设计及代码
- OPNET-物联网仿真代码及软件使用
- NS2仿真:使用NS仿真软件模拟简单网络模型
- 8086汇编语言课程设计一
- STM32:STM32学习记录2:跑马灯及仿真
- VPM 软仿真 跑马灯代码以及仿真截图 系列之三
- 单片机仿真之跑马灯
- 单片机仿真之跑马灯
- 软件07汇编语言程序设计课程设计参考答案
- 使用开源软件进行Verilog HDL仿真-安装篇
- Win7系统下使用CCS 5.2.1 进行软件仿真
- ROS 模拟激光仿真数据 使用stage进行仿真 在stage中控制两个机器人
- 使用H2数据库来模拟进行单元测试
- 汇编语言实现跑马灯 8051单片机
- 汇编语言实现跑马灯 8051单片机
- LL1课程设计报告及代码
- Javascript--跑马灯代码
- 跑马灯代码
- 关键字static
- 写标流程学习总结
- 获得每个用户的最后一条记录
- 使用copy函数输出vector中的内容
- Cooja 中自定义 Java Mote 使用 Collect-View
- 使用POTEUS软件来进行模拟仿真 8086汇编语言花式跑马灯课程设计及代码
- jquery 全选、反选、即点即改
- redis3.0.7源码阅读(一)源码文件
- Good Bye 2016D. New Year and Fireworks(dfs)
- Spring对象生命周期控制
- Mybatis入门例子(本文章转载自博主AndyChenzy,如需转载注明转载博主)
- 生物演示攻击
- 对CloseHandle用法的理解
- jdk1.8更新