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

📄 tec12232.asm

📁 12864LCD驱动 12864LCD驱动 12864LCD驱动 12864LCD驱动 12864LCD驱动 12864LCD驱动 12864LCD驱动 12864LCD驱动
💻 ASM
字号:
;MCU: AT89C51  Frequence 12MHz
row_num		equ	20h
page_num	equ	21h
frame_num	equ	22h
page_address	equ	23h
;data_comd_sel	equ	p3.7	;a0
;mas_e		equ	p3.5	;e1
;slv_e		equ	p3.6	;e2
;w_r		equ 	p2.5	;w/r

;data_comd_sel	equ	p3.1	;a0
;mas_e		equ	p3.3	;e1
;slv_e		equ	p3.2	;e2
;w_r		equ 	p3.0	;w/r

data_comd_sel	equ	p3.0	;a0
mas_e		equ	p3.2	;e1
slv_e		equ	p3.3	;e2
w_r		equ 	p3.1	;w/r


lcd_data   equ  p1	;d0--d7

		org 0000h
       		jmp init
		org 0030h
init:
		mov sp,#60h
                clr mas_e
                clr slv_e
		mov lcd_data,#0e2h		;reset(master chip)
		call mas_tran_comd
		call slv_tran_comd
                call de
		mov lcd_data,#0a0h            ;adc select clockwise
		call mas_tran_comd
		call slv_tran_comd
                call de
		mov lcd_data,#0a4h		;static driver off
		call mas_tran_comd
		call slv_tran_comd
                call de
		mov lcd_data,#0a9h		;duty select 1/32 duty
		call mas_tran_comd
		call slv_tran_comd
                call de
		mov lcd_data,#0afh		;whole display on(master)
		call mas_tran_comd
		call slv_tran_comd
                call de
		mov lcd_data,#0e2h		;reset(slave chip)
		call mas_tran_comd
		call slv_tran_comd
                call de
		mov lcd_data,#0a0h            ;adc select clockwise
		call mas_tran_comd
                call slv_tran_comd
                call de
		mov lcd_data,#0a4h		;static driver off
		call mas_tran_comd
		call slv_tran_comd
                call de
		mov lcd_data,#0a9h		;duty select 1/32 duty
		call mas_tran_comd
		call slv_tran_comd
                call de
		mov lcd_data,#0afh		;whole display on(slave)
		call mas_tran_comd
		call slv_tran_comd
                call de

		mov dptr,#picture
		mov page_address,#0b8h
		mov page_num,#4
nextpage:	mov row_num,#61
		mov lcd_data,page_address
		call mas_tran_comd
                call slv_tran_comd
		mov lcd_data,#00
		call mas_tran_comd
                call slv_tran_comd
nextrow:	mov a,#00h
		movc a,@a+dptr
		mov lcd_data,a
		call mas_tran_data
                call slv_tran_data
		inc dptr
                inc dptr
		djnz row_num,nextrow
                mov  a,dpl
                clr  c
                subb a,#63
                mov  dpl,a
                mov  a,dph
                subb a,#0
                mov  dph,a
;inc             dptr
;inc             dptr
;inc             dptr
		inc page_address
		djnz page_num,nextpage
sjmp $
                mov page_address,#0b8h
                mov page_num,#4
_nextpage:      mov row_num,#61
		mov lcd_data,page_address
		call slv_tran_comd
		mov lcd_data,#00h
		call slv_tran_comd
_nextrow:	mov a,#00h
		movc a,@a+dptr
		mov lcd_data,a
		call slv_tran_data
		inc dptr
		djnz row_num,_nextrow
		inc page_address
		djnz page_num,_nextpage
		call delay
		mov frame_num,#8	;set frame number
		mov dptr,#graph		;set graph begin address
next_frame: 	mov page_num,#4		;set page number
		mov page_address,#0b8h	;set page begin address
  next_page:	mov row_num,#31		;send row number
  		mov lcd_data,page_address	;send page address
		call mas_tran_comd
		mov lcd_data,#00h		;send begin row address
		call mas_tran_comd
   next_row:	push dpl
		push dph
		mov a,#0
		movc a,@a+dptr
		mov lcd_data,a
		call mas_tran_data
		inc dptr
		mov a,#0
		movc a,@a+dptr
		mov lcd_data,a
		call mas_tran_data
		pop dph
		pop dpl
		djnz row_num,next_row
		inc page_address
		djnz page_num,next_page

 		mov page_num,#4		;set page number
		mov page_address,#0b8h	;set page begin address
  _next_page:
  		mov row_num,#31		;send row number
  		mov lcd_data,page_address	;send page address
		call slv_tran_comd
		mov lcd_data,#00h		;send begin row
		call slv_tran_comd
   _next_row:	push dpl
		push dph
		mov a,#0
		movc a,@a+dptr
		mov lcd_data,a
		call slv_tran_data
		inc dptr
		mov a,#0
		movc a,@a+dptr
		mov lcd_data,a
		call slv_tran_data
		pop dph
		pop dpl
		djnz row_num,_next_row
		inc page_address
		djnz page_num,_next_page
		inc dptr
		inc dptr
		call delay
		djnz frame_num,next_frame
		jmp init
graph:		db	0ffh,00h,00h,0ffh,0aah,0aah,55h,55h,
		db	0aah,55h,55h,0aah,0ffh,0ffh,00h,00h,
picture:
        DB	000H,000H,000H,000H,000H,
        DB      000H,000H,000H,000H,000H,000H,000H,000H,
        DB      000H,000H,000H,000H,000H,040H,040H,060H,
        DB      0C0H,0C0H,0C0H,080H,000H,000H,000H,020H,
        DB      060H,0C0H,0C0H,0C0H,080H,000H,000H,000H,
        DB      000H,000H,080H,0C0H,0E0H,060H,060H,040H,
        DB      000H,000H,000H,000H,000H,000H,000H,000H,
        DB      000H,000H,000H,000H,000H,000H,000H,000H,
        DB	000H,000H,000H,000H,000H,
        DB      000H,000H,000H,000H,000H,000H,002H,006H,
        DB      086H,082H,0C2H,042H,042H,062H,022H,032H,
        DB      092H,09BH,09BH,08FH,08EH,086H,082H,08AH,
        DB      08AH,09AH,0B3H,0B3H,0A3H,082H,082H,086H,
        DB      08AH,0D3H,0D3H,0A3H,022H,062H,042H,0C2H,
        DB      0C2H,082H,082H,083H,083H,082H,082H,000H,
        DB      000H,000H,000H,000H,000H,000H,000H,000H,
        DB	000H,000H,000H,000H,000H,
        DB      000H,000H,000H,000H,000H,001H,001H,001H,
        DB      001H,000H,000H,000H,000H,000H,000H,0E0H,
        DB      0EAH,0EAH,02AH,02AH,02AH,02AH,02AH,02AH,
        DB      02AH,02AH,02AH,02AH,02AH,02AH,02AH,02AH,
        DB      02AH,02FH,0EFH,0EEH,0EAH,000H,000H,000H,
        DB      000H,000H,001H,001H,000H,000H,000H,000H
        DB      000H,000H,000H,000H,000H,000H,000H,000H,
        DB	000H,000H,000H,000H,000H,
        DB      000H,000H,000H,000H,000H,000H,000H,000H,
        DB      000H,000H,000H,000H,000H,000H,000H,007H,
        DB      007H,007H,002H,002H,002H,002H,002H,002H,
        DB      002H,002H,002H,002H,002H,002H,002H,002H,
        DB      002H,002H,007H,007H,007H,000H,000H,000H,
        DB      000H,000H,000H,000H,000H,000H,000H,000H,
        DB      000H,000H,000H,000H,000H,000H,000H,000H,
        DB	000H,000H,000H,000H,000H,
        DB      000H,000H,000H,000H,000H,000H,000H,000H,
        DB      000H,000H,080H,0E0H,0E0H,0E0H,040H,000H,
        DB      000H,000H,000H,000H,000H,000H,000H,000H,
        DB      030H,060H,0E0H,0C0H,080H,000H,000H,000H,
        DB      000H,000H,000H,000H,000H,000H,000H,080H,
        DB      000H,000H,000H,000H,000H,000H,000H,000H,
        DB      000H,000H,000H,000H,000H,000H,000H,000H,
        DB	000H,000H,000H,000H,000H,
        DB      000H,000H,000H,080H,040H,060H,030H,018H,
        DB      0FCH,0FEH,017H,003H,001H,000H,002H,002H,
        DB      002H,002H,012H,012H,012H,012H,012H,012H,
        DB      012H,012H,013H,013H,013H,012H,012H,012H,
        DB      012H,012H,092H,0DAH,09AH,012H,013H,003H,
        DB      003H,002H,002H,000H,000H,000H,000H,000H,
        DB      000H,000H,000H,000H,000H,000H,000H,000H,
        DB	000H,000H,000H,000H,000H,
        DB      000H,001H,001H,000H,000H,000H,000H,000H,
        DB      0FFH,0FFH,000H,000H,000H,000H,000H,000H,
        DB      000H,001H,0FDH,0F9H,009H,009H,009H,009H,
        DB      009H,009H,009H,009H,009H,009H,009H,009H,
        DB      009H,009H,0F9H,0FDH,009H,001H,000H,000H,
        DB      000H,000H,000H,000H,000H,000H,000H,000H,
        DB      000H,000H,000H,000H,000H,000H,000H,000H,
        DB	000H,000H,000H,000H,000H,
        DB      000H,000H,000H,000H,000H,000H,000H,000H,
        DB      007H,007H,000H,000H,000H,000H,000H,000H,
        DB      000H,000H,007H,007H,002H,002H,002H,002H,
        DB      002H,002H,002H,002H,002H,002H,002H,002H,
        DB      002H,002H,007H,007H,000H,000H,000H,000H,
        DB      000H,000H,000H,000H,000H,000H,000H,000H,
        DB      000H,000H,000H,000H,000H,000H,000H,000H,

mas_tran_comd:
		clr mas_e
                nop
                nop
		clr slv_e
                nop
		clr w_r
                nop
		clr data_comd_sel
call            de;                nop
                nop
                nop
                nop
		setb mas_e
                nop
                nop
                nop
                nop
		nop
		nop
		clr mas_e
                nop
                nop
                nop
                nop
		nop
		nop
;                setb mas_e
;		setb slv_e
;                nop
;                nop
;                clr  slv_e
		clr mas_e
		clr slv_e
                call     de
                ret
mas_tran_data:
		clr mas_e
                nop
                nop
                nop
                nop
		clr slv_e
                nop
                nop
                nop
                nop
		clr w_r
                nop
                nop
                nop
                nop
		setb data_comd_sel
                nop
call            de
                nop
                nop
                nop
		setb mas_e
                nop
                nop
call            de
                nop
                nop
		nop
		nop
		clr mas_e
                nop
                nop
                nop
call            de
                nop
		nop
		nop
;		setb mas_e
		clr mas_e
		clr slv_e
call            de
		ret
slv_tran_comd:
		clr mas_e
                nop
                nop
                nop
                nop
		clr slv_e
                nop
                nop
                nop
                nop
		clr w_r
                nop
                nop
                nop
                nop
		clr data_comd_sel
                nop
                nop
call            de
                nop
                nop
		setb slv_e
                nop
                nop
call            de
                nop
                nop
		nop
		nop
		clr slv_e
                nop
                nop
call            de
                nop
                nop
		nop
		nop
;		setb slv_e
		clr mas_e
                nop
                nop
                nop
                nop
		clr slv_e
                nop
                nop
call            de
                nop
                nop

		ret
slv_tran_data:
		clr mas_e
                nop
                nop
                nop
                nop
		clr slv_e
                nop
                nop
                nop
                nop
		clr w_r
                nop
                nop
                nop
                nop
		setb data_comd_sel
                nop
                nop
call            de
                nop
                nop
		setb slv_e
                nop
                nop
call            de
                nop
                nop
		nop
		nop
		clr slv_e
                nop
                nop
call            de
                nop
                nop
		nop
		nop
;		setb slv_e
		clr mas_e
                nop
                nop
call            de
                nop
                nop
		clr slv_e
                nop
call            de
                nop
                nop
                nop

		ret
delay:					;delay about 1s
		mov r3,#0fah
dl3:            call de
		djnz r3,dl3
		ret

de:		mov r2,#0ah
dl2:		mov r1,#63h
dl1:		nop
		nop
		djnz r1,dl1
		djnz r2,dl2
                ret
		end
;----------------------------------------------------------
;program end
;----------------------------------------------------------



⌨️ 快捷键说明

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