原理圖呢?
按你的代碼推斷
單片機每次只輸出8位數據
以你的描述來看
你用了并聯的接線方法
應改用串聯的接線方法并在代碼中輸出16位數據
2023-07-03_095940.png (13.5 KB, 下載次數: 58)
下載附件
2023-7-3 10:00 上傳
- SDATA_595 EQU P1.0 ;串行數據輸入
- SCLK_595 EQU P1.2 ;移位時鐘脈沖
- 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
- ;---------------------------------------------------------------
- ;輸出鎖存器輸出數據子程序
- ;---------------------------------------------------------------
- OUT_595:
- MOV R4,#08H
- MOV A,R1;//輸出高八位
- WR_LOOP1:
- RLC A
- MOV SDATA_595,C
- SETB SCLK_595 ;上升沿發生移位
- 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 ;上升沿發生移位
- NOP
- NOP
- CLR SCLK_595
- DJNZ R4,WR_LOOP2
- CLR RCK_595
- NOP
- NOP
- SETB RCK_595 ;上升沿將數據送到輸出鎖存器
- NOP
- NOP
- NOP
- CLR RCK_595
- RET
- ;--------------------------------------------------------------
- ;延時子程序
- ;--------------------------------------------------------------
- DELAY:MOV R5,#03H
- DEL0:MOV R6,#0FFH
- DEL1:MOV R7,#0FFH
- DJNZ R7,$
- DJNZ R6,DEL1
- DJNZ R5,DEL0
- RET
- ;---------------------------------------------------------------
- END
復制代碼
|