8255第二种控制交通灯
来源:互联网 发布:网络连接不可用 编辑:程序博客网 时间:2024/05/16 08:08
stack segment
db 64 dup(?)
stack ends
data segment
ioport equ 0ff00h - 0280h
io8255a equ ioport + 288h
io8255b equ ioport + 289h
io8255c equ ioport + 28ah
io8255d equ ioport + 28bh
portc1 db 24h, 44h, 04h, 44h, 04h, 44h, 04h,
db 81h, 82h, 80h, 82h, 80h, 82h, 80h
db 0ffh
data ends
code segment
assume cs:code, ds:data
start: mov ax, data
mov ds, ax;设置数据段
mov ax,stack ;设置堆栈段为
mov ss,ax ;第二种循环显示方法
mov sp,64 ;保存循环次数
mov dx, io8255d
mov al, 90h;设置控制命令,10010000b
out dx, al;将控制命令字写入io8255d中
lea di, portc1;把protcl的数据基址放入di
mov bx,3 ;设置第二种显示方法的循环初值
push bx ;在栈中保存
re_on: mov al, [di] ;取当前di指向地址中的内容
inc di;di指针后移
cmp al, 0ffh;判断al中取到的值是否是0ffh
jz x;如果是,跳转到x
mov dx, io8255c
on: out dx, al ;向io8255c中写入显示模式
call delay;延时显示
jmp re_on;跳转到re_on继续
exit: mov ah, 4ch
int 21h;结束
delay proc near ;定义延时函数
mov cx, 5300h
de1: mov bx, 0fff0h
de0: dec bx
jnz de0
loop de1 ;做5300h*0fff0h次的循环
ret
delay endp
x: pop bx ;取出在栈中保存的循环次数
dec bx ;循环次数减一
push bx ;保存循环次数
cmp bx,0 ;判断是否已经循环3次
jz exit ;已经循环3次则退出
lea di,portc1 ;否则再次从portcl起始拿数值
jmp RE_ON ;跳转re_on继续
code ends
end start
db 64 dup(?)
stack ends
data segment
ioport equ 0ff00h - 0280h
io8255a equ ioport + 288h
io8255b equ ioport + 289h
io8255c equ ioport + 28ah
io8255d equ ioport + 28bh
portc1 db 24h, 44h, 04h, 44h, 04h, 44h, 04h,
db 81h, 82h, 80h, 82h, 80h, 82h, 80h
db 0ffh
data ends
code segment
assume cs:code, ds:data
start: mov ax, data
mov ds, ax;设置数据段
mov ax,stack ;设置堆栈段为
mov ss,ax ;第二种循环显示方法
mov sp,64 ;保存循环次数
mov dx, io8255d
mov al, 90h;设置控制命令,10010000b
out dx, al;将控制命令字写入io8255d中
lea di, portc1;把protcl的数据基址放入di
mov bx,3 ;设置第二种显示方法的循环初值
push bx ;在栈中保存
re_on: mov al, [di] ;取当前di指向地址中的内容
inc di;di指针后移
cmp al, 0ffh;判断al中取到的值是否是0ffh
jz x;如果是,跳转到x
mov dx, io8255c
on: out dx, al ;向io8255c中写入显示模式
call delay;延时显示
jmp re_on;跳转到re_on继续
exit: mov ah, 4ch
int 21h;结束
delay proc near ;定义延时函数
mov cx, 5300h
de1: mov bx, 0fff0h
de0: dec bx
jnz de0
loop de1 ;做5300h*0fff0h次的循环
ret
delay endp
x: pop bx ;取出在栈中保存的循环次数
dec bx ;循环次数减一
push bx ;保存循环次数
cmp bx,0 ;判断是否已经循环3次
jz exit ;已经循环3次则退出
lea di,portc1 ;否则再次从portcl起始拿数值
jmp RE_ON ;跳转re_on继续
code ends
end start
0 1
- 8255第二种控制交通灯
- 6-7 8255 控制交通灯
- 交通灯控制
- 单片机控制交通灯说明书
- 82C55控制交通灯
- 单片机控制交通灯V1.0
- 黑马程序员_java_交通灯控制
- 路口交通灯控制的模拟实现
- Arduino系列教程-05 交通灯控制
- 数字逻辑实验-交通灯控制设计
- 交通灯
- 交通灯
- 交通灯
- 交通灯
- 交通灯
- 交通灯
- 交通灯
- 交通灯
- C语言中关于free函数、bzero函数的使用
- 快速排序
- MVC设计模式和JavaWeb三层模型
- synchronized调用规则
- 6.1 JSP内置对象总结
- 8255第二种控制交通灯
- ``` > c#学习(二) ```
- Google 搜索技巧
- 10071-Back to High School
- DllMain中不可使用任何托管代码
- QtQuick UI 问答
- Systemd入门教程:命令篇
- 在myeclipse中如何修改Web Context-root,就是部署在Tomcat的webapps目录下的那个文件夹名字
- Java并发编程:线程池的使用