发布网友 发布时间:2022-05-02 23:37
共1个回答
热心网友 时间:2023-10-09 22:40
摘要;89C51汇编语言写8个按键控制8个LED;按键接P2口,LED接P1口。;有6按键,按下对应LED长亮,重复按下,LED灭;;有两个特殊按键,按下,对应LED每隔1秒闪烁,重复按下,LED灭。;题目网址:http://zhidao.baidu.com/question/591052586.html咨询记录 · 回答于2021-12-21P3口控制八个led灯,当有任意一个按键按下后,奇数灯和偶数灯交替闪烁;当再次按下任意一个键后,八个灯全灭。如此循环。;89C51汇编语言写8个按键控制8个LED;按键接P2口,LED接P1口。;有6按键,按下对应LED长亮,重复按下,LED灭;;有两个特殊按键,按下,对应LED每隔1秒闪烁,重复按下,LED灭。;题目网址:http://zhidao.baidu.com/question/591052586.html这是原题吗这不是吧做而论道编写的程序如下: ORG 0000H LJMP MAIN ORG 000BH LJMP T0_INT ORG 0030H;---------------------------------MAIN: MOV TMOD, #01H MOV TH0, #HIGH(65536 - 10000) ;10ms@12MHz MOV TL0, #LOW(65536 - 10000) SETB TR0 MOV IE, #82H MOV R7, #50 ;500msLOP:SJMP LOP;---------------------------------T0_INT: MOV TH0, #HIGH(65536 - 10000) ;10ms@12MHz MOV TL0, #LOW(65536 - 10000) MOV A, P2 CPL A MOV B, A XRL A, 21H ANL A, 21H MOV 22H, A MOV 21H, B ANL A, #3FH XRL 20H, A MOV A, 22H ANL A, #0C0H XRL 23H, A DJNZ R7, T0_E MOV R7, #50 ;500ms亮500ms灭 JB 23H.7, S2 XRL 20H, #80H SJMP S3S2: ORL 20H, #80HS3: JB 23H.6, S4 XRL 20H, #40H SJMP T0_ES4: ORL 20H, #40HT0_E: MOV P1, 20H RETI;---------------------------------END这和我们学的不一样图片链接:http://xiangce.baidu.com/picture/detail/b13fd0df0ff8c029222ecb222f7b961dc49698d2;经过仿真实验,本程序,符合题目要求。;D1~D6,受 K1~K6 控制,长亮/熄灭;D7~D8,受到 K7~K8 控制,闪烁/熄灭。C 语言程序可见:http://hi.baidu.com/do_sermon/item/f8812371c31434590d0a0791我要看C语言程序还要下载吗我的构想是,按键采用中断,给R0计数(每次按键加1),R0预置1,使用DJNZ R0,XXXX命令,XXXX转移目标,为0(说明没有按键),等待,不为0(至少按键过一次)再减一次,如果为0,说明按键过一次,跳转到一次按键的程序,如果不为0,跳转到按键2次的程序。粗略的这么想了一下,希望能给你有所启发。P3口控制八个led灯,当有任意一个按键按下后,奇数灯和偶数灯交替闪烁;当再次按下任意一个键后,八个灯全灭。如此循环。只能给你这些资料,希望能够帮到你