单片机8255

单片机8255,第1张

MOV A, #80H ;A口方式迅芹配0输出,B口方式0输出,C口高、低4位均输出

MOV DPTR, #7FF3H

MOVX @DPTR, A

MOV DPTR, #7FF0H

MOV A, #00H

MOVX @DPTR, A--PA 输出 0000 0000---PA1 = 0

MOV A,#02H

MOVX @DPTR, A--PA 输出 0000 0010---PA1 = 1

MOV A, #00H

MOVX @DPTR, A--PA 输出 0000 0000---PA1 = 0

PA1 ,输出了:0、1、0,

这就是一个正脉冲

其他引脚,一直都是输出0,没有输出任何脉冲。

==========

MOV A, #00H

MOVX @DPTR, A--PA 输出 0000 0000---PA3 = 0

MOV A,#08H

MOVX @DPTR, A--PA 输出 0000 1000---PA3 = 1

MOV A, #00H

MOVX @DPTR, A--PA 输出 0000 0000---PA3 = 0

PA3 ,输出了:0、1、0,

这几行,就是在 PA3 输出了一个正脉冲。

==========

MOV A, #00H

MOVX @DPTR, A--PA 输出 0000 0000-首正--PA5 = 0

MOV A,#20H

MOVX @DPTR, A--PA 输出 0010 0000---PA5 = 1

MOV A, #00H

MOVX @DPTR, A--PA 输出 0000 0000---PA5 = 0

PA5 ,输出了:0、1、0,

这几行,就是在 PA5 输出了一亩指个正脉冲。

==========

MOV A, #0FFH

MOVX @DPTR, A--PA 输出 1111 1111---PA0 = 1

MOV A,#0FEH

MOVX @DPTR, A--PA 输出 1111 1110---PA0 = 0

MOV A, #0FFH

MOVX @DPTR, A--PA 输出 1111 1111---PA0 = 1

PA0 ,输出了:1、0、1,

这几行,就是在 PA0 输出了一个负脉冲。

假设开关0~开关7的一端链液接依次接PB0~PB7,各开关另一端拉地链旅;

假设8个LED共阳极接电源+Vcc, LED0~LED7阴极依次接PA0~PA7

假设单片机系统中,8255的A口、B口、C口、控制口地址依次是:

7FF0H、7FF1H、7FF2H、7FF3H,汇编程序如下:

.

MOV A, 1000010B 初始化命令字:A口方式0输出,B口方式0输入

MOV DPTR, #7FF3H 控制口地址→DPTR

MOVX @DPTR,A 初始化命令字→8255控制口

LP:

MOV DPTR, #7FF1H B口地址→DPTR

MOVX A, @DPTR B口所连接的开关状态→累加器棚唤物

MOV DPTR, #7FF0H A口地址→DPTR

MOVX @DPTR,A 存于累加器的开关状态数据→A口所连接的8个LED

SJMP LP


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

原文地址: http://outofmemory.cn/yw/12535339.html

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

发表评论

登录后才能评论

评论列表(0条)

保存