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

📄 pt6311_2.asm

📁 完整功放的控制程序
💻 ASM
字号:
;*******************************第二个PT6311 器件子程序集 ****************************
;VFD控制驱动器
;占用:	ACC, R0, R1

	;************ 公共变量定义 ****************
	PUBLIC	TWVFD_6311
	PUBLIC	TSETUP_6311
	PUBLIC  TDIM_VFD
	PUBLIC  TWLED_6311
       
       	;************* 变量说明 *******************
       	TBC_DIN_6311	BIT	P2.6	;数据输入脚
       	TBC_DOUT_6311	BIT	P2.6	;数据输出脚
	TBC_CLK_6311	BIT	P3.6	;时钟
	TBC_STB_6311	BIT	P3.4	;使能脚
	
	;************** 常数定义 ******************
	TPT6311KEY_NUM 	EQU   24        ;现在用的6311键总数(48个)
	TREAD_6311KEY  	EQU   42H       ;PT6311读键值命令符
;=============================== 公共子程序 (可被C调用) ===============================

;************* 写6311显示内存  **************
;********************************************
;参数1: PAR	要写的显存地址(MSB: 1 1 B5,B4,B3,B2,B1,B0 :LSB)(B5-B0 MEM START ADDRESS)
;参数2: PAR+03H	写的高1位数据
;参数3: PAR+02H 写的中8位数据
;参数4: PAR+01H	写的低8位数据(先送出, 且从bit0位开始)
;返回:
;占用: 	ACC

TWVFD_6311:                	 ;发送数据到PT6311进行显示
          CLR   TBC_STB_6311      ;pt6311 stb=0 (ENABLE)
          MOV   A,#40H            ;data set command--write data to disp mem by increment address mod
          LCALL TDISP             ;sendn data to pt6311 here is data set command
          SETB  TBC_STB_6311      ;STD=1 (DISABLE)
          NOP
          CLR   TBC_STB_6311      ;PT6311 ENABLE
          MOV   A, PAR        	  ;pt6311 disp mem start mem in 1DH
          LCALL TDISP             ;send data to pt6311 here is address set command
          
          CLR   C
          MOV   A,PAR+02H
          RLC   A
          SETB  ACC.0             ;P31段固定点亮
          MOV   PAR+02H,A
          MOV   A,PAR+01H
          RLC   A
          MOV   PAR+01,A
          
          MOV   A, PAR+02H
          LCALL TDISP             ;send data to pt6311 here is transmission data
          MOV   A, PAR+01H
          LCALL TDISP             ;send data to pt6311 here is transmission data
          SETB  TBC_STB_6311      ;PT6311 DISABLE
          RET


;******** 读键盘按键子程序  ************
;***************************************
;参数:
;返回: PAR 	返回键值, 0=无按键
;占用: ACC

;*********************************************
;参数:
;返回:
;占用: ACC

TSETUP_6311:
       CLR   TBC_STB_6311      ;ready to send data to pt6311 STB
       MOV   A,#0BH            ;0000,1011=0BH  12D,16P
       LCALL TDISP             ;send command to pt6311,here is set displayer mod,11dig/17seg
       SETB  TBC_STB_6311      ;STD
       RET

;********** 打开荧光显示  **************
;参数:
;返回:
;占用: 	ACC

TDIM_VFD: CLR   TBC_STB_6311             ;STD=0  点亮显示字符
	  NOP
	  MOV   A,DIM_NUM
	  CJNE  A,#00H,TLBL_DIM_00
	  MOV   A,#88H
	  LJMP  TLBL_DIM_11
TLBL_DIM_00:
	  CJNE  A,#01H,TLBL_DIM_1
	  MOV   A,#89H
	  LJMP  TLBL_DIM_11
TLBL_DIM_1:	  
	  CJNE  A,#02H,TLBL_DIM_2
	  MOV   A,#8AH
	  LJMP  TLBL_DIM_11
TLBL_DIM_2:	  
	  CJNE  A,#03H,TLBL_DIM_3
	  MOV   A,#8BH
	  LJMP  TLBL_DIM_11
TLBL_DIM_3:	  
	  CJNE  A,#04H,TLBL_DIM_4
	  MOV   A,#8CH
	  LJMP  TLBL_DIM_11
TLBL_DIM_4:	  
	  CJNE  A,#05H,TLBL_DIM_5
	  MOV   A,#8DH
	  LJMP  TLBL_DIM_11
TLBL_DIM_5:	  
	  CJNE  A,#06H,TLBL_DIM_6
	  MOV   A,#8EH
	  LJMP  TLBL_DIM_11
TLBL_DIM_6:
          MOV    A,#8FH
TLBL_DIM_11:     

          MOV   C,B_CLOSE_MACH
          MOV   ACC.3,C
               
          LCALL TDISP             	;send data to pt6311,here is control disp dimming
          NOP
          SETB  TBC_STB_6311             ;STD=1
          RET
;********** 清除11段数据显示(清荧光屏) ********

;********** 送数据到6311的LED口 *********
;****************************************
;参数:	PAR	要送入的数据
;返回:
;占用: 	ACC

TWLED_6311:
    CLR  TBC_STB_6311            ;pt6311 stb=0 (ENABLE)
    MOV  A,#41H            	;data set command--write data to LED PORT
    LCALL TDISP             	;sendn data to pt6311 here is data set command
    MOV  A, PAR         	;pt6311 LED DATA
    LCALL TDISP             	;send data to pt6311 here is address set command
    SETB TBC_STB_6311            ;PT6311 DISABLE
    RET

;================================= 文件内部子程序 ================================
;************** 写一字节到6311 ************
;******************************************
;参数:	ACC	要写入的数据(从bit0位开始送出)
;返回:
;占用: 	ACC, R0

TDISP:    MOV   R0,#008H         	;send command to pt6311
          CLR   C
TLBL206:  CLR   TBC_CLK_6311            ;PT6311 CLK
          RRC   A
          MOV   TBC_DIN_6311,C          ;send data to pt6311
          NOP
          NOP
          NOP
          NOP
          NOP
          SETB  TBC_CLK_6311            ;CLK 
          NOP
          NOP
          NOP
          NOP
          DJNZ  R0, TLBL206
          SETB  TBC_DIN_6311
          SETB  TBC_CLK_6311            ;BC_CLK_6311 normal high
          RET
;******************************************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -