【电路设计】基于8086四位密码锁仿真控制系统-8086双机串行口通信-8086双机通信数据互发仿真-基于8086洗衣机仿真系统设计-8086数码管计算器设计-8086数字钟计时器秒表24小时仿真
基于8086四位密码锁仿真控制系统设计-微机原理1206密码锁在初始化之后在代码中设置了一个初始密码。当输入密码时,系统会自动判断密码的位数,当密码达到4位的时候自动与初始密码相比对。一旦密码输入正确,则执行开锁程序,即点亮绿色LED灯。如果密码输入错误,则执行闭锁程序,即点亮红色LED灯。IOY0EQU0200H;8255片选端口始地址MY8255_AEQUIOY0+00H*2;8255的A口
基于8086四位密码锁仿真控制系统设计-微机原理1206
密码锁在初始化之后在代码中设置了一个初始密码。当输入密码时,系统会自动判断密码的位数,当密码达到4位的时候自动与初始密码相比对。一旦密码输入正确,则执行开锁程序,即点亮绿色LED灯。如果密码输入错误,则执行闭锁程序,即点亮红色LED灯。
IOY0 EQU 0200H ;8255片选端口始地址
MY8255_A EQU IOY0+00H*2 ;8255的A口地址
MY8255_B EQU IOY0+01H*2 ;8255的B口地址
MY8255_C EQU IOY0+02H*2 ;8255的C口地址
MY8255_MODE EQU IOY0+03H*2 ;8255的控制寄存器地址
IOY1 EQU 0400H ;8253片选端口始地址
MY8253_COUNT0 EQU IOY1+00H*2 ;8253计数器0端口地址
MY8253_COUNT1 EQU IOY1+01H*2 ;8253计数器1端口地址
MY8253_COUNT2 EQU IOY1+02H*2 ;8253计数器2端口地址
MY8253_MODE EQU IOY1+03H*2 ;8253控制寄存器端口地址
DATA SEGMENT
DTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,3FH,39H,5EH,79H,71H,00H,40H
;键值表,0~F对应的7段数码管的段位值
;DTABLE[11]=3FH对应键值11,显示"0"
;DTABLE[16]=00H,数码管熄灭
;DATABLE[17]=04H,显示数码管"-"
STRING DB 01H,02H,03H,04H ;初始密码,密码内存空间
DATA ENDS
STACK1 SEGMENT STACK
DW 256 DUP(?)
STACK1 ENDS
省略
1204基于8086双机串行口通信仿真设计-微机原理
双8086CPU和8251A系统实现双机串行通信。
;功能:双机通信,接收数据+1后发送
;============================================================================
;---模式设置-----------------------------------------------------------------
.model small
.8086
include bsp.inc
include i8251_drv.inc ; !!!! 包含串口宏和函数 ****
;---堆栈段-----------------------------------------------------------------
.stack
;---数据段-----------------------------------------------------------------
.data
test_msg db "test test test !!!"
test_var db 'C'
rx_buf db 32 dup(0)
;---代码段-----------------------------------------------------------------
.code
.startup
call main
.exit
;----主程序-------------------------------------------------------------------
main proc far
; 初始化
RESET_8251 ; 复位8251a
INIT_8251 ; 初始化
; 测试4---- 循环接收一个字符,显示一个字符
.WHILE 1
.IF 0 ; test1
READ_BYTE ; ah = 1/0 = 接收正确/接收错误; al = 接收的数据
.IF ah ==1
inc al
WRITE_BYTE al ;
.ELSE
; 接收有错误
WRITE_BUF LENGTHOF rx_error_msg, rx_error_msg
.ENDIF
.ENDIF
.IF 1 ; test2
省略
1205基于8086双机通信数据互发仿真设计-微机原理
实验成果如实验电路所示,有两个按钮,一个用来通过触发CPU B的中断,初始化CPU B所接8253所控制的四色LED灯,从而按照CPU B数据段所存计数值进行工作,由于以方式三初始化,故LED灯将按一定频率闪烁;另一个按钮触发CPU B的另一个中断,使CPU B向CPU A所接8255的PB0端口发出一个低电平,CPU A检测到后向8255发出一个存于数据段的数据给8255的PA端口使其准备输出,并将数据指针指向下一个待发数据。由于8255的PA口初始化为方式1输出,故会发出一个OBF的低电平信号,这个信号会触发CPU B的一个中断从而使CPU B打开74LS245总线收发器接收8255的PA端口数据,此数据将替换CPU B数据段中初始化计数器用的计数值,并向8255发出一个ACK信号告知它数据已接收,从而让8255撤销OBF信号。这时,再次按下初始化8253的按钮,由于8253的计数值改变,LED灯的闪烁频率也将改变。每次LED灯闪烁频率的改变,说明计数值更新成功,也就是数据成功传输了。
CC EQU 9006H;计数器控制字地址
C0 EQU 9000H;计数器0地址
CS8259A EQU 8000H;8259 偶地址
CS8259B EQU 8002H;8259 奇地址
ICW1 EQU 00010011B;单片8259,上升沿触发,要写ICW4
ICW2 EQU 00010000B;中断号为10H
ICW4 EQU 00000011B;一般嵌套,非缓冲方式,自动EOI
OCW1 EQU 00000000B
CODE SEGMENT PUBLIC 'CODE'
ASSUME CS:CODE,DS:DATAS,SS:STACK
ORG 800H;为中断向量表留出空间
START:
; Write your code here
MOV AX, DATAS
MOV DS, AX
MOV AX, STACK
MOV SS, AX
MOV AX, TOP
MOV SP, AX;以上初始化过程很重要!否则数据段的内容无法读取,堆栈无法使用(堆栈栈顶可不必写)
;;;;;;;下面开始写中断向量表;;;;;;;;;;;;;;;;;;;;;
;使用DOS功能调用来写中断向量表的方法
;PUSH DS
;MOV DX,OFFSET IR0I
;MOV AX,CODE
;MOV DS,AX
省略
1213基于8086洗衣机仿真系统设计-微机原理
8086洗衣机系统,可以通过按键实现洗衣机的注水、排水、洗衣、甩干等操作,数码管显示模式状态和洗衣时间。
采用汇编语言和protues仿真
1、汇编语言
;上一片8255的地址
PA EQU 08H
PB EQU 0AH
PC EQU 0CH
CONW EQU 0EH
;下一片8255的地址
PA1 EQU 20H
PB1 EQU 22H
PC1 EQU 24H
CONW1 EQU 26H
;8253
AD82530 EQU 10H
AD82531 EQU 12H
AD82532 EQU 14H
AD8253CONW EQU 16H
;
AD82590 EQU 20H
AD82591 EQU 22H
;============================
STACK SEGMENT STACK
DB 200 DUP(0)
省略
1201基于8086数码管计算器设计
8086数码管计算器,通过矩阵键盘实现计算器数字和符号输入,数码管实时显示。
DATA SEGMENT
X DB ?,?,?,? ;存放数据的每一位
X1 DW ? ;存放第一个数据值
X2 DW ? ;存放第二个数据值
Y DW ? ;存放运算结果
S DB ? ;存放运算符号值
E DB ? ;按下等号键标记
CC DB ? ;存放运算数据位数
H DB 0 ;存放按键行号
L DB 0 ;存放按键列号
DISCODE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H ;段码表
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AL,90H ;设置为A口输入,B口输出,C口输出
OUT 46H,AL
MOV DI,OFFSET X+3 ;DI指向X的高位
KKK: CALL KEY ;扫描按键
JMP KKK
;以下为按键扫描子程序,程序返回后,在变量H和L中存放当前按键的行列号
KEY PROC
省略
1203基于8086数字钟计时器秒表24小时仿真-设计资料
;上一片8255的地址
PA EQU 08H
PB EQU 0AH
PC EQU 0CH
CONW EQU 0EH
;下一片8255的地址
;PA1 EQU 20H
;PB1 EQU 22H
;PC1 EQU 24H
;CONW1 EQU 26H
;8253
AD82530 EQU 10H
AD82531 EQU 12H
AD82532 EQU 14H
AD8253CONW EQU 16H
;
AD82590 EQU 20H
AD82591 EQU 22H
;============================
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
;============================
DATA SEGMENT
文章转自电设屋,资料百度网盘下载地址 https://www.aiesst.cn/share.html

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)