ORG 0000H ST: MOV DPTR,#TAB ;显示数据表首址 LP5:CLR P2.2 ;74HC595输出清零 SETB P2.2 CLR P2.4 ;选取第一行000 CLR P2.5 CLR P2.6 MOV A,#00H ;清累加器 MOVC A,@A+DPTR ;取显示数据 LCALL DIS ;送列数据子程? LCALL DELAY ; 延时 SETB P2.4 ;选取第二行001 CLR P2.5 CLR P2.6 INC DPTR MOV A,#00H MOVC A,@A+DPTR LCALL DIS LCALL DELAY CLR P2.4 ;选取第三行010 SETB P2.5 CLR P2.6 INC DPTR MOV A,#00H MOVC A,@A+DPTR LCALL DIS LCALL DELAY SETB P2.4 ;选取第四行011 SETB P2.5 CLR P2.6 INC DPTR MOV A,#00H MOVC A,@A+DPTR LCALL DIS LCALL DELAY CLR P2.4 ;选取第五行100 CLR P2.5 SETB P2.6 INC DPTR MOV A,#00H MOVC A,@A+DPTR LCALL DIS LCALL DELAY SETB P2.4 ;选取第六行101 CLR P2.5 SETB P2.6 INC DPTR MOV A,#00H MOVC A,@A+DPTR LCALL DIS LCALL DELAY CLR P2.4 ;选取第七行110 SETB P2.5 SETB P2.6 INC DPTR MOV A,#00H MOVC A,@A+DPTR LCALL DIS LCALL DELAY SETB P2.4 ;选取第八行111 SETB P2.5 SETB P2.6 INC DPTR MOV A,#00H MOVC A,@A+DPTR LCALL DIS LCALL DELAY LJMP ST ;一桢画面显示完成返回继续显示下一祯 ;**************************************************************** ;送列数据子程序 ;**************************************************************** DIS:CLR C LP1:MOV R5,#08H LP: RRC A MOV P2.0,C CLR P2.1 SETB P2.1 DJNZ R5, LP CLR P2.3 SETB P2.3 NOP NOP RET ;****************************************************************** ;延时子程序 ;****************************************************************** DELAY: MOV R5,#04H H0: MOV R6,#0ffH H1 : MOV R7,#0ffH H2: DJNZ R7,H2 DJNZ R6,H1 DJNZ R5,H0 RET ;***************************************************************** ;显示数据表 ;***************************************************************** TAB: DB 0ffH,7eH,3cH,18H,18H,3cH,7eH,0FFH TAB1: DB 10,0feH,92H,92H,0feH,92H,10H,10H END