📄 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 + -