?? tlc549.asm
字號:
;********************************************************************************
;* 標題:北京啟東微芯LJD-SY-5100單片機實驗549A/D 轉換嚴示程序 *
;* 文件:TLC549.asm *
;* 日期: 2005-6-1 *
;* 版本: 1.0 *
;* 作者 :啟東微芯
;* 網站: http://www.LJD-2008.COM *
;********************************************************************************
;* 描述: *
;* 通過數碼管觀看A/D采集的數據
; 如顯示異常請按復位鍵* *
;* *
;********************************************************************************
;* 【聲明】 此程序僅用于學習與參考,引用請注明版權和作者信息! *
;********************************************************************************
CS BIT P1.5
LOAD BIT P1.2
DIN BIT P1.0
DCLK BIT P1.1
DOUT BIT P3.3
;**********************************
AD_DATA EQU 036H ;采集數據緩沖區
TIMER DATA 030H
TIMER1 DATA 031H
TIMER2 DATA 032H
TIMER3 DATA 033H
;***********************************
ORG 0000H
JMP MAIN
ORG 0030H
MAIN: MOV P1,#61H ;禁用其它芯片
TCL549: MOV R3,#08H ;計數器
CLR CS ;開啟芯片
ACALL DELAY ;延時
READ: CLR DCLK ;讀549芯片數據
NOP
MOV C,DIN
SETB DCLK
RLC A
DJNZ R3,READ
MOV AD_DATA,A
SETB CS
LCALL DELAY_1S ;延時
SJMP START ;調數碼管顯示程序
;*********************************************
;延時子程序
;**********************************************
DELAY:MOV R5,#01H
H0: MOV R7,#0FFH
H1: DJNZ R7,H1
DJNZ R5,H0
RET
;***********************************
;數碼管顯示程序
;***********************************
START:
SETB CS ;禁用549芯片
NOP
mov p1,#60h ;禁止其它芯片
CLR DIN ;初始化CH451
SETB DCLK
SETB DIN
SETB LOAD
SETB DOUT
NOP
MOV B,#04H ;設置CH451
MOV A,#03H ;關看門狗開顯示鍵盤
nop
LCALL WRITE
NOP
LCALL DELAY
MOV B,#08H ;顯示位置
START1: MOV R5,#00H ;加載字數據1
TT1: LCALL ZHUAN
LCALL WRITE ;將數據送入數碼管顯示
LCALL DELAY_1S
INC R5
INC B ;顯示位置加一
CJNE R5,#02H,TT1
LCALL DELAY_1S
JMP MAIN ;返回顯示采集的數據
TAB:
DB 03FH ;0
DB 006H ;1
DB 05BH ;2
DB 04FH ;3
DB 066H ;4
DB 06DH ;5
DB 07DH ;6
DB 07H ;7
DB 07FH ;8
DB 06FH ;9
DB 77H ;A
DB 07CH ;B
DB 039H ;C
DB 5EH ;D
DB 079H ;E
DB 071H ;F
;*****************************************
;寫數據到 ch451
;******************************************
WRITE:
PUSH ACC
CLR EX0
CLR LOAD
MOV R7,#08H
WRITE_1:
RRC A
CLR DCLK
MOV DIN,C
SETB DCLK
DJNZ R7,WRITE_1
MOV A,B
MOV R7,#004H
WRITE_2:
RRC A
CLR DCLK
MOV DIN,C
SETB DCLK
DJNZ R7,WRITE_2
SETB LOAD
SETB EX1
POP ACC
RET
;**********************************
DELAY_1S:
MOV TIMER1,#1
TEST_DYA: MOV TIMER2,#255
TEST_DYA1: MOV TIMER3,#255
TEST_DYA2: NOP
NOP
DJNZ TIMER3,TEST_DYA2
DJNZ TIMER2,TEST_DYA1
DJNZ TIMER1,TEST_DYA
RET
;*************************************
;將采集數據拆為為半字節
;**************************************
ZHUAN: MOV A,AD_DATA
SWAP A
MOV AD_DATA,A
ANL A,#0FH ;屏蔽高四位
MOV DPTR,#TAB
MOVC A,@A+DPTR
RET
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -