1161基于8086查询输出计数器仿真设计-资料下载
如图是一个统计按键次数的电路原理图,其中COUNT是计数按键,CLEAR是清零按键,7SEG是共阳极七段数据管,接口电路的端口地址是0200H。
试用查询方式编写显示按键次数的程序,要求显示一位十六进数。即从0开始计数,每按一次COUNT按键,显示次数加1,当计数到15次(显示F)后,再次按键时从0开始计数,无论何时按下CLEAR键,计数值都会清零。(要求EXE源程序格式,考虑按键去抖动和按键释放,并写出七段数码管译码段码值。已知延时子程序是delay20ms。)
;---数据段
DSEG SEGMENT
;软件七段译码表()
LED_SEG_CODE db 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07,7Fh,6Fh,77h,7Ch,39h,5Eh,79h,71h
DSEG ENDS
;---堆栈段
SSEG SEGMENT
DB 100 dup(0)
SSEG ENDS
;---代码段
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG,SS:SSEG
;---主程序开始
START:
MOV DX,nIO1
again:
MOV BX,0 ;显示数据
MOV AL, [BX+LED_SEG_CODE]
OUT DX,AL
delay 0FH
polling:
IN AL,DX
AND AL,00000011B
CMP AL, 00000011B ;查状态D1D0=11b等待
JE polling
delay 0FH ;去抖动
IN AL, DX
1160基于8086步进电机转动控制设计
1162基于8086车库电动卷闸门系统设计-设计资料
1. 按下启动开关,使电机能够旋转;通过拨动旋转开关来控制卷闸门上升和降落,即电机的正转和反转。电机停止时红灯亮,电机旋转时绿灯亮。
2. 设定电机旋转10圈可完成卷闸门的升降,通过一个数码管可以看到电机旋转的圈数,用来代表卷闸门所处的位置。
3. 加装紧急按钮,按下后电机停转,数码管封锁,黄灯闪烁。
STACK1 SEGMENT STACK
DW 256 DUP(?)
STACK1 ENDS
DATA SEGMENT
DTABLE1 DB 30H,20H,60H,40H,0C0H,80H,90H,10H;顺时针旋转数据
DTABLE2 DB 10H,90H,80H,0C0H,40H,60H,20H,30H;逆时针旋转数据
TAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H,77H
A8255 EQU 8000H ;8255的A口地址
B8255 EQU 8002H ;8255的B口地址
C8255 EQU 8004H ;8255的C口地址
K8255 EQU 8006H ;8255的控制寄存器地址
ICW1 EQU 00010011B ; 单片8259, 上升沿中断, 要写ICW4
ICW2 EQU 00100000B ; 中断号为20H
ICW4 EQU 00000001B ; 工作在8086/88 方式
OCW1 EQU 01111110B ; 只响应INT7,5 中断
CS8259A EQU 0B000H
CS8259B EQU 0B002H
A8253 EQU 9000H
B8253 EQU 9002H
C8253 EQU 9004H
1164基于8086的16x64点阵汉字显示-protues仿真设计资料
点阵显示屏是由可亮可暗的许多小单元(灯或其它结构,只要在色彩上有所区别即可)排成阵列(一般为矩形,其它形状也有但并不常见)来显示文字或图形内容的显示装置。它可以用来显示机器运行状态、时钟、铁路发车指示等许多无需高分辨率的简单信息。
通常这种显示器由称为点阵控制器的电路控制。点阵控制器按照所需的显示内容打开或关闭阵列里的单元,使得文字或图形可以显示出来。
col_adress_d equ 0600h
col_adress_e equ 0800h
col_adress_f equ 0a00h
.8086
.stack
.code
.startup
start : mov m,offset tab
mov count,10
next0: mov di,0001h
next1: mov cx,16
mov si,m
next2: mov dx,col_adress ;列地址
mov ax,0000h
out dx,ax ;禁止列显示
mov dx,row_adress ;加载行地址
mov ax,[si] ;显示数据赋给 行输出
out dx,ax
mov dx,col_adress ;加载列地址
mov ax,di ;选中第一列显示数据
out dx,ax ;选中列显示数据
call delay2 ;延时
rol di,1 ;右移一位
add si,2 ;字模指针加2
loop next2 ;循环执行next2 直道将count从16减小至0 cx
mov dx,col_adress ;列地址
mov ax,0000h
out dx,ax ;禁止列显示
mov di,0001h ;将初始di置为第一列
1165基于8086的16键电子琴高低八音阶仿真-仿真设计资料
;译码端口
IO0 EQU 00h
IO1 EQU 10h
IO2 EQU 20h
IO3 EQU 30h
IO4 EQU 40h
IO5 EQU 50h
;LCD 端口
LCD_CMD_WR EQU 9000H
LCD_DATA_WR EQU 9002H
DATA SEGMENT
OUTBUFF DB 0,0,0,0,0,0,0,0,0,0
str2 db ' ',' ',' ',' ','0','0'
segdata 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 ;建立DS段地址
mov ds,ax
;;;;;;;;;;;;; ;LCD初始化
;;;;;;;;;;;;;;LMO32L初始化;;;;;;;;;;;;;;;;;;;;;
IN AX,DX
文章转自电设屋,资料百度网盘下载地址 https://www.aiesst.cn/share.html
目录