(1)蜂鸣器自检程序注: 以下所有框图中的判断框顺序执行都是默认为“ Y” Y 主程序开始伪指令定义变量开蜂鸣器延时关闭蜂鸣器延时修改延时参数把循环初值给 R4 R4=0 吗? NO1 EQU 012H NO2 EQU 0AH NO3 EQU 20H NO4 EQU 0AH ;伪指令定义变量 START: MOV R4,#NO4 ;赋初值控制循环次数 MOV R0,#NO1 ;赋初值用于修改延时参数 LOOP: SETB ;关喇叭 ACALL DELAY ;调用延时 CLR ;开喇叭 ACALL DELAY ;调用延时 MOV A,R0 ADD A,#NO3 ;修改延时参数 MOV R0,A DJNZ R4,LOOP ; R4 为零时,转跳到 LOOP AJMP START ;转跳到 START DELAY: MOV A,R0 ;延时子程序 LP1: MOV A,R0 MOV R3,A LP2: DJNZ R3,LP2 DJNZ R2,LP1 RET 2 、七段 LED 显示器的自检程序开始选定第一位显示第一位字段子程序四位计数器 R4=4 送位选显示字段子程序 R4=0 吗? R4 减1 Beep 子程序 Beep 子程序 WEI1: CLR ;选定第一位 CLR CLR LCALL DUAN1 ;调用第一位字段子程序 WEIXH: MOV R4,#04H ;后四位计数器初始化 MOV R3,#0 LOOP: MOV DPTR,#WEI ;送位首地址 MOV A,R3 MOVC A,***@A+DPTR MOV P2,A ;送位选 LCALL DUAN ;送字形 CALL BEEP ;蜂鸣器响 INC R3 DJNZ R4,LOOP ;四位没有检查完继续检查 SJMP WEI1 DUAN: MOV DPTR,#ZIDUAN ; 18个字段表的表首地址给 dptr MOV R0,#18H ; a到 h, 1到 f共 18个字形计数器 LP: MOV A,#0 MOVC A,***@A+DPTR MOV P0,A LCALL DELAY INC DPTR DJNZ R0,LP ; 18个字形显示完否则继续循环 RET DUAN1: MOV P0,#01H ;送字形 b CALL DELAY MOV P0,#04H ;送字形 c CALL DELAY MOV P0,#08H ;送字形 g CALL DELAY MOV P0,#80H ;送字形 1 CALL DELAY MOV P0,#0CH CALL DELAY MOV P0,#8CH ;送字形-1 CALL BEEP CALL DELAY RET DELAY: MOV R1,#20H ;延时子程序 LP1:MOV R2,#064H LP2:MOV R5,#032H LP3:DJNZ R5,LP3 DJNZ R2,LP2 DJNZ R1,LP1 RET BEEP: CLR ;蜂鸣器字程序 CALL DELAY SETB RET WEI: DB 09FH,5FH,0CFH,3FH ;位表 ZIDUAN: DB 01H,02H,04H,08H,10H,20H,40H,80H, 7 EH,0CH,0B6H,9EH,0CCH,0DAH,0FAH, 0EH
蜂鸣器自检程序 来自淘豆网www.taodocs.com转载请标明出处.