1、【实验汇编代码】data segmentporta equ 288H; 74LS138的/Y1地址:288hportb equ 289Hportc equ 28AHportcon equ 28BHdata endscode segmentassume ds:data,cs:codedelay proc near ; 延时子程序 push bxpush cxmov bx,2000 lll: mov cx,50; 50000 ll:loop ll dec bx jne lll pop cxpop bxret delay endp start:mov ax,datamov ds,axmov dx,p
2、ortconmov al,10000000Bout dx,ala:mov al,1000B; 在数码管第一位显示mov dx,portcmov al,6dhmov dx,portacall delay; show 5mov al,00hout dx,al; 稳定显示mov al,0001B; 在数码管第四位显示mov al,7dh show 6mov ah,1 int 16h; 按键检测je a; 无按键,跳转回去mov ah,4chint 21h;返回doscode endsend start【实验结论】本代码能够正常同时显示数字5和6,并解决了数码管闪烁的问题。在键盘按下键时能够退出程序,
3、结束运行。(2)通过并行接口8255实现十字路口交通灯的模拟控制,如图29,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律亮灭。 十字路口交通灯的变化规律要求: (1) 南北路口的绿灯、东西路口的红灯同时亮一定时间。(2) 南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。(3) 南北路口的红灯、东西路口的绿灯同时亮一定时间。(4) 南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。(5) 转(1)重复。porta equ 288H ;74LS138的/Y1地址:portb
4、equ 289Hportc equ 28AHportcon equ 28BHdelay_long proc near ;长延时子程序 push bxpush cxmov bx,2000 lll0: mov cx,50000;50000 ll0: loop ll0 dec bx jne lll0 pop cxpop bxret delay_long endp delay_short proc near ;短延时子程序 lll1: mov cx,5000;ll1: loop ll1jne lll1 delay_short endp mov ax,datamov ds,axmov dx,portco
5、nmov al,10000000B;设置为输出模式out dx,almov dx,portcmov al,00100100B;保持亮灯call delay_longmov cx,3b:mov al,01000100Bcall delay_shortmov al,00000100Bloop b;循环3次,三次闪烁灯mov al,10000001B;c:mov al,10000010Bmov al,10000000Bloop c;循环三次,3次闪烁mov ah,1 int 16hje a; 无按键按下,回到前面,循环执行mov ah,4chint 21h; 返回DOS本汇编程序能够模拟交通信号灯的流程,通过修改参数能够调整闪烁次数、延时时长等属性。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1