JB PI.7, $ JNB P1.7, $ CLR P1.0 MOV R2, #0 DAY: NOP NOP
DJNZ R2, DAY SJMP ABC
7、设计一个4位数码显示电路,并用汇编语言编程使解: ORG 0100H MOV A, #08H MOV R2, #01H MOV DPTR, #TAB MOVC A,@A+DPTR MOV P1, A NEXT: MOV A, R2 MOV P3, A ACALL DAY JB ACC.4, LPD RL A MOV R2, A AJMP NEXT LPD: RET
\从右到左显示一遍。25
TAB: DB END
编制一个循环闪烁的程序。有8个发光二极管,每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。画出电路图。 解: MOV A,#01H SHIFT: LCALL FLASH RR
SJMP SHIFT
FLAH: MOV R2, #0AH FLAH1: MOV P1, A LCALL DELAY MOV P, #00H LCALL DELAY
DJNZ R2, FLASH1 RET
9.在8051单片机的INTO引脚外接脉冲信号,要求每送来一个脉冲,把30H单元值加1,若30H单元记满则进位31H单元。试利用中断结构,编制一个脉冲计数程序。 解: ORG 0000H AJMP MAIN
ORG 0003H AJMP SUBG MAIN: MOV A, #OOH MOV 30H, A
26
MOV 31H, A MOV SP, #70H SETB INT0 SETB EA SETB EX0 AJMP $ ORG 0200H SUBG: PUSH ACC INC 30H MOV A, 30H JNZ BACK INC 31H BACK: POP RET1
10.利用89C51的P1口控制8个发光俄二极管LED。相邻的4个LED为一组,使2组每隔0。5S 交替发亮一次,周尔复始。试编写程序。 解: ORG 0100H MOV A, #0FH ABC: MOV P1, A ACALL D05 SWAP A SJMP ABC D05: MOV R6, 250
27
DY: MOV R7, 250 DAY: NOP NOP
DJNZ R6, DAY DJNZ R7, DAY RET END
11.设计89C51和ADC0809的接口,采集2通道10个数据,存入内部RAM的50H~59H单元,画电路图,编出: (1)延时方式; (2)查询方式;
(3)中断方式中的一种程序。
解:IN2的地址为7FFAH,P1.0查询转换结束信号,查询程序如下: ORG 0100H MOV R7, #0AH MOV R0, #50H MOV DPTR, #7FFAH NEXT: MOVX @DPTR, A JB P1.0, $ MOVX A,@DPTR MOV @R0, A INC R0 DJNZ NEXT
28
相关推荐: