200分急求《微机原理与汇编语言》有关红绿灯的一个实验的指令代码

200分急求《微机原理与汇编语言》有关红绿灯的一个实验的指令代码,第1张

真是太感谢你了

不知道你的端口对应哪个灯阿

ASSUME CS:CODE

CODE SEGMENT PUBLIC

ORG 100H ;程序存放的首地址

START:

MOV AX,04A6H

MOV DX,AX

MOV AL,10000000B

OUT DX,AL ;将10000000B输出到地址为04A6H的端口

LOOP1:

MOV DX,04A0H

MOV AL,00100001B

OUT DX,AL ;将00100001B输出到地址为04A0H的端口

CALL DELAY2 ;延时

MOV CX,3H

LOOP2:

MOV AL,00001001B

OUT DX,AL ;将00001001B输出到地址为04A0H的端口

CALL DELAY1 ;延时

MOV AL,00000001B

OUT DX,AL ;将00000001B输出到地址为04A0H的端口

CALL DELAY1 ;延时

LOOP LOOP2 ;loop2开始的语句循环执行三次

MOV AL,00010010B

CALL DELAY2 ;延时

MOV CX,3H

LOOP3:

MOV AL,00000110B

OUT DX,AL ;将00000110B输出到地址为04A0H的端口

CALL DELAY1 ;延时

MOV AL,00000010B

OUT DX,AL ;将00000010B输出到地址为04A0H的端口

CALL DELAY1 ;延时

LOOP LOOP3 ;loop3开始的语句循环执行三次

JMP LOOP1

DELAY1 PROC NEAR ;延时子程序

PUSH CX

MOV CX,8000H

CCC:

LOOP CCC

POP CX

RET

DELAY1 ENDP

DELAY2 PROC NEAR ;延时子程序

PUSH AX

PUSH CX

MOV CX,0030

UUU:CALL DELAY1

LOOP UUU

POP CX

POP CX

POP AX

RET

DELAY2 ENDP

CODE ENDS

END START

源程序如下:

CODE SEGMENT

ASSUME CS:CODE

ORG 1000H

START:MOV DX,73H

MOV AL,80H

OUT DX,AL

MOV DX,71H

MOV AL,1110B

OUT DX,AL

MOV DX,72H

MOV AL,01111001B

OUT DX,AL

CALL DELAYED1

MOV BX,5H

L1:

MOV DX,71H

MOV AL,1110B

OUT DX,AL

MOV DX,72H

MOV AL,10111010B

OUT DX,AL

CALL DELAYED2

MOV DX,71H

MOV AL,1110B

OUT DX,AL

MOV DX,72H

MOV AL,11111011B

OUT DX,AL

CALL DELAYED2

DEC BX

JNZ L1

MOV DX,71H

MOV AL,0011B

OUT DX,AL

MOV DX,72H

MOV AL,11001111B

OUT DX,AL

CALL DELAYED1

MOV BX,5H

L2:

MOV DX,71H

MOV AL,0101B

OUT DX,AL

MOV DX,72H

MOV AL,11010111B

OUT DX,AL

CALL DELAYED2

MOV DX,71H

MOV AL,0111B

OUT DX,AL

MOV DX,72H

MOV AL,11011111B

OUT DX,AL

CALL DELAYED2

DEC BX

JNZ L2

JMP START

DELAYED1: MOV AX,10

L3: MOV CX,0FFFFH

LOOP $

DEC AX

JNZ L3

RET

DELAYED2:MOV CX,0FFFFH

LOOP $

RET

CODE ENDS

END START

8255CS插孔连译码输出070H-07FH插孔

我说的B 就是你看到的PB C就是实验版上的PC

如果你 b3--L1 b2--L2 B1--L3 B0--L4 C7--L5 C6--L6

c5--L7 c4--L8 c3--L9 c2--L10 c1--L11 C0--L12不对的话

可能你的实验板和我见到的不同

你再试一下

C7--L1 C6--L2 c5--L3 c4--L4 c3--L5 c2--L6 C1--L7 C0--L8

B3--L9 B2--L10 B1--L11 B0——L12

还有 灯的延迟时间你要自己调 因为个人的芯片时钟不一样

源程序我调过

还有 标号你自己改一下

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP T0ISR

ORG 0030H

MAIN:

MOV TMOD,#01H

MOV TH0,#HIGH(65536-50000)

MOV TL0,#LOW(65536-50000)

SETB TR0

SETB ET0

SETB EA

MOV R2,#0

MOV R3,#6

MOV R4,#0FEH

CLR 00H

SJMP $

T0ISR:

CLR TR0

MOV TH0,#HIGH(65536-50000)

MOV TL0,#LOW(65536-50000)

SETB TR0

INC R2

CJNE R2,#20,T0E

MOV R2,#0

JB 00H,T0LS

MOV A,P0

CPL A

MOV P0,A

DJNZ R3,T0E

SETB 00H

SJMP T0E

T0LS:

MOV A,R4

MOV P0,A

RL A

MOV R4,A

T0E:

RETI

END

简单

程序流程如下:

开始:绿灯

东西方向南北方向的红灯

延迟30秒

东西方向绿灯“

南北方向的红灯已关闭

东西方向的,**的光的

南北方向的,**的光

BR

/>

5秒延时的东西方向的**指示灯熄灭南北方向

**指示灯熄灭

的方向,南北方向20秒的延迟一个南北方向绿灯东西方向红灯

绿灯熄灭红灯熄灭东西方向

一些**的光

的**光南北方向

5秒的延迟将启动

阿尔法

Alpha

以上就是关于200分急求《微机原理与汇编语言》有关红绿灯的一个实验的指令代码全部的内容,包括:200分急求《微机原理与汇编语言》有关红绿灯的一个实验的指令代码、汇编(交通灯控制系统)、89C51芯片用汇编语言编程八个红绿灯交替点亮3次,间隔1秒,定时器0中断,再流水灯。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9288509.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存