应用8255A控制LED小灯开闭(附代码注释)

来源:互联网 发布:搞笑网络段子精选 编辑:程序博客网 时间:2024/04/24 11:09

设8255A的A口和B口都工作在方式0,A口作为输出口,接有8个开关;B口为输出口,接有8个发光二极管.系统硬件电路中不断扫描开关Ki,当K0闭合时,点亮LED0,LED2,LED4,LED6,其他LED灯暗,当K1闭合时,点亮LED1,:LED3,LED5,LED7,其他LED暗;当开关K0和K1同时闭合时全灭.设8255A的端口地址为200H~206H.试编程实现上述控制.

参考程序:

        CODE SEGMENT

        ASSUME CS : CODE

START: MOV AL,90H                          ;8255A的方式选择控制字10010000B = 90H

               MOV DX,206H                       ;206H为8255A的控制端口地址

               OUT DX,AL                             ;把8255A的控制字写进控制端口

 AGAIN: MOV DX,200H                        ;8255A的A口端口地址

               IN AL,DX                                  ;AL的值写进数据端口

               TEST AL,03H                          ;检测AL中的值与03H = 0000 0011B是否一致,检测开关K0,K1的状态

               JZ TURNOFF                           ;一样则跳转 TURNOFF  不一样执行下面的语句

               TEST AL,02H                           ;比较AL?= 0000 0010B 检测K0的状态

                JZ DISP_0                               ;K0 = 1开关闭合 跳转DISP_0程序

                TEST AL,02H                          ;比较AL?= 0000 0001B 检测K1的状态

                JZ DISP_1                                ;K1 = 1开关闭合 跳转DISP_1程序

                JMP AGAIN                              ;重复程序

DISP_0: MOV AL,55H                            ;55H = 0101 0101B 控制LED灯的状态  偶位亮

                MOV DX,202H                         ;端口地址赋值给DX寄存器

                OUT DX,AL                               ;把LED灯的状态写入B口端口地址

                JMP AGAIN                               ;跳转回主程序

DISP_1:MOV AL,0AAH                           ;0AAH = 1010 1010B 控制LED灯的状态  奇位亮

               MOV DX,202H                           ;端口地址赋值给DX寄存器

               OUT DX,AL                                 ;把LED灯的状态写入B口端口地址

               JMP AGAIN                                 ;跳转回主程序

TURNOFF : 

                MOV AL,00H                             ;赋值 LEd灯的状态 全灭

                MOV DX,202H 

                OUT DX,AL                                ;输出到B口端口地址

                JMP AGAIN                               

CODE ENDS

             END START

0 0
原创粉丝点击