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

📄 define.inc.bak

📁 用汇编语言实现时间和姓名在LCD上实现的程式
💻 BAK
字号:
.PAGE0 
InitializationValue	equ		$00H
;延时时间
T_150ms				equ		$D6h		;;150ms Timing
T_100ms				equ		$8Fh		;;100ms Timing
T_50ms				equ		$47h		;;50ms Timing
;PA口的设定
P_ADir_High			equ		%11111111
P_AAttrib_High	equ		%00000000 
P_AData_High		equ		%11111111 
P_AData_Low			equ		%00000000 
P_A0_Reverse		equ		%00000001
sP_A0_Reverse		equ		%11111111
sP_A1_Reverse		equ		%00000000
;PB口的设定
P_B_initialize	equ		%00000111
P_B0_Value			equ		%00000001
P_B1_Value			equ		%00000010
P_B2_Value			equ		%00000100
FunSetTime			equ		P_B0_Value
FunTimeIncHour	equ		P_B0_Value
FunTimeIncMin		equ		P_B0_Value

ModeModifyHour	equ		P_B1_Value
ModeModifyMin		equ		P_B1_Value
ModeKeyOK				equ		P_B1_Value

FunTimeDec			equ		P_B2_Value
;;日期
rMinutesData		ds		1
rHourData				ds		1
DateTemp				ds		1

DateHour				equ		%00001000
DateMinutes			equ		%00010000

rTimingValue 		ds		1
rHour_Initialize  	equ  	$00h
rMinutes_Initialize equ  	$00h
;-----------------------------------------------------------
;时间
rTiming_Initialize_Sec	equ	 	$00h
r1_2sClockTest					equ		$FFH

P_0AH_TimerLow		equ		$FFH
P_0BH_TimerHigh		equ		$BFH  ;;100ms=0.1S[3276.8][0.5S=3276.8*5=$4000H;FFFF-4000=BFFFH]

rTenSec				equ		$0Ah	
rOneMin			 	equ		$3Ch	;1min=60s OK!Pass
rFiveSec			equ		$05h	;1min=60s OK!Pass
rOneHour			equ		$3ch	;1h=60min
rOneDay				equ		$18h	;1d=24h
;;延时
R_Delay_High		 	ds		1
R_Delay_Low			 	ds		1	
;;Clock and timer
R_TimerSecond			ds		1
R_TimerMinute			ds		1
TimeTwoDotsValue	ds		1
;-------------------------Name----------------------------------------
NumberR				equ		16h	
Numberi				equ		12h	
NumberC				equ		0ch	
Numberk				equ		20h
;----------------------------------------------------------------------
C_LCD_1_8DutyFrameRate	equ	0ah		;;1/8duty, when data=0A,frame rate=42.7Hz
;-------------------------------------------------------------
;; 乘除法运算寄存器
rBcdBuffer			ds      4       ;;hex to bcd register
rByDivision			ds      4       ;;Division
rDivision				ds      4				;;
rResult					ds      4				;;
rFaciend				equ     rByDivision     ;;mux
rIER						equ     rDivision       ;;mux
rDiv4Value  		equ		$04h
rDiv5Value  		equ		$05h
rDiv3Value  		equ		$03h
;;LCD
rLocTmp         	ds      4
rHexCodeTmp     	equ     rResult
rCountTmp       	equ     rResult+1
rMaskTmp        	equ     rResult+2
R_SendDataCT			ds		1
R_SendData				equ		rDivision
R_SampleIntRealTime	ds		1

R_KeyMenuLevel		ds	1
FlagLCDFlash			equ	%10000000	;;Set if need flash LCD
FlagLCDFlashIsOn	equ	%01000000	;;Set if flash digital is on
R_KeyInputLocation	ds	1				;Which location(0~9)
R_KeyInputNumber		ds	1				;Number(0~9)
;;************************************************
;;  LCD basic definition
;;************************************************
P_LCDPortStarAddr		.EQU		$50H
c0      		equ     0
c1      		equ     1
c2      		equ     2
c3      		equ     3
c4      		equ     4
c5      		equ     5
c6      		equ     6
c7      		equ     7

s0      		equ     0
s1      		equ     1
s2     			equ     2
s3      		equ     3
s4      		equ     4
s5      		equ     5
s6      		equ     6
s7      		equ     7

s8      		equ     8
s9      		equ     9
s10     		equ     10
s11     		equ     11
s12     		equ     12
s13     		equ     13
s14    			equ     14
s15     		equ     15

s16     		equ     16
s17     		equ     17
s18     		equ     18
s19     		equ     19
s20     		equ     20
s21     		equ     21
s22     		equ     22
s23     		equ     23

s24     		equ     24
s25     		equ     25
s26     		equ     26
s27     		equ     27
s28     		equ     28
s29     		equ     29
s30     		equ     30
s31     		equ     31
s32     		equ     32

cTurn_On		equ		%00000001
cTurn_Off		equ		%00000000
;;-------------------------------------------------------------------------------
;;LCD Icon table index:(Total 26)
;;-------------------------------------------------------------------------------
cIcon_SET						equ		0					;;Set
cIcon_REC						equ		1					;;record
cIcon_PW        		equ 	2   			;;Password
cIcon_START					equ		3   			;;Start delay time
cIcon_BatOutLine		equ		4					;;Battery outline
cIcon_BatLeftHalf		equ		5					;;Battery left half
cIcon_BatRightHalf	equ		6					;;battery right half

cIcon_High	        equ     7       ;;HIGH
cIcon_Low	        	equ     8       ;;LOW
cIcon_Temp          equ     9       ;;TEMP
cIcon_Temp1         equ     10      ;;(TEMP) 1
cIcon_Temp2         equ     11      ;;(TEMP) 2
cIcon_EXCUR         equ     12      ;;EXCUR

cIcon_OK            equ     13      ;;OK
cIcon_NotOK         equ     14      ;;Not OK
cIcon_Minus					equ			15			;;Minus
cIcon_YearDot     	equ     16      ;;Year Dot
cIcon_MonthDot     	equ     17      ;;MonthDot
cIcon_DegC	       	equ     18      ;;DegC
cIcon_DegF         	equ     19      ;;DegF

cIcon_INT           equ     20      ;;INT
cIcon_Clock	        equ     21      ;;Clock
cIcon_TimeHighBit   equ     22      ;;Clock 1
cIcon_ClockDot      equ     23      ;;Clock Dot
cIcon_HM						equ			24			;;"HM" hour and min 
;;-------------------------------------------------------------------------------
;;LCD Digital table index:
;;-------------------------------------------------------------------------------
Digital_1       	equ     0      ;;8 8 8 8
Digital_2       	equ     1      ;;| | | |
Digital_3       	equ     2      ;;1 2 3 4
Digital_4       	equ     3      ;;
Digital_5       	equ     4      ;;
Digital_6       	equ     5      ;;
Digital_8       	equ     6      ;;
Digital_9       	equ     7      ;;
Digital_10       	equ     8      ;;
Digital_11       	equ     9      ;;
;;-------------------------------------------------------------------------------
;;LCD Digital table index:
;;-------------------------------------------------------------------------------
Number_0        	equ     0
Number_1        	equ     1
Number_2					equ     2
Number_3					equ     3
Number_4					equ     4
Number_5        	equ     5
Number_6        	equ     6
Number_7        	equ     7
Number_8        	equ     8
Number_9        	equ     9
Number_A        	equ     10
Number_B        	equ     11
Number_C        	equ     12
Number_D        	equ     13
Number_E        	equ     14
Number_F        	equ     15
Number__        	equ     16
Number_n        	equ     17
Number_i        	equ     18
Number_t        	equ     19
Number_L        	equ     20
Number_H        	equ     21
Number_r        	equ     22
Number_o        	equ     23
Number_l        	equ     24
Number_s         	equ     25    ;;this is up bar
Number_NONE     	equ     26
Number_u        	equ     27
Number_x        	equ     28    ;;left half "|"
;;************************************************
;; macro definitions for lcd module maintained
;;************************************************

mCom_Seg:        .MACRO  com,seg
                  db     seg.mod.8
                  db     com*4+(seg/8)
                 .ENDM
;;*************************************************************
;;显示字符,显示数据(包括 A B C d E F _ n i t L H t o l 1) 
;;*************************************************************
mShowIcon    .MACRO  index,switch
		ldx     #switch
		lda     #index
		jsr     F_ShowChar
		.ENDM
             
mDisplayDigit:   .MACRO  locate,number
		lda     #locate
		ldx     #number
		jsr     F_ShowDigital
		.ENDM    
;;//**************************
;;//from marco.inh
%WaitMode  .MACRO
		LDA	   #D_Wait_1st_Byte
		STA	   P_0FH_System_CTL
		LDA	   #D_Wait_Mode
		STA	   P_0FH_System_CTL
		.ENDM

%NormalModeMode	 .MACRO
		LDA	   #D_Wait_1st_Byte
		STA	   P_0FH_System_CTL
		LDA	   #D_Normal_Mode
		STA	   P_0FH_System_CTL
		.ENDM

%X32KAutoMode  .MACRO
		LDA	   #D_32K_Strong_Auto_1st_Byte
	   STA	   P_0FH_System_CTL
	   LDA	   #D_32K_AutoMode
	   STA	   P_0FH_System_CTL
	   .ENDM

%X32KStrongMode	 .MACRO
	   LDA	   #D_32K_Strong_Auto_1st_Byte
	   STA	   P_0FH_System_CTL
	   LDA	   #D_32K_StrongMode
	   STA	   P_0FH_System_CTL
	   .ENDM

%WakeUp_From_RESET .MACRO
	   LDA	   #D_WakeUp_Ctl_1st_Byte
	   STA	   P_0FH_System_CTL
	   LDA	   #D_WakeUp_From_RESET
	   STA	   P_0FH_System_CTL
	   .ENDM

%WakeUp_From_NextInst	  .MACRO
	   LDA	   #D_WakeUp_Ctl_1st_Byte
	   STA	   P_0FH_System_CTL
	   LDA	   #D_WakeUp_From_NextInst
	   STA	   P_0FH_System_CTL
	   .ENDM

%LowSpeedCLK_Disable	 .MACRO
	   LDA	   #D_LowSpeedCLK_1st_Byte
	   STA	   P_0FH_System_CTL
	   LDA	   #D_LowSpeedCLK_Disable
	   STA	   P_0FH_System_CTL
	  .ENDM

%LowSpeedCLK_Enable	.MACRO
	   LDA	   #D_LowSpeedCLK_1st_Byte
	   STA	   P_0FH_System_CTL
	   LDA	   #D_LowSpeedCLK_Enable
	   STA	   P_0FH_System_CTL
	  .ENDM

%HighSpeedCLK_Enable	 .MACRO
	   LDA	   #D_HighSpeedCLK_1st_Byte
	   STA	   P_0FH_System_CTL
	   LDA	   #D_HighSpeedCLK_Enable
	   STA	   P_0FH_System_CTL
	  .ENDM

%HighSpeedCLK_Disable	  .MACRO
	   LDA	   #D_HighSpeedCLK_1st_Byte
	   STA	   P_0FH_System_CTL
	   LDA	   #D_HighSpeedCLK_Disable
	   STA	   P_0FH_System_CTL
	  .ENDM
%S_Show_DotOne	 .MACRO
	   ldx     #cTurn_On
	   lda     #cIcon_YearDot
	   jsr     F_ShowChar
	   .ENDM	  
	   
%S_Show_DotTwo	 .MACRO
	   ldx     #cTurn_On
	   lda     #cIcon_MonthDot
	   jsr     F_ShowChar
	   .ENDM	    

%S_Show_START	 .MACRO
	   ldx     #cTurn_On
	   lda     #cIcon_START
	   jsr     F_ShowChar
	   .ENDM
%S_Show_FullBattery	 .MACRO
	%S_Show_Battery
	%S_Show_BL
	%S_Show_BR
	.ENDM   
%S_Show_Battery	 .MACRO
	   ldx     #cTurn_On
	   lda     #cIcon_BatOutLine
	   jsr     F_ShowChar
	   .ENDM
%S_Show_BL	 .MACRO
	   ldx     #cTurn_On
	   lda     #cIcon_BatLeftHalf
	   jsr     F_ShowChar
	   .ENDM
%S_Show_BR	 .MACRO
	   ldx     #cTurn_On
	   lda     #cIcon_BatRightHalf
	   jsr     F_ShowChar
	   .ENDM
%S_ShowOK	 .MACRO
	   ldx     #cTurn_On
	   lda     #cIcon_OK
	   jsr     F_ShowChar
	   .ENDM
%S_TurnOffOK	 .MACRO
	   ldx     #cTurn_Off
	   lda     #cIcon_OK
	   jsr     F_ShowChar
	   .ENDM
%S_ShowSET	 .MACRO
	   ldx     #cTurn_On
	   lda     #cIcon_SET
	   jsr     F_ShowChar
	   .ENDM
%S_Show_TimeTwoDots	 .MACRO
	   ldx     TimeTwoDotsValue
	   lda     #cIcon_ClockDot
	   jsr     F_ShowChar    
	   .ENDM	   
%S_Show_TimeDots	 .MACRO
	   ldx     #cTurn_On
	   lda     #cIcon_ClockDot
	   jsr     F_ShowChar    
	   .ENDM
%S_FlashClock	 .MACRO
	   ldx     TimeTwoDotsValue
	   lda     #cIcon_Clock
	   jsr     F_ShowChar
	   .ENDM
%S_Shut_Clock	 .MACRO
	   ldx     #cTurn_Off
	   lda     #cIcon_Clock
	   jsr     F_ShowChar
	   .ENDM
%S_Show_Clock	 .MACRO
	   ldx     #cTurn_On
	   lda     #cIcon_Clock
	   jsr     F_ShowChar
	   .ENDM	 	   	   
%S_ShutSET	 .MACRO
	   ldx     #cTurn_Off
	   lda     #cIcon_SET
	   jsr     F_ShowChar
	   .ENDM
;%S_Shut_START	 .MACRO
;	   ldx     #cTurn_Off
;	   lda     #cIcon_START
;	   jsr     F_ShowChar
;	   .ENDM

⌨️ 快捷键说明

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