
这样的提问内容很随便哪。那就用一个共阳数码管显示,接在P0口。用8个独立式按键接在P3口,按键为K1~K8,按键值就是1~8。见下面的仿真图,按下某个按键,数码管显示出对应的键值。
实验七:8255A+8253+8259A
<实验目的>
了解步进电机的的基本控制原理,掌握控制步进电机的转速、转向的程序设计方法。
<实验内容>
用8255A的PA0~3分别控制步进电机的A、B、C、D四相,“1”则该相绕组通电,“0”则不通电。步进电机的驱动原理是使各相绕组依次通电来使其作步进式旋转,通过通电顺序和切换频率来调节其转速和转向。步进电机可以四相四拍或四相八拍方式工作,即通电顺序为:A→B→C→D→A;A→AB→B→BC→C→CD→D→DA→A。按相反的顺序即可改变电机的旋转方向。本实验系统采用的是:AB→BC→CD→DA→AB。
注:电机在起动和停止时,不应该突然起、停。而应采用逐渐加速、减速的方式。至于起、停所需时间则依产品型号而定。
<实验电路>
8255A: PA0~3与步进电机的BA~BD相连;
8253: GATE0接+5v;
CLK0接393分频器的T2插孔(49125/4MHz),或T3~6插孔(分别是8、16、32、64分频);
CS接译码器单元的Y2;
数据线D0~7与系统数据总线单元任一插座相连;
译码单元: 译码器输入A、B、C与系统地址线A2、A3、A4相连;
译码器控制端G与系统地址线A0下方的G相连。
8259单元: CS端与译码器单元的Y0相连;
D0~7与系统数据总线单元任一插座相连;
最后,将8253的OUT0与8259的IR7相连。
<实验程序>
CODE SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE
ORG 3400H
H8: JMP P8259
PORT0 EQU 0FFE0H
PORT1 EQU 0FFE1H
;-------------------初始化-------------------
P8259: CLI
MOV AX,OFFSET INT8259
MOV BX,003CH
MOV [BX],AX
MOV BX,003EH
MOV AX,0000H
MOV [BX],AX
CALL FOR8259
MOV SI,0000H
I8255: MOV DX,0FFDBH
MOV AL,8AH
OUT DX,AL
MOV BL,03
P8253: MOV DX,0FFD9H ;
IN AL,DX ;选择3种转速
TEST AL,01H
JNZ QQQ
TEST AL,02H
JNZ >
这个题目本身就不对,SS后面不应该是DB定义,而应该用LJMP来跳转到各个函数,否则就不能用JMP @A+DPTR散转,而应该用MOVC,且通过入栈和RET的出栈来实现跳转。
如果改为:
JMP @A+DPTR
SS: LJMP FUNC1
LJMP FUNC2
LJMP FUNC3
LJMP FUNC4
LJMP FUNC5
LJMP FUNC6
则:
1)不知你的键值是什么含义?具体是那些数值?
2)放大3倍(如果LJMP改为AJMP,则放大两倍);指令是MOV B, #3 MUL AB(如果是放大两倍,则为:RL A,前提是A中的值不超过127)
以上就是关于微机原理与汇编的题目 就给了按键和数码管,要求数码管显示按键值,全部的内容,包括:微机原理与汇编的题目 就给了按键和数码管,要求数码管显示按键值,、通用步进电机控制器设计(精通单片机汇编语言的朋友进)、汇编语言作业求大佬帮助等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)