標(biāo)題: 用匯編語(yǔ)的大師多嗎?我也想用C,正在學(xué)習(xí) [打印本頁(yè)] 作者: JJ加加 時(shí)間: 2019-6-5 22:01 標(biāo)題: 用匯編語(yǔ)的大師多嗎?我也想用C,正在學(xué)習(xí) ;=======================================================
;利用串行轉(zhuǎn)并行芯片595芯片調(diào)數(shù)據(jù)表實(shí)現(xiàn)40個(gè)彩色LED來(lái)回流兩個(gè)花樣
;======================================================
MR EQU P3.4;MR低電平移位寄存器清零
SH EQU P3.7;SH上升沿?cái)?shù)據(jù)寄存器移位
ST EQU P3.6;上升移位寄存器數(shù)據(jù)進(jìn)入數(shù)據(jù)寄存器
OE EQU P3.3;高電平禁止輸出(高阻態(tài))
DSA EQU P3.5;串行數(shù)據(jù)輸入
;=========初始化程序=====================================
CLR MR;復(fù)位
LCALL DELAY
SETB MR;復(fù)位復(fù)位
CLR OE;允許輸出
CLR ST
CLR SH
;==================================================
ZUO:MOV 40H,#00H
KAI:MOV R0,#00H
MOV DPTR,#TAB
SS:LCALL LL;調(diào)用第一個(gè)花樣共調(diào)5次
INC R0
LCALL LL
INC R0
LCALL LL
INC R0
LCALL LL
INC R0
LCALL LL
INC R0
;============================================
LCALL OUT
LCALL YAN
MOV A,R0
CJNE A,#225D,SS
INC 40H
MOV A,40H
CJNE A,#5D,KAI
;-------------------------------------------
MOV 40H,#00H
KAI2:MOV R0,#00H
MOV DPTR,#TAC
SS1:LCALL LL;調(diào)用第二個(gè)花樣共調(diào)5次
INC R0
LCALL LL
INC R0
LCALL LL
INC R0
LCALL LL
INC R0
LCALL LL
INC R0
;============================================
LCALL OUT
LCALL ZYS
MOV A,R0
CJNE A,#90D,SS1
INC 40H
MOV A,40H
CJNE A,#5D,KAI2
AJMP ZUO
;=================================================
LL: MOV A,R0
MOVC A,@A+DPTR
LCALL WR_595
RET
;====================================================
;移位寄存器接收數(shù)據(jù)子程序
;==================================================
WR_595:MOV R4,#08H;確定輸出為8位數(shù)據(jù)
WR_LOOP:RLC A
MOV DSA,C;寫(xiě)入第一位數(shù)據(jù)
SETB SH;上升沿發(fā)生移位
LCALL DELAY
CLR SH;串行數(shù)據(jù)移位
LCALL DELAY
DJNZ R4,WR_LOOP;等待數(shù)據(jù)全部發(fā)送完畢
RET
;=========================================================
OUT:SETB ST;上升沿將數(shù)據(jù)送到輸出鎖存器
NOP;空操作指令,延時(shí)一個(gè)程序周期
NOP
CLR ST;下降沿將數(shù)據(jù)從鎖存器輸出
RET
;================================================
;短延時(shí)子程序
;=============================================
DELAY:MOV R6,#5D
DEL1:MOV R7,#2D
DJNZ R7,$
DJNZ R6,DEL1
RET
;=============================================
;長(zhǎng)延時(shí)子程序
;===============================================
YAN:MOV R6,#200D
YAN1:MOV R7,#100D
DJNZ R7,$
DJNZ R6,YAN1
RET
;=============================================================
;中延時(shí)程序
;=============================================================
ZYS:MOV R2,#200D
AA:MOV R3,#100D
NN:MOV R5,#10D
DJNZ R5,$
DJNZ R3,NN
DJNZ R2,AA
RET
;===========================================================
;數(shù)據(jù)表
;============================================================
TAB:DB 01111111B,11111111B,11111111B,11111111B,11111110B;1
DB 00111111B,11111111B,11111111B,11111111B,11111100B;2
DB 00011111B,11111111B,11111111B,11111111B,11111000B;3
DB 00001111B,11111111B,11111111B,11111111B,11110000B;4
DB 10000111B,11111111B,11111111B,11111111B,11100001B;5
DB 11000011B,11111111B,11111111B,11111111B,11000011B;6
DB 11100001B,11111111B,11111111B,11111111B,10000111B;7
DB 11110000B,11111111B,11111111B,11111111B,00001111B;8
DB 11111000B,01111111B,11111111B,11111110B,00011111B;9
DB 11111100B,00111111B,11111111B,11111100B,00111111B;10
DB 11111110B,00011111B,11111111B,11111000B,01111111B;11
DB 11111111B,00001111B,11111111B,11110000B,11111111B;12
DB 11111111B,10000111B,11111111B,11100001B,11111111B;13
DB 11111111B,11000011B,11111111B,11000011B,11111111B;14
DB 11111111B,11100001B,11111111B,10000111B,11111111B;15
DB 11111111B,11110000B,11111111B,00001111B,11111111B;16
DB 11111111B,11111000B,01111110B,00011111B,11111111B;17
DB 11111111B,11111100B,00111100B,00111111B,11111111B;18
DB 11111111B,11111110B,00011000B,01111111B,11111111B;19
DB 11111111B,11111111B,00000000B,11111111B,11111111B;20
DB 11111111B,11111111B,10000001B,11111111B,11111111B;21
DB 11111111B,11111111B,11000011B,11111111B,11111111B;22
DB 11111111B,11111111B,11100111B,11111111B,11111111B;23
DB 11111111B,11111111B,11000011B,11111111B,11111111B;24
DB 11111111B,11111111B,10000001B,11111111B,11111111B;25
DB 11111111B,11111111B,00000000B,11111111B,11111111B;26
DB 11111111B,11111110B,00011000B,01111111B,11111111B;27
DB 11111111B,11111100B,00111100B,00111111B,11111111B;28
DB 11111111B,11111000B,01111110B,00011111B,11111111B;29
DB 11111111B,11110000B,11111111B,00001111B,11111111B;30
DB 11111111B,11100001B,11111111B,10000111B,11111111B;31
DB 11111111B,11000011B,11111111B,11000011B,11111111B;32
DB 11111111B,10000111B,11111111B,11100001B,11111111B;33
DB 11111111B,00001111B,11111111B,11110000B,11111111B;34
DB 11111110B,00011111B,11111111B,11111000B,01111111B;35
DB 11111100B,00111111B,11111111B,11111100B,00111111B;36
DB 11111000B,01111111B,11111111B,11111110B,00011111B;37
DB 11110000B,11111111B,11111111B,11111111B,00001111B;38
DB 11100001B,11111111B,11111111B,11111111B,10000111B;39
DB 11000011B,11111111B,11111111B,11111111B,11000011B;40
DB 10000111B,11111111B,11111111B,11111111B,11100001B;41
DB 00001111B,11111111B,11111111B,11111111B,11110000B;42
DB 00011111B,11111111B,11111111B,11111111B,11111000B;43
DB 00111111B,11111111B,11111111B,11111111B,11111100B;44
DB 01111111B,11111111B,11111111B,11111111B,11111110B;45
;-------------------------------------------------------------------
TAC:DB 01101101B,10110110B,11011011B,01101101B,10110110B;1
DB 11101111B,10111110B,11011111B,01111101B,11110111B
DB 01111101B,11110111B,11111011B,11101111B,10111110B
DB 10110110B,11011011B,01101101B,10110110B,11011011B;2
DB 10111110B,11111011B,11101111B,10111110B,11011111B
DB 11110111B,11011111B,01111101B,11110111B,11111011B
DB 11011011B,01101101B,10110110B,11011011B,01101101B;3
DB 11111011B,11101111B,10111110B,11111011B,11101111B
DB 11011111B,01111101B,11110111B,11011111B,01111101B
DB 01001001B,00100100B,10010010B,01001001B,01001001B;4
DB 01011101B,01110101B,11010111B,01011101B,01110101B
DB 11101011B,10101110B,10111010B,11101011B,10101110B
DB 10010010B,01001001B,00100100B,10010010B,01001001B;5
DB 11110011B,11001111B,00111100B,11110011B,11001111B
DB 10011110B,01111001B,11100111B,10011110B,01111001B
DB 00100100B,10010010B,01001001B,00100100B,10010010B;6
DB 00111100B,11110011B,11001111B,00111100B,10011110B
DB 11100111B,10011110B,01111001B,11100111B,11110011B
END