⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tlc549.asm

📁 lyd-sy-5100单片机开发板的示例程序 分为C语言版本和ASM汇编版本。其他牌子的板子也可以使用其C语言版本。
💻 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 + -