MODEL TINY
COM_ADD EQU 0F003H
PA_ADD EQU 0F000H
PB_ADD EQU 0F001H
PC_ADD EQU 0F002H
STACK 100
DATA
LED_Data DB 01111101B
DB 11111101B
DB 10111101B
DB 11010111B
DB 11011111B
DB 11011011B
CODE
START: MOV AX,@DATA
MOV DS,AX
NOP
MOV DX,COM_ADD
MOV AL,80H
OUT DX,AL
MOV DX,PA_ADD
MOV AL,0FFH
OUT DX,AL
LEA BX,LED_Data
START1: MOV AL,0
XLAT
OUT DX,AL
CALL DL5S
MOV CX,6
START2: MOV AL,1
XLAT
OUT DX,AL
CALL DL500ms
MOV AL,0
XLAT
OUT DX,AL
CALL DL500ms
LOOP START2
MOV AL,2
XLAT
OUT DX,AL
CALL DL3S
MOV AL,3
XLAT
OUT DX,AL
CALL DL5S
MOV CX,6
START3: MOV AL,4
XLAT
OUT DX,AL
CALL DL500ms
MOV AL,3
XLAT
OUT DX,AL
CALL DL500ms
LOOP START3
MOV AL,5
XLAT
OUT DX,AL
CALL DL3S
JMP START1
DL500ms PROC NEAR
PUSH CX
MOV CX,60000
DL500ms1: LOOP DL500ms1
POP CX
RET
DL500ms ENDP
DL3S PROC NEAR
PUSH CX
MOV CX,6
DL3S1: CALL DL500ms
LOOP DL3S1
POP CX
RET
ENDP
DL5S PROC NEAR
PUSH CX
MOV CX,10
DL5S1: CALL DL500ms
LOOP DL5S1
POP CX
RET
ENDP
END START
这个就是流水灯的程序,不过是在开发箱上做的。
单片机的
C8255 EQU 8406H
D8255C EQU 8404H
D8255A EQU 8400H
SPDTR EQU 20H
STEPPT EQU 21H
DIRL EQU 22H
DIRH EQU 23H
SWITCH EQU 24H
ORG 0000H
LJMP START
ORG 000BH
LJMP RUNINT
ORG 0100H
START:
MOV SP,#40H
LCALL INIT
LCALL CHKSWITCH
SJMP $-3
INIT:
CLR EA
MOV DPTR,#C8255
MOV A,#90H
MOVX @DPTR,A
MOV DPTR,#MRSTEP
MOV DIRH,DPH
MOV DIRL,DPL
MOV SPDTR,#00H
MOV SWITCH,#00H
MOV TMOD,#00H
SETB ET0
SETB EA
RET
CHKSWITCH:
MOV DPTR,#D8255A
MOVX A,@DPTR
ANL A,#8FH
CJNE A,SWITCH,$+6
LJMP SWITCHRET
MOV SWITCH,A
CLR TR0
RLC A
JC $+7
MOV DPTR,#MLSTEP
SJMP $+5
MOV DPTR,#MRSTEP
MOV DIRL,DPL
MOV DIRH,DPH
RLC A
RLC A
RLC A
RLC A
JC SPD4
RLC A
JC SPD3
RLC A
JC SPD2
RLC A
JC SPD1
SJMP SPD0
SPD4: MOV A,#04H
SJMP CHGSPD
SPD3: MOV A,#03H
SJMP CHGSPD
SPD2:MOV A,#02H
SJMP CHGSPD
SPD1: MOV A,#01H
SJMP CHGSPD
SPD0:MOV A,#00H
CHGSPD:MOV DPTR,#SPD
MOVC A,@A+DPTR
MOV SPDTR,A
JZ $+4
SETB TR0
SWITCHRET:RET
RUNINT:
PUSH PSW
PUSH ACC
PUSH DPH
PUSH DPL
CLR TR0
MOV TH0,SPDTR
MOV TL0,#00H
SETB TR0
MOV DPH,DIRH
MOV DPL,DIRL
MOV A,STEPPT
INC A
ANL A,#07H
MOV STEPPT,A
MOVC A,@A+DPTR
MOV DPTR,#D8255C
MOVX @DPTR,A
POP DPL
POP DPH
POP ACC
POP PSW
RETI
SPD: DB 00H,17H,77H,0A7H,0C7H
MRSTEP:DB 01H,03H,02H,06H,04H,0CH,08H,09H
MLSTEP:DB 08H,0CH,04H,06H,02H,03H,01H,09H
END
接线是PA0-PA7接K1-K8
PC0-PC3接SMA-SMD
CS55接8400H
还有另外一种自动实现快速正转反转或慢速正转反转之类的如果是微机原理课的用8086/8088
ORG 0003H
LJMP KEY
ORG 001BH
LJMP TINT
ORG 4000H
LJMP REST
ORG 4200H
REST: MOV SP,#70H
ANL TMOD,#0F0H
ORL TMOD,#02H
MOV TH0,#05H
MOV TL0,#05H
MOVX @DPTR,A
MOV DPTR,#1B31H
MOV A,#0D3H
MOVX @DPTR,A
MOV A,#2AH
MOVX @DPTR,A
MOV A,#00H
MOVX @DPTR,A
MOV A,#40H
MOVX @DPTR,A
MOV A,#90H
MOVX @DPTR,A
MOV 20H,#00H
MOV 21H,#00H
MOV 22H,#00H
MOV 23H,#00H
MOV 24H,#0FFH
MOV 25H,#00H
MOV R0,#21H
MOV R2,#02H
MOV R7,#33H
SETB EX0
SETB ET1
SETB EA
MAIN: LCALL MANI
LJMP MAIN
MANI: MOV DPTR,#1B31H
MOV A,#90H
MOVX @DPTR,A
MOV DPL,#30H
MANI1: MOV A,@R0
LCALL TABLE
MOVX @DPTR,A
INC R0
DJNZ R2,MANI1
MOV R0,#21H
MOV R2,#02H
RET
TABLE: INC A
MOVC A,@A+PC
RET
DB 3FH,06H,5BH,4FH
DB 66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH
DB 39H,5EH,79H,71H
DB 73H
KEY: PUSH ACC
PUSH PSW
PUSH DPL
MOV DPL,#30H
MOVX A,@DPTR
ANL A,#3FH
ACCEL: CJNE A,#02H,DECEL
CLR TR1
MOV 25H,#01H
MOV 21H,#0AH
MOV 23H,#00H
SETB TR1
LJMP OUTK
DECEL: CJNE A,#06H,BACK
CLR TR1
MOV 25H,#02H
MOV 21H,#0EH
MOV 23H,#0C0H
SETB TR1
LJMP OUTK
BACK: CJNE A,#03H,FRONT
MOV 20H,#01H
MOV 22H,#0BH
LJMP OUTK
FRONT: CJNE A,#07H,STOP
MOV 20H,#00H
MOV 22H,#0FH
LJMP OUTK
STOP: MOV 25H,#00H
CJNE A,#08H,STEP1
CLR TR1
MOV 21H,#00H
LJMP OUTK
STEP1: CJNE A,#09H,STEP2
CLR TR1
MOV 21H,#01H
MOV 23H,#00H
SETB TR1
LJMP OUTK
STEP2: CJNE A,#0AH,STEP3
CLR TR1
MOV 21H,#02H
MOV 23H,#3FH
SETB TR1
LJMP OUTK
STEP3: CJNE A,#0BH,STEP4
CLR TR1
MOV 21H,#03H
MOV 23H,#66H
SETB TR1
LJMP OUTK
STEP4: CJNE A,#0CH,STEP5
CLR TR1
MOV 21H,#04H
MOV 23H,#7FH
SETB TR1
LJMP OUTK
SREP5: CJNE A,#0DH,POINT
CLR TR1
MOV 21H,#05H
MOV 23H,#0C0H
SETB TR1
LJMP OUTK
POINT: CJNE A,#05H,OUTK
CLR TR1
MOV 21H,#0DH
LCALL DIREC
OUTK: POP DPL
POP PSW
POP ACC
RETI
TINT: PUSH ACC
PUSH PSW
PUSH DPL
LCALL DIREC
LCALL REL
OUTT: POP DPL
POP PSW
POP ACC
RETI
DIREC: MOV DPL,#08H
MOV R1,20H
MOV A,R7
CJNE R1,#00H,BACKD
FRONTD: RR A
LJMP OUTD
BACKD: CJNE R1,#01H,OUTD
RL A
OUTD: MOVX @DPTR,A
MOV R7,A
RET
REL: MOV R1,25H
CJNE R1,#01H,REL2
MOV A,23H
CJNE A,#0C0H,REL1
MOV TH1,A
RET
REL1: MOV TH1,A
INC A
MOV 23H,A
RET
REL2: CJNE R1,#02H,REL0
MOV A,23H
JNZ REL3
MOV TH1,A
RET
REL3: MOV TH1,A
DEC A
MOV 23H,A
RET
REL0: MOV TH1,23H
RET
END
CODE SEGMENT
ASSUME CS:CODE
IOCONPT EQU 0FF2BH
IOAPT EQU 0FF28H
IOBPT EQU 0FF29H
IOCPT EQU 0FF2AH
ORG 10e0H
START: MOV DX,IOCONPT
MOV AL,80H
OUT DX,AL
MOV DX,IOBPT
MOV AL,00H
OUT DX,AL
MOV DX,IOCPT
MOV AL,0FH ;H
OUT DX,AL
CALL DELAY1
IOLED0: MOV AL,01011010B ;13L 24H
MOV DX,IOCPT
OUT DX,AL
CALL DELAY1
CALL DELAY1
MOV AL,00001010B ;13LN
OUT DX,AL
MOV CX,8H
IOLED1: MOV DX,IOBPT
MOV AL,50H
OUT DX,AL
CALL DELAY2
MOV AL,00H
OUT DX,AL
CALL DELAY2
LOOP IOLED1
MOV DX,IOCPT
MOV AL,10100101B
OUT DX,AL
CALL DELAY1
CALL DELAY1
MOV AL,00000101B
OUT DX,AL
MOV CX,8H
IOLED2: MOV DX,IOBPT
MOV AL,0A0H
OUT DX,AL
CALL DELAY2
MOV AL,00H
OUT DX,AL
CALL DELAY2
LOOP IOLED2
MOV DX,IOCPT
MOV AL,0FH
OUT DX,AL
CALL DELAY2
JMP IOLED0
DELAY1: PUSH AX
PUSH CX
MOV CX,0030H
DELY2: CALL DELAY2
LOOP DELY2
POP CX
POP AX
RET
DELAY2: PUSH CX
MOV CX,8000H
DELA1: LOOP DELA1
POP CX
RET
CODE ENDS
END START
当然能用了,你是现在初学C++的话用VC++60。适合初学者不是最新就好,VS太高级了所以适合就好,如果需要孙鑫的教程,hi我
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。
希望对你有帮助
我记得有个8255A芯片,是端口拓展用的,时间太长了,具体记不清。
1、查数据手册,找8255A的指令用法,学会必须的指令。
2、查数据手册,找8255A的数据线、地址线的连接方法,看管脚图,确定原理图。
3、查数据手册,找8255A的封装,绘制电路板,Protel里有这个芯片的封装,可以直接用。
4、制板、焊件、调试,如果是面包板,就确定该连接的都连接好。
5、程序思路:
1、给8255A初始化指令,让A\B\C口都输出高或低电平,连接LED查看是否工作正常。
2、程序要求出方波,就是一会儿出高电平,一会儿出低电平就是方波。
3、主程序中:
1、初始化51的各个寄存器。
2、初始化8255A
3、发指令给8255A,让A口0线出低电平
4、第一个延时程序,控制低电平持续时间,可以用加法比较延时,也可用定时器。
5、发指令给8255A,让A口0线出高电平
6、第二个延时程序,控制高电平持续时间,同4
7、LOOP循环到程序3位置。死循环即可。
用示波器看输出的波形,调整4、6的参数,使得方波满足你要的高低电平时间,不要特意计算程序一条指令是多少时间,延时多少时间,那样即麻烦,又不准,8255A是有执行延迟的,所以用示波器看输出最准。
这些是02年我大二时学的,好久不用。
估计你是用来完成老师的作业,实际干活,没人用8255的。不知我猜对了没有。
总线周期的含义是什么。8086/8088CPU的基本总线周期由几个时钟组成。如果一个设置8255A工作方式,8255A的控制口地址为OOC6H。
要求端口A工作在方式1,输入;
,XWDvpF
以上就是关于微机原理 基础硬件实验实验一 8255控制灯实验全部的内容,包括:微机原理 基础硬件实验实验一 8255控制灯实验、12编写实验程序,利用8255的输出来控制步进电机的运转、微机原理 8255A应用——交通控制程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)