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

📄 oled.asm

📁 VGG12864的OLED的演示程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;无磁上位机程序:
;功能:手动输入6个点的标定流量,输入范围:0~599升;
;      开始键和结束键在水的流速平稳时使用,
;;键盘定义:
;数字键:0--9,小数点键;
;功能键:开始键、结束键、修改键、发送键、NEXT键

$include (c8051f120.inc)
;****************************************
;****************************************
;I/O口定义:
;OLED显示
OLED_DC				EQU   P2.1
OLED_RW				EQU   P2.2
OLED_EN				EQU		P2.3
OLED_CS				EQU		P2.4
OLED_RES			EQU		P2.5
OLED_DATA1		EQU   P3.0
OLED_DATA2    EQU   P3.1
OLED_DATA3    EQU   P3.2
OLED_DATA4    EQU   P3.3
OLED_DATA5    EQU   P3.4
OLED_DATA6    EQU   P3.5
OLED_DATA7    EQU   P3.6
OLED_DATA8    EQU   P3.7
OLED_DATA			EQU	  P3

//		1   	GND		GND
//		2   	VCC		VCC	
//		4   	D/C		P21
//		5   	R/W		P22	
//		6   	EN		P23
//		7~14    D0~D7		P30~P37
//		15   	CS		P24
//		16	RES		VCC
//		17	M80		VCC
//		18	MS		VCC
//		20	GND		GND

;**********************************************************
;RAM区定义:
LCD_MODEL   	 EQU	 20h    ;LCD模式选择:00H:数字模式,01H:汉字模式
POINT_JUDGE    EQU	 21h    ;标定第几点判断标志的寄存器
TIMESOFPASS		 EQU	 22H		;输入修改标定点实际流量的上下限的密码次数:
VALUEOFPOINT	 EQU	 23H		;显示修改上下限的第几温度点
XRAMADDL			 EQU	 24H		;向XRAM写入上下限的地址定义:
XRAMADDH       EQU	 25H
;**********************************************************	
SFRPAGE_SAVE   EQU   00H
#define SAMPLE_RATE  50000           // Sample frEQUency in Hz
	      ORG	     0000H
				LJMP	   MAIN
				ORG      002BH

Blink   SEGMENT  CODE
        RSEG     Blink               ; Switch to this code segment.
        USING    0                   ; Specify register bank for the following
;**********************************************************	                                    ; program code.
MAIN:
			;观看门狗
     	MOV  	  SP,#60h
			///?LCALL   CLOCK
			LCALL	  INIT            ;调用初始化子程序 
     	LCALL	  PORTINIT        ;端口初始化
			LCALL		CLRRAM          ;清除RAM:20H--5FH
			LCALL		INIT_OLED				;OLED初始化
;**************************************
;***************调试区*****************
limrtest:
			MOV     SFRPAGE,#0Fh
			LCALL		CLEAR_SCREEN
			LCALL		ALL_SCREEN
			LCALL		CLEAR_SCREEN
			LCALL		DISPLAY_TEST
			ajmp		limrtest
;**************************************
DISPLAY_TEST:
//李
			MOV    	SFRPAGE,#0Fh			
			MOV		 	A,#0B0H
			CALL		WRITE_COMMAND
			MOV			A,#010H
			CALL		WRITE_COMMAND
			MOV			A,#000H
			CALL		WRITE_COMMAND

			MOV			DPTR,#TABL0
			CLR			A
			MOV		 	A,#0B0H
			CALL		WRITE_COMMAND			
			MOV    	R0,#000H
			CLR			A
DIS_LOOPL1:
			MOVC		A,@A+DPTR
			LCALL		WRITE_DATA
			INC			R0
			MOV			A,R0
			CJNE		R0,#16,DIS_LOOPL1

			MOV    	SFRPAGE,#0Fh			
			MOV		 	A,#0B0H
			CALL		WRITE_COMMAND
			MOV			A,#010H
			CALL		WRITE_COMMAND
			MOV			A,#000H
			CALL		WRITE_COMMAND

			MOV			DPTR,#TABH0
			CLR			A
			MOV		 	A,#0B1H
			CALL		WRITE_COMMAND			
			MOV    	R0,#000H
			CLR			A
DIS_LOOPH1:
			MOVC		A,@A+DPTR
			LCALL		WRITE_DATA
			INC			R0
			MOV			A,R0
			CJNE		R0,#16,DIS_LOOPH1
			nop

//茂
			MOV    	SFRPAGE,#0Fh			
			MOV		 	A,#0B0H
			CALL		WRITE_COMMAND
			MOV			A,#011H
			CALL		WRITE_COMMAND
			MOV			A,#000H
			CALL		WRITE_COMMAND

			MOV			DPTR,#TABL1
			CLR			A
			MOV		 	A,#0B0H
			CALL		WRITE_COMMAND			
			MOV    	R0,#000H
			CLR			A
DIS_LOOPL:
			MOVC		A,@A+DPTR
			LCALL		WRITE_DATA
			INC			R0
			MOV			A,R0
			CJNE		R0,#16,DIS_LOOPL

			MOV    	SFRPAGE,#0Fh			
			MOV		 	A,#0B0H
			CALL		WRITE_COMMAND
			MOV			A,#011H
			CALL		WRITE_COMMAND
			MOV			A,#000H
			CALL		WRITE_COMMAND

			MOV			DPTR,#TABH1
			CLR			A
			MOV		 	A,#0B1H
			CALL		WRITE_COMMAND			
			MOV    	R0,#000H
			CLR			A
DIS_LOOPH:
			MOVC		A,@A+DPTR
			LCALL		WRITE_DATA
			INC			R0
			MOV			A,R0
			CJNE		R0,#16,DIS_LOOPH
			nop

//锐
			MOV    	SFRPAGE,#0Fh			
			MOV		 	A,#0B0H
			CALL		WRITE_COMMAND
			MOV			A,#012H
			CALL		WRITE_COMMAND
			MOV			A,#000H
			CALL		WRITE_COMMAND

			MOV			DPTR,#TABL2
			CLR			A
			MOV		 	A,#0B0H
			CALL		WRITE_COMMAND			
			MOV    	R0,#000H
			CLR			A
DIS_LOOPL2:
			MOVC		A,@A+DPTR
			LCALL		WRITE_DATA
			INC			R0
			MOV			A,R0
			CJNE		R0,#16,DIS_LOOPL2

			MOV    	SFRPAGE,#0Fh			
			MOV		 	A,#0B0H
			CALL		WRITE_COMMAND
			MOV			A,#012H
			CALL		WRITE_COMMAND
			MOV			A,#000H
			CALL		WRITE_COMMAND

			MOV			DPTR,#TABH2
			CLR			A
			MOV		 	A,#0B1H
			CALL		WRITE_COMMAND			
			MOV    	R0,#000H
			CLR			A
DIS_LOOPH2:
			MOVC		A,@A+DPTR
			LCALL		WRITE_DATA
			INC			R0
			MOV			A,R0
			CJNE		R0,#16,DIS_LOOPH2
			nop



//9
			MOV    	SFRPAGE,#0Fh			
			MOV		 	A,#0B0H
			CALL		WRITE_COMMAND
			MOV			A,#013H
			CALL		WRITE_COMMAND
			MOV			A,#000H
			CALL		WRITE_COMMAND

			MOV			DPTR,#TABL3
			CLR			A
			MOV		 	A,#0B0H
			CALL		WRITE_COMMAND			
			MOV    	R0,#000H
			CLR			A
DIS_LOOPL3:
			MOVC		A,@A+DPTR
			LCALL		WRITE_DATA
			INC			R0
			MOV			A,R0
			CJNE		R0,#8,DIS_LOOPL3

			MOV    	SFRPAGE,#0Fh			
			MOV		 	A,#0B0H
			CALL		WRITE_COMMAND
			MOV			A,#013H
			CALL		WRITE_COMMAND
			MOV			A,#000H
			CALL		WRITE_COMMAND

			MOV			DPTR,#TABH3
			CLR			A
			MOV		 	A,#0B1H
			CALL		WRITE_COMMAND			
			MOV    	R0,#000H
			CLR			A
DIS_LOOPH3:
			MOVC		A,@A+DPTR
			LCALL		WRITE_DATA
			INC			R0
			MOV			A,R0
			CJNE		R0,#8,DIS_LOOPH3
			nop


//8
			MOV    	SFRPAGE,#0Fh			
			MOV		 	A,#0B0H
			CALL		WRITE_COMMAND
			MOV			A,#013H
			CALL		WRITE_COMMAND
			MOV			A,#008H
			CALL		WRITE_COMMAND

			MOV			DPTR,#TABL4
			CLR			A
			MOV		 	A,#0B0H
			CALL		WRITE_COMMAND			
			MOV    	R0,#000H
			CLR			A
DIS_LOOPL4:
			MOVC		A,@A+DPTR
			LCALL		WRITE_DATA
			INC			R0
			MOV			A,R0
			CJNE		R0,#8,DIS_LOOPL4

			MOV    	SFRPAGE,#0Fh			
			MOV		 	A,#0B0H
			CALL		WRITE_COMMAND
			MOV			A,#013H
			CALL		WRITE_COMMAND
			MOV			A,#008H
			CALL		WRITE_COMMAND

			MOV			DPTR,#TABH4
			CLR			A
			MOV		 	A,#0B1H
			CALL		WRITE_COMMAND			
			MOV    	R0,#000H
			CLR			A
DIS_LOOPH4:
			MOVC		A,@A+DPTR
			LCALL		WRITE_DATA
			INC			R0
			MOV			A,R0
			CJNE		R0,#8,DIS_LOOPH4
			nop

//5
			MOV    	SFRPAGE,#0Fh			
			MOV		 	A,#0B0H
			CALL		WRITE_COMMAND
			MOV			A,#014H
			CALL		WRITE_COMMAND
			MOV			A,#000H
			CALL		WRITE_COMMAND

			MOV			DPTR,#TABL5
			CLR			A
			MOV		 	A,#0B0H
			CALL		WRITE_COMMAND			
			MOV    	R0,#000H
			CLR			A
DIS_LOOPL5:
			MOVC		A,@A+DPTR
			LCALL		WRITE_DATA
			INC			R0
			MOV			A,R0
			CJNE		R0,#8,DIS_LOOPL5

			MOV    	SFRPAGE,#0Fh			
			MOV		 	A,#0B0H
			CALL		WRITE_COMMAND
			MOV			A,#014H
			CALL		WRITE_COMMAND
			MOV			A,#000H
			CALL		WRITE_COMMAND

			MOV			DPTR,#TABH5
			CLR			A
			MOV		 	A,#0B1H
			CALL		WRITE_COMMAND			
			MOV    	R0,#000H
			CLR			A
DIS_LOOPH5:
			MOVC		A,@A+DPTR
			LCALL		WRITE_DATA
			INC			R0
			MOV			A,R0
			CJNE		R0,#8,DIS_LOOPH5
			nop
			RET


;--  文字:  5  --
;--  楷体_GB231212;  此字体下对应的点阵为:宽x高=8x16   --
//DB  000,000,011,013,012,00E,000,000,000,000,0F0,008,004,008,008,000
TABH5:
DB  000h,000h,011h,013h,012h,00Eh,000h,000h
TABL5:
DB  000h,000h,0F0h,008h,004h,008h,008h,000h

;--  文字:  8  --
;--  楷体_GB231212;  此字体下对应的点阵为:宽x高=8x16   --
//DB  000,000,01E,011,011,01E,000,000,000,000,078,084,084,048,030,000
TABH4:
DB  000h,000h,01Eh,011h,011h,01Eh,000h,000h
TABL4:
DB  000h,000h,078h,084h,084h,048h,030h,000h

;--  文字:  9  --
;--  楷体_GB231212;  此字体下对应的点阵为:宽x高=8x16   --
//DB  000h,003h,01Fh,010h,010h,019h,006h,000h,000h,000h,0E0h,090h,048h,084h,000h,000h
TABH3:
DB  000h,003h,01Fh,010h,010h,019h,006h,000h

TABL3:
DB  000h,000h,0E0h,090h,048h,084h,000h,000h









;--  文字:  锐  --
;--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --
TABH2:
DB  000h,000h,000h,020h,017h,00Dh,005h,00Dh,013h,000h,008h,00Ah,07Bh,005h,002h,001h

TABL2:
DB  000h,038h,004h,004h,004h,0F8h,000h,0C0h,020h,010h,0A8h,090h,0F8h,040h,040h,000h



;--  文字:  茂  --
;--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --
TABH1:
DB  000h,000h,000h,020h,024h,029h,022h,0F2h,022h,027h,021h,079h,011h,010h,010h,000h

TABL1:
DB  000h,000h,00Eh,002h,004h,088h,050h,020h,0D0h,008h,008h,000h,0E0h,018h,004h,000h


;****************************************
TABH0:

DB  000h,002h,002h,002h,024h,024h,02Bh,032h,0FEh,011h,019h,014h,012h,001h,000h,000h	

TABL0:
	
DB  000h,000h,040h,040h,040h,040h,040h,0DCh,062h,024h,020h,020h,020h,020h,020h,000h


;****************************************
CLEAR_SCREEN:
			MOV    	SFRPAGE,#0Fh
			MOV			A,#010H
			CALL		WRITE_COMMAND
			MOV			A,#000H
			CALL		WRITE_COMMAND
			MOV		 	R1,#0B0H
			MOV    	R0,#000H
CLR_LOOP1:
			MOV			A,R1
			CALL		WRITE_COMMAND
CLR_LOOP0:
			MOV			A,#000H
			LCALL		WRITE_DATA
			INC			R0
			CJNE		R0,#128,CLR_LOOP0
			INC     R1
			CJNE		R1,#0B8H,CLR_LOOP1
			RET
;****************************************
ALL_SCREEN:
			MOV    	SFRPAGE,#0Fh
			MOV			A,#010H
			CALL		WRITE_COMMAND
			MOV			A,#000H
			CALL		WRITE_COMMAND
			MOV		 	R1,#0B0H

			MOV    	R0,#000H
ALL_LOOP1:
			MOV			A,R1
			CALL		WRITE_COMMAND
ALL_LOOP0:
			MOV			A,#0FFH
			LCALL		WRITE_DATA
			INC			R0
			CJNE		R0,#128,ALL_LOOP0
			INC     R1
			CJNE		R1,#0B8H,ALL_LOOP1
			RET
;****************************************
INIT_OLED:
			MOV    SFRPAGE,#0Fh
			CLR			OLED_CS
			LCALL		NOPLOOP
			CLR			OLED_RES
			LCALL		NOPLOOP
			SETB		OLED_RES
			LCALL		NOPLOOP
			CLR			OLED_DC
			LCALL		NOPLOOP
			CLR			OLED_RW
			LCALL		NOPLOOP
			CLR			OLED_EN			
      LCALL		NOPLOOP
			MOV			A,#0AEH
			LCALL		WRITE_COMMAND
			MOV			A,#0ADH
			LCALL		WRITE_COMMAND
			MOV			A,#08AH
			LCALL		WRITE_COMMAND
			MOV			A,#0A8H
			LCALL		WRITE_COMMAND
			MOV			A,#03FH
			LCALL		WRITE_COMMAND
			MOV			A,#0D3H
			LCALL		WRITE_COMMAND
			MOV			A,#000H
			LCALL		WRITE_COMMAND
			MOV			A,#040H						
			LCALL		WRITE_COMMAND
			MOV			A,#0A0H
			LCALL		WRITE_COMMAND
			MOV			A,#0C8H
			LCALL		WRITE_COMMAND
			MOV			A,#0A6H
			LCALL		WRITE_COMMAND
			MOV			A,#0A4H
			LCALL		WRITE_COMMAND
			MOV			A,#081H
			LCALL		WRITE_COMMAND
			MOV			A,#0FFH
			LCALL		WRITE_COMMAND
			MOV			A,#0D5H
			LCALL		WRITE_COMMAND
			MOV			A,#060H
			LCALL		WRITE_COMMAND
			MOV			A,#0D8H
			LCALL		WRITE_COMMAND
			MOV			A,#000H
			LCALL		WRITE_COMMAND
			MOV			A,#0D9H
			LCALL		WRITE_COMMAND
			MOV			A,#084H
			LCALL		WRITE_COMMAND
			MOV			A,#02EH						;禁止水平方向滚动
			LCALL		WRITE_COMMAND
			MOV			A,#0AFH
			LCALL		WRITE_COMMAND
			RET
;*************************************


;*************************************
WRITE_COMMAND:
			MOV    SFRPAGE,#0Fh
			CLR			OLED_DC
			LCALL		NOPLOOP
			SETB		OLED_EN

⌨️ 快捷键说明

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