汇编语言 跑马灯程序设计

控制要求:a、循环左移:L8-L1循环点亮 b、循环右移:L1-L8循环点亮 c、速度控制:分为三档控制 最低档间隔1秒 2档2秒 3档3秒 4档4秒
求高手编写控制程序 8255芯片的
最好写出设计思路 分配端口 原理图 流程图 谢谢 好的加分~好急呢~

循环点亮你只要用位移指令就行啦!假如是p1口,你只要先给他赋予一个初值00000001,假如是高电平点亮,那这是就只有一盏灯亮,循环左移就行啦!每次循环一次,都调用一下延时这就可以按自己要求设置延时的时间啦!其实思路都挺简单的!不过你要是对单片机一点都不了解,那只好叫别人写好给你算了!你直接复制下就行!
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-06
DATA SEGMENT
TIM DB 7FH ;设置初始值
DATA ENDS

STACK SEGMENT STACK 'STACK' ;堆栈段定义
DB 100 DUP(?)
STACK ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK

START: MOV AX,DATA
MOV DS,AX
MOV DX,0EEE0H
IN AL,DX ;读取当前端口状态
AND AL,TIM
JNZ OVR
MOV AL,7FH ;先点亮第一个灯
MOV DX,0EEE0H
LOOP1: OUT DX,AL
CALL DELAY
MOV BL,AL
ROR AL,1 ;右移,点亮下一个灯
MOV BL,AL
MOV AH,0BH ;检测键盘输入
INT 21H
OR AL,AL
JZ LOOP1 ;循环点亮
MOV AX,4C00H ;程序结束
INT 21H
OVR:NOP
RET

DELAY PROC NEAR ;延时子程序
NOP
PUSH CX
MOV CX,0FFFFH
CONTI: LOOP CONTI
POP CX
RET
DELAY ENDP
MOV AX,4C00H
INT 21H

CODE ENDS
END START本回答被提问者采纳
相似回答