|
原理圖呢?
按你的代碼推斷
單片機(jī)每次只輸出8位數(shù)據(jù)
以你的描述來(lái)看
你用了并聯(lián)的接線(xiàn)方法
應(yīng)改用串聯(lián)的接線(xiàn)方法并在代碼中輸出16位數(shù)據(jù)
2023-07-03_095940.png (13.5 KB, 下載次數(shù): 58)
下載附件
2023-7-3 10:00 上傳
- SDATA_595 EQU P1.0 ;串行數(shù)據(jù)輸入
- SCLK_595 EQU P1.2 ;移位時(shí)鐘脈沖
- RCK_595 EQU P1.1 ;輸出鎖存器控制脈沖
- ;================================================
- ORG 0000H
- LJMP MAIN
- ORG 0030H
- ;================================================
- MAIN:MOV SP,#60H
- MOV R0,#0FEH
- MOV R1,#0FFH
- CLR SCLK_595
- MAIN1:
- CALL OUT_595
- CALL DELAY
- CLR C
- MOV A,R1
- RLC A
- MOV R1,A
- MOV A,R0
- RLC A
- MOV R0,A
- JNC MAIN1
- ORL 01H, #01H;地址01H即R1
- JMP MAIN1
- ;---------------------------------------------------------------
- ;輸出鎖存器輸出數(shù)據(jù)子程序
- ;---------------------------------------------------------------
- OUT_595:
- MOV R4,#08H
- MOV A,R1;//輸出高八位
- WR_LOOP1:
- RLC A
- MOV SDATA_595,C
- SETB SCLK_595 ;上升沿發(fā)生移位
- NOP
- NOP
- CLR SCLK_595
- DJNZ R4,WR_LOOP1
- MOV R4,#08H
- MOV A,R0//輸出低八位
- WR_LOOP2:
- RLC A
- MOV SDATA_595,C
- SETB SCLK_595 ;上升沿發(fā)生移位
- NOP
- NOP
- CLR SCLK_595
- DJNZ R4,WR_LOOP2
- CLR RCK_595
- NOP
- NOP
- SETB RCK_595 ;上升沿將數(shù)據(jù)送到輸出鎖存器
- NOP
- NOP
- NOP
- CLR RCK_595
- RET
- ;--------------------------------------------------------------
- ;延時(shí)子程序
- ;--------------------------------------------------------------
- DELAY:MOV R5,#03H
- DEL0:MOV R6,#0FFH
- DEL1:MOV R7,#0FFH
- DJNZ R7,$
- DJNZ R6,DEL1
- DJNZ R5,DEL0
- RET
- ;---------------------------------------------------------------
- END
復(fù)制代碼
|
|