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

📄 12864.asm

📁 单片机12864液晶时钟显示程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
           ADD      A,#48
           MOV      DIS_BUF_L11,A
           MOV      A,B
           ADD      A,#48
           MOV      DIS_BUF_L12,A
           MOV      DIS_BUF_L13,#3AH;":"
           MOV      A,DIS_S
           MOV      B,#10
           DIV      AB
           ADD      A,#48
           MOV      DIS_BUF_L14,A
           MOV      A,B
           ADD      A,#48
           MOV      DIS_BUF_L15,A
           RET
;************显示处理程序*********************
DISPLAY_PRO: MOV      R0,#00H
           LCALL    LCD_POS
           MOV      R0,DIS_BUF_U0
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_U1
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_U2
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_U3
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_U4
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_U5
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_U6
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_U7
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_U8
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_U9
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_U10
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_U11
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_U12
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_U13
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_U14
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_U15
           LCALL    LCD_WDAT

           MOV      R0,#90H
           LCALL    LCD_WCMD
           MOV      R0,DIS_BUF_L0
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_L1
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_L2
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_L3
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_L4
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_L5
           LCALL    LCD_WDAT
           MOV      R0,#' '
           LCALL    LCD_WDAT
           MOV      R0,#' '
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_L8
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_L9
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_L10
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_L11
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_L12
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_L13
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_L14
           LCALL    LCD_WDAT
           MOV      R0,DIS_BUF_L15
           LCALL    LCD_WDAT

           MOV 	  R0,#88h       ;显示广告
           LCALL    lcd_wcmd
           MOV      DPTR,#LINE2
			  MOV      R7,#10h
           LCALL    entline
                
           MOV      R0,#98h			;显示纪念日
           LCALL    lcd_wcmd
           MOV      DPTR,#LINE1
			  LCALL    JNR
	 		  MOV      R7,#10h
           LCALL    entline
           RET
;**********LCD忙标志BF测试程序**************
BF_TEST:   PUSH      ACC            ;保护ACC数据
           CLR     RS              ;RS=0
           SETB    RW              ;RW=1
           SETB    EP              ;E=高电平
           NOP
           NOP
           NOP
           NOP
           MOV     COMDAT,#0FFH         ;将comdat口置1,保证后面数据正确读入(由 comdat口结构决定)
WT_BF:     NOP                      ;
           JB      COMDAT.7,WT_BF       ;DB7=0  LCD控制器空闲,DB7=1  LCD控制器忙
           CLR      EP
           POP      ACC              ;释放ACC数据
           RET
;**********LCD指令写入程序******************
;程序入口:R0
LCD_WCMD:  LCALL      BF_TEST            ;检测忙标志
           CLR      RS
           CLR      RW
           CLR      EP
           NOP
           NOP
           MOV      COMDAT,R0
           NOP
           NOP
           NOP
           NOP
           SETB      EP
           NOP
           NOP
           NOP
           NOP
           CLR      EP
           RET
;**************************88
ENTLINE: CLR      A
         MOVC     A,@A+DPTR       ;查表取数据
         MOV      R0,A
         LCALL    lcd_wdat          ;送显示
         INC      DPTR
         DJNZ     R7,entline
         RET
;**********LCD数据写入程序****************
;程序入口:R0
LCD_WDAT:  LCALL    BF_TEST            ;检测忙标志
           SETB     RS
           CLR      RW
           CLR      EP
           NOP
           NOP
           MOV      COMDAT,R0
           NOP
           NOP
           NOP
           NOP
           SETB      EP
           NOP
           NOP
           NOP
           NOP
           CLR      EP
           RET
;**********LCD数据指针位置子程序**************
;程序入口:R0
LCD_POS:   MOV      A,R0
           ORL      A,#80H
           MOV      R0,A
           LCALL    LCD_WCMD
           RET
;**********纪念日子程序********************
JNR:	MOV A,MONTH		;判断月份
	CJNE A,#01,M2
	MOV A,DATE		;判断纪念日
	CJNE A,#01,D12
	MOV DPTR,#J0101
		LJMP 		MM
  D12:MOV A,DATE		;判断纪念日
	CJNE 		A,#28,MM1
	MOV 		DPTR,#J0128
MM1:	LJMP 		MM

M2:	CJNE A,#02,M3		;判断月份
	MOV A,DATE
	CJNE A,#02,D22
	MOV DPTR,#J0202
	LJMP MM
  D22:MOV A,DATE
	CJNE A,#14,MM2
	MOV DPTR,#J0214
  MM2:LJMP MM

M3:    CJNE A,#03,M4		;判断月份
	MOV A,DATE
	CJNE A,#01,D32
	MOV DPTR,#J0301
	LJMP MM
  D32:MOV A,DATE
	CJNE A,#03,D33
	MOV DPTR,#J0303
	LJMP MM
  D33:MOV A,DATE
	CJNE A,#08,D34
	MOV DPTR,#J0308
	LJMP MM
  D34:MOV A,DATE
	CJNE A,#12,D35
	MOV DPTR,#J0312
	LJMP MM
  D35:MOV A,DATE
	CJNE A,#13,D36
	MOV DPTR,#J0313
	LJMP MM    
  D36:MOV A,DATE
	CJNE A,#14,D37
	MOV DPTR,#J0314
	LJMP MM
  D37:MOV A,DATE
	CJNE A,#15,D38
	MOV DPTR,#J0315
	LJMP MM
  D38:MOV A,DATE
	CJNE A,#17,D39
	MOV DPTR,#J0317
	LJMP MM
  D39:MOV A,DATE
	CJNE A,#21,D310
	MOV DPTR,#J0321
	LJMP MM
 D310:MOV A,DATE
	CJNE A,#22,D311
	MOV DPTR,#J0322
	LJMP MM
 D311:MOV A,DATE
	CJNE A,#22,MM3
	MOV DPTR,#J0322
  MM3:LJMP MM

M4:	CJNE A,#04,M5		;判断月份
	MOV A,DATE
	CJNE A,#01,D42
	MOV DPTR,#J0401
	LJMP MM
  D42:MOV A,DATE
	CJNE A,#07,D43
	MOV DPTR,#J0407
	LJMP MM
  D43:MOV A,DATE
	CJNE A,#08,D44
	MOV DPTR,#J0408
	LJMP MM
  D44:MOV A,DATE
	CJNE A,#13,MM4
	MOV DPTR,#J0413
  MM4:LJMP MM

M5:	CJNE A,#05,M6		;判断月份
	MOV A,DATE
	CJNE A,#01,D52
	MOV DPTR,#J0501
	LJMP MM
  D52:MOV A,DATE
	CJNE A,#04,D53
	MOV DPTR,#J0504
	LJMP MM
  D53:MOV A,DATE
	CJNE A,#05,D54
	MOV DPTR,#J0505
	LJMP MM
  D54:MOV A,DATE
	CJNE A,#08,D55
	MOV DPTR,#J0508
	LJMP MM
  D55:MOV A,DATE
	CJNE A,#12,D56
	MOV DPTR,#J0512
	LJMP MM
  D56:MOV A,DATE
	CJNE A,#12,D57
	MOV DPTR,#J0512
	LJMP MM
  D57:MOV A,DATE
	CJNE A,#15,D58
	MOV DPTR,#J0515
	LJMP MM
  D58:MOV A,DATE
	CJNE A,#31,MM5
	MOV DPTR,#J0531
  MM5:LJMP MM

M6:	CJNE A,#06,M7		;判断月份
	MOV A,DATE
	CJNE A,#01,D62
	MOV DPTR,#J0601
	LJMP MM
  D62:MOV A,DATE
	CJNE A,#05,D63
	MOV DPTR,#J0605
	LJMP MM
  D63:MOV A,DATE
	CJNE A,#06,D64
	MOV DPTR,#J0606
	LJMP MM
  D64:MOV A,DATE
	CJNE A,#13,D65
	MOV DPTR,#J0613
	LJMP MM
  D65:MOV A,DATE
	CJNE A,#26,MM6
	MOV DPTR,#J0626
  MM6:LJMP MM

M7:	CJNE A,#07,M8		;判断月份
	MOV A,DATE
	CJNE A,#01,D72
	MOV DPTR,#J0701
	LJMP MM
  D72:MOV A,DATE
	CJNE A,#07,D73
	MOV DPTR,#J0707
	LJMP MM
  D73:MOV A,DATE
	CJNE A,#11,MM7
	MOV DPTR,#J0711
  MM7:LJMP 		MM

M8:	CJNE 	A,#08,M9		;判断月份
	MOV 	A,DATE
	CJNE 	A,#01,D82
	MOV 	DPTR,#J0801
	LJMP 	MM
  D82:MOV 	A,DATE
	CJNE 	A,#08,D83
	MOV 	DPTR,#J0808
	LJMP 	MM
  D83:MOV 	A,DATE
	CJNE 	A,#15,MM8
	MOV 	DPTR,#J0815
  MM8:LJMP 	MM

M9:	CJNE	A,#09,M10		;判断月份
	MOV 	A,DATE
	CJNE 	A,#10,D92
	MOV 	DPTR,#J0910
	LJMP 	MM
  D92:MOV 	A,DATE
	CJNE 	A,#18,D93
	MOV 	DPTR,#J0918
	LJMP 	MM
  D93:MOV 	A,DATE
	CJNE 	A,#20,D94
	MOV 	DPTR,#J0920
	LJMP 	MM
  D94:MOV 	A,DATE
	CJNE 	A,#27,MM9
	MOV 	DPTR,#J0927
  MM9:LJMP 	MM

M10:	CJNE 	A,#10,M11		;判断月份
	MOV 	A,DATE
	CJNE 	A,#01,D102
	MOV 	DPTR,#J1001
	LJMP 	MM
 D102:MOV 	A,DATE
	CJNE	A,#04,D103
	MOV 	DPTR,#J1004
	LJMP 	MM
 D103:MOV 	A,DATE
	CJNE 	A,#13,D104
	MOV 	DPTR,#J1013
	LJMP 	MM
 D104:MOV 	A,DATE
	CJNE 	A,#24,MM10
	MOV 	DPTR,#J1024
 MM10:LJMP 	MM

M11:	CJNE 	A,#11,M12		;判断月份
	MOV 	A,DATE
	CJNE 	A,#10,D112
	MOV 	DPTR,#J1110
	LJMP 	MM
 D112:MOV 	A,DATE
	CJNE 	A,#17,MM11
	MOV 	DPTR,#J1117
 MM11:LJMP 	MM

M12:	MOV 	A,DATE
	CJNE 	A,#01,D122
	MOV 	DPTR,#J1201
	LJMP 	MM
 D122:MOV 	A,DATE
	CJNE 	A,#23,D123
	MOV 	DPTR,#J1223
	LJMP 	MM
 D123:MOV 	A,DATE
	CJNE 	A,#24,D124
	MOV 	DPTR,#J1224
	LJMP 	MM
 D124:MOV 		A,DATE
	CJNE 	A,#25,MM
	MOV 	DPTR,#J1225
	LJMP	MM
MM:	RET
;**********延时约5ms子程序********************
DELAY_5ms:      MOV      R7,#0B0H
DELAY1:         MOV      R6,#3CH
DELAY2:         DJNZ     R6,DELAY2
           		 DJNZ     R7,DELAY1
           		 RET
;**********延时约100ms子程序********************
DELAY_200ms:    MOV      R5,#14H
DELAY21: LCALL	DELAY_5ms
		   DJNZ     R5,DELAY21
       	RET
;***********星期自动运算月参变数**************
MONTH_TAB:      DB      0
           DB      0
           DB      3
           DB      3
           DB      6
           DB      1
           DB      4
           DB      6
           DB      2
           DB      5
           DB      0
           DB      3
           DB      5

LINE2: DB 'XL2000综合实验仪'
LINE1: DB "  快乐每一天    "
J0101: DB "Happy New Year!!"
J0128: DB "  世界麻风日    "
		
J0202: DB "  世界湿地日    "
J0214: DB "  今天是情人节  "

J0301: DB "  国际海豹日    "
J0303: DB "  全国爱耳日    "
J0308: DB "  三八妇女节    "
J0312: DB "    植树节      "
J0313: DB "  世界气象日    "
J0314: DB "世界防治结核病日"
J0315: DB "  消费者权益日  "
J0317: DB "  国际航海日    "
J0321: DB "  世界森林日    "
J0322: DB "    世界水日    "

J0401: DB "愚人节  小心上当"
J0407: DB "  世界卫生日    "
J0408: DB "    复活节      "
J0413: DB "  黑色星期五    "

J0501: DB "  国际劳动节    "
J0504: DB "    青年节      "
J0505: DB "近日注意母亲节  "
J0508: DB "  世界红十字日  "
J0512: DB "  汶川大地震    "
J0515: DB "  国际家庭日    "
J0531: DB "  世界无烟日    "

J0601: DB "  国际儿童节    "
J0605: DB "  世界环境日    "
J0606: DB "  全国爱眼日    "
J0613: DB "近日注意父亲节  "
J0626: DB "  国际禁毒日    "

J0701: DB "中国共产党的生日"
J0707: DB "抗日战争记念日  "
J0711: DB "  世界人口日    "

J0801: DB "  八一建军节    "
J0808: DB "  中国男子节    "
J0815: DB "抗战胜利记念日  "

J0910: DB "  中国教师节    "
J0918: DB "九一八事变纪念日"
J0920: DB "  国际爱牙日    "
J0927: DB "  世界旅游日    "

J1001: DB "  中国国庆节    "
J1004: DB "  世界动物日    "
J1013: DB "  国际教师节    "
J1024: DB "    联合国日    "

J1110: DB "  世界青年节    "
J1117: DB "  世界学生节    "

J1201: DB "  世界艾滋病日  "
J1223: DB "  明晚平安夜    "
J1224: DB "  今晚平安夜    "
J1225: DB "    圣诞快乐    "

END

⌨️ 快捷键说明

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