应用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
- 应用8255A控制LED小灯开闭(附代码注释)
- Led灯控制代码
- APM2.6的LED小灯控制
- 外网远程控制LED小灯的实现
- 树莓派通过Flask网页端控制LED小灯
- arduino 控制led灯亮度强弱变化的经典代码
- LED灯控制实验
- session与cookie技术应用(附详细代码示例以及注释)
- 点亮LED小灯
- Android应用控制LED(动态编译LED驱动)
- Android应用控制LED(静态编译LED驱动)
- 按键控制Led的裸奔代码
- OK6410 GPIO 控制LED 亮灭代码
- iOS -- 注释规范附统一代码块
- C语言-----链表1(代码附注释)
- 控制Android LED灯颜色代码
- 5.0 按键控制LED灯
- arm汇编控制led灯
- 61. Rotate List
- redis集群实现(八)redis+twemproxy集群
- SpringMVC入门(一)
- iOS开发归档存储
- fitsSystemWindows实践
- 应用8255A控制LED小灯开闭(附代码注释)
- 共享经济向共产经济转变
- 【CSS基础 】动画animation
- GPU虚拟化的评价标准与实现策略
- android多渠道打包&&几个打包小技巧
- 如何在软件开发过程中合理的设计函数来解决实际问题
- 使用SecureCRT软件在客户端与服务器之间进行文件传输(不能传输文件夹)
- 消除文法左递归-编译原理
- Zookeeper概念 & 数据结构