|
|
|
|
|
| |
| 74HC595实际应用-8位数码管循环移位显示 |
| SDATA_595 EQU P0.0 ;串行数据输入 SCLK_595 EQU P0.1 ;移位时钟脉冲 RCK_595 EQU P0.2 ;输出锁存器控制脉冲
LS138_G1 EQU P0.3 ;使能端 LS138_A EQU P0.4 ; LS138_B EQU P0.5 ; LS138_C EQU P0.6 ;
;=====================================================
ORG 0000H LJMP MAIN ORG 0030H
;===================================================== MAIN: MOV SP,#60H MOV P0,#00H MOV P1,#0FFH MOV P2,#0FFH MOV P3,#0FFH
MOV R0,#30H ;初始化寄存器 MOV R1,#00H MOV R2,#00H
MOV 30H,#01H ;显示数据 MOV 31H,#02H MOV 32H,#03H MOV 33H,#04H MOV 34H,#05H MOV 35H,#06H MOV 36H,#07H MOV 37H,#08H
CLR LS138_G1 ;禁止74LS138使能 MOV R5,#7FH MAIN1: LCALL DISPLAY DJNZ R5,MAIN1 MOV A,30H ;数据交换 XCH A,31H XCH A,32H XCH A,33H XCH A,34H XCH A,35H XCH A,36H XCH A,37H XCH A,30H MOV R5,#7FH JMP MAIN1 ;=============================================================
;显示子程序
;============================================================= DISPLAY: MOV A,@R0 ;查表取显示数据 MOV DPTR,#TAB_NU MOVC A,@A+DPTR LCALL WR_595 ;移位寄存器接收数据 CLR LS138_G1 ;关闭显示 LCALL OUT_595 ;将数据送到输出锁存器 NOP NOP MOV A,P0 ;读P0状态 ANL A,#0FH ;维持低4位状态 ADD A,R2 ;确定显示位 MOV P0,A ;送显示位 SETB LS138_G1 ;开显示 INC R0 ;取下一位显示数据 INC R1 ; MOV A,R1 ;修改显示位 SWAP A ;高、低四位数据交换 MOV R2,A ;确定下一个显示位 LCALL DELAY ;延时 CJNE R1,#09H,DISPLAY ;8个数码管是否显示完毕?
MOV R0,#30H ;重新初始化寄存器 MOV R1,#00H MOV R2,#00H RET
;=============================================================
;输出锁存器输出数据子程序
;============================================================= OUT_595: CLR RCK_595 NOP NOP SETB RCK_595 ;上升沿将数据送到输出锁存器 NOP NOP NOP CLR RCK_595 RET ;=============================================================
;移位寄存器接收数据子程序
;============================================================= WR_595: MOV R4,#08H WR_LOOP: RLC A MOV SDATA_595,C SETB SCLK_595 ;上升沿发生移位 NOP NOP CLR SCLK_595 DJNZ R4,WR_LOOP RET ;=============================================================
;延时子程序
;============================================================= DELAY: MOV R6,#02H DEL1: MOV R7,#200 DJNZ R7,$ DJNZ R6,DEL1 RET ;=============================================================
TAB_NU: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH
;============================================================= END
实验源理图如下:

| | | 更新时间:2007-6-1 11:21:42 |  |
|
|
|
|
|
|