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

📄 lcd_pg320240.src

📁 how to use display powertip PG 320x240
💻 SRC
📖 第 1 页 / 共 2 页
字号:
; TASKING C166/ST10 C compiler v8.0r1 Build 651 SN 00096962
; options: -e -Ic:\program files\tasking\c166 v8.0\include -xmidfp
;          -DCPUTYPE=0x167 -Bhoeufmknladij -OB -zautobitastruct-4 -zautobita-0
;          -T256 -FSC -A1 -zvolatile_union -O0 -g -s -Mm
$DEBUG
$NOLOCALS
$EXTEND
$NOMOD166
$STDNAMES(reg262.def)
$EXTMAC
$SEGMENTED
$CASE
$MODEL(MEDIUM)
	NAME	LCD_PG320240_C
	ASSUME	DPP3:SYSTEM
	ASSUME	DPP2:C166_DGROUP
	?SYMB	'lcd_pg320240.c',32,80,16
	?SYMB	'',1,82,0
	?SYMB	'80166',0,84,0
	?SYMB	'',0,81,0
	?SYMB	'void',00H,45,1
	?SYMB	'char',080000H,45,2
	?SYMB	'unsigned char',080000H,45,3
	?SYMB	'short',0100000H,45,4
	?SYMB	'unsigned short',0100000H,45,5
	?SYMB	'long',0200000H,45,6
	?SYMB	'unsigned long',0200000H,45,7
	?SYMB	'float',0200000H,45,10
	?SYMB	'double',0400000H,45,11
	?SYMB	'int',0100000H,45,16
	?SYMB	'unsigned int',0100000H,45,18
	?SYMB	'bit',010000H,7,256
	?SYMB	'lcd_pg320240.c',0,29,1
	?SYMB	'',0,86,1
; lcd_pg320240.c    1	//-----------------------------------------------------------------------------
; lcd_pg320240.c    2	//    Project Name:   Demo board for graphic LCD PG240128 with touchscreen
; lcd_pg320240.c    3	//    Description:    Demo Board - main file
; lcd_pg320240.c    4	//    Processor:      uPD78F0034AY
; lcd_pg320240.c    5	//    Revision:       1.0
; lcd_pg320240.c    6	//    Date:           20.12.2003
; lcd_pg320240.c    7	//    Compiler:       C crosscompiler IAR 2.22
; lcd_pg320240.c    8	//    Author:         Radek Pulpan
; lcd_pg320240.c    9	//    Company:
; lcd_pg320240.c   10	//    Email:          pulpan@centrum.cz
; lcd_pg320240.c   11	//-----------------------------------------------------------------------------
; lcd_pg320240.c   12	
; lcd_pg320240.c   13	#include "common.h"
	?SYMB	'common.h',0,29,2
	?SYMB	'',0,86,2
	?SYMB	'types.h',0,29,3
	?SYMB	'',0,86,3
	?SYMB	'',0,86,2
	?SYMB	'appcfg.h',0,29,3
	?SYMB	'',0,86,3
	?SYMB	'',0,86,2
	?SYMB	'c:\program files\tasking\c166 v8.0\include\reg276.h',0,29,3
	?SYMB	'',0,86,3
	?SYMB	'',0,86,2
	?SYMB	'',0,86,1
; lcd_pg320240.c   14	#include "ports.h"
	?SYMB	'ports.h',0,29,2
	?SYMB	'',0,86,2
	?SYMB	'',0,86,1
; lcd_pg320240.c   15	#include "lcd_pg320240.h"
	?SYMB	'lcd_pg320240.h',0,29,2
	?SYMB	'',0,86,2
	?SYMB	'ports.h',0,29,3
	?SYMB	'',0,86,3
	?SYMB	'',0,86,2
	?SYMB	'',0,86,1
; lcd_pg320240.c   16	unsigned char Color_4BPP[16*3] =
LCD_PG320240_IR_NB	SECTION	DATA WORD PUBLIC 'CINITROM'
LCD_PG320240_IR_NB_ENTRY	LABEL	BYTE
	DB	00h,00h,00h,01h,01h
	DB	01h,02h,02h,02h,03h
	DB	03h,03h,04h,04h,04h
	DB	05h,05h,05h,06h,06h
	DB	06h,07h,07h,07h,08h
	DB	08h,08h,09h,09h,09h
	DB	0Ah,0Ah,0Ah,0Bh,0Bh
	DB	0Bh,0Ch,0Ch,0Ch,0Dh
	DB	0Dh,0Dh,0Eh,0Eh,0Eh
	DB	0Fh,0Fh,0Fh
LCD_PG320240_IR_NB	ENDS

LCD_PG320240_ID_NB	SECTION	DATA WORD PUBLIC 'CNEAR'
LCD_PG320240_ID_NB_ENTRY	LABEL	BYTE
_Color_4BPP	LABEL	BYTE
	DS	48
	PUBLIC	_Color_4BPP
	?SYMB	'',01020003H,5,257
	?SYMB	'',16,47,258
	?SYMB	'',0,30,0
	?SYMB	'',47,49,0
	?SYMB	'Color_4BPP',_Color_4BPP,22,257
; lcd_pg320240.c   17	{
; lcd_pg320240.c   18		0x00, 0x00, 0x00,// BLACK 
; lcd_pg320240.c   19		0x01, 0x01, 0x01,// BLUE 
; lcd_pg320240.c   20		0x02, 0x02, 0x02,// GREEN
; lcd_pg320240.c   21		0x03, 0x03, 0x03,// CYAN 
; lcd_pg320240.c   22		0x04, 0x04, 0x04,// RED 
; lcd_pg320240.c   23		0x05, 0x05, 0x05,// PURPLE 
; lcd_pg320240.c   24		0x06, 0x06, 0x06,// YELLOW 
; lcd_pg320240.c   25		0x07, 0x07, 0x07,// WHITE 
; lcd_pg320240.c   26		0x08, 0x08, 0x08,// BLACK
; lcd_pg320240.c   27		0x09, 0x09, 0x09,// LT BLUE
; lcd_pg320240.c   28		0x0A, 0x0A, 0x0A,// LT GREEN
; lcd_pg320240.c   29		0x0B, 0x0B, 0x0B,// LT CYAN
; lcd_pg320240.c   30		0x0C, 0x0C, 0x0C,// LT RED
; lcd_pg320240.c   31		0x0D, 0x0D, 0x0D,		// LT PURPLE
; lcd_pg320240.c   32		0x0E, 0x0E, 0x0E,		// LT YELLOW
; lcd_pg320240.c   33		0x0F, 0x0F, 0x0F		// LT WHITE
; lcd_pg320240.c   34	};
; lcd_pg320240.c   35	/*
; lcd_pg320240.c   36	unsigned char Color_4BPP[16*3] =
; lcd_pg320240.c   37	{
; lcd_pg320240.c   38		0x00, 0x00, 0x00,// BLACK 
; lcd_pg320240.c   39		0x05, 0x05, 0x05,// BLUE 
; lcd_pg320240.c   40		0x0A, 0x0A, 0x0A,// GREEN
; lcd_pg320240.c   41		0x0F, 0x0F, 0x0F,// CYAN 
; lcd_pg320240.c   42		0x04, 0x04, 0x04,// RED 
; lcd_pg320240.c   43		0x05, 0x05, 0x05,// PURPLE 
; lcd_pg320240.c   44		0x06, 0x06, 0x06,// YELLOW 
; lcd_pg320240.c   45		0x07, 0x07, 0x07,// WHITE 
; lcd_pg320240.c   46		0x08, 0x08, 0x08,// BLACK
; lcd_pg320240.c   47		0x09, 0x09, 0x09,// LT BLUE
; lcd_pg320240.c   48		0x0A, 0x0A, 0x0A,// LT GREEN
; lcd_pg320240.c   49		0x0B, 0x0B, 0x0B,// LT CYAN
; lcd_pg320240.c   50		0x0C, 0x0C, 0x0C,// LT RED
; lcd_pg320240.c   51		0x0D, 0x0D, 0x0D,		// LT PURPLE
; lcd_pg320240.c   52		0x0E, 0x0E, 0x0E,		// LT YELLOW
; lcd_pg320240.c   53		0x0F, 0x0F, 0x0F		// LT WHITE
; lcd_pg320240.c   54	};
; lcd_pg320240.c   55	
; lcd_pg320240.c   56	*/ 
; lcd_pg320240.c   57	void wr_data(unsigned char Data)
; lcd_pg320240.c   58	{
LCD_PG320240_ID_NB	ENDS

LCD_PG320240_3_PR	SECTION	CODE WORD PUBLIC 'CPROGRAM'
	?LINE	58
	PUBLIC	_wr_data
	?SYMB	'wr_data',_wr_data,37,1
	?SYMB	'',58,8,34
_wr_data	PROC	NEAR
	?SYMB	'',00H,95,0
	MOV	[-R0],R12
	?SYMB	'',$,96,2
; Locals:
;     Data = offset 0
; 
; Statics:
; 
; CSEs:
; 
	?LINE	58
	?SYMB	'Data',1,99,3
	?SYMB	'-2',$,101,1
; lcd_pg320240.c   59		DATA &=0xFF00;
	?LINE	59
	MOV	R12,P3
	AND	R12,#0FF00h
	MOV	P3,R12
; lcd_pg320240.c   60	    _nop();
	?LINE	60
	NOP
; lcd_pg320240.c   61	    _nop();
	?LINE	61
	NOP
; lcd_pg320240.c   62	    DATA |= Data; 
	?LINE	62
	MOVB	RL1,[R0]
	MOVBZ	R12,RL1
	OR	R12,P3
	MOV	P3,R12
; lcd_pg320240.c   63	}
	?LINE	63
	?SYMB	'',$,102,1
	ADD	R0,#02h
	?SYMB	'',$,96,0
	RET
_wr_data	ENDP
	?SYMB	'',$,17,63
; lcd_pg320240.c   64	
; lcd_pg320240.c   65	// write data to LCD
; lcd_pg320240.c   66	void lcd_write_data(unsigned char Data)
; lcd_pg320240.c   67	{
	?LINE	67
	PUBLIC	_lcd_write_data
	?SYMB	'lcd_write_data',_lcd_write_data,37,1
	?SYMB	'',67,8,34
_lcd_write_data	PROC	NEAR
	?SYMB	'',00H,95,0
	MOV	[-R0],R12
	?SYMB	'',$,96,2
; Locals:
;     Data = offset 0
; 
; Statics:
; 
; CSEs:
; 
	?LINE	67
	?SYMB	'Data',1,99,3
	?SYMB	'-2',$,101,1
; lcd_pg320240.c   68		wr_data(Data);
	?LINE	68
	MOVB	RL1,[R0]
	MOVBZ	R12,RL1
	CALLR	_wr_data
; lcd_pg320240.c   69		WRITE = 0;
	?LINE	69
	BCLR	P2.12
; lcd_pg320240.c   70		while(!WAIT);
	?LINE	70
	JMPR	cc_UC,_4
_3:
_4:
_5:
	JNB	P2.10,_5
; lcd_pg320240.c   71		WRITE = 1;
	?LINE	71
	BSET	P2.12
; lcd_pg320240.c   72	}
	?LINE	72
	?SYMB	'',$,102,1
	ADD	R0,#02h
	?SYMB	'',$,96,0
	RET
_lcd_write_data	ENDP
	?SYMB	'',$,17,72
; lcd_pg320240.c   73	//-----------------------------------------------------------------------------
; lcd_pg320240.c   74	// 
; lcd_pg320240.c   75	void lcd_write_address(unsigned int Address)
; lcd_pg320240.c   76	{
	?LINE	76
	PUBLIC	_lcd_write_address
	?SYMB	'lcd_write_address',_lcd_write_address,37,1
	?SYMB	'',76,8,34
_lcd_write_address	PROC	NEAR
	?SYMB	'',00H,95,0
	MOV	[-R0],R12
	?SYMB	'',$,96,2
; Locals:
;     Address = offset 0
; 
; Statics:
; 
; CSEs:
; 
	?LINE	76
	?SYMB	'Address',1,99,18
	?SYMB	'-2',$,101,1
; lcd_pg320240.c   77	    wr_data(Address & 0x00FF);
	?LINE	77
	MOV	R12,[R0]
	AND	R12,#0FFh
	CALLR	_wr_data
; lcd_pg320240.c   78	    ABL = 1;
	?LINE	78
	BSET	P2.15
; lcd_pg320240.c   79	   	ABL = 0;
	?LINE	79
	BCLR	P2.15
; lcd_pg320240.c   80		wr_data((Address>>8) & 0x00FF);
	?LINE	80
	MOV	R12,[R0]
	SHR	R12,#08h
	AND	R12,#0FFh
	CALLR	_wr_data
; lcd_pg320240.c   81	    ABH = 1;
	?LINE	81
	BSET	P2.13
; lcd_pg320240.c   82		ABH = 0;
	?LINE	82
	BCLR	P2.13
; lcd_pg320240.c   83	}
	?LINE	83
	?SYMB	'',$,102,1
	ADD	R0,#02h
	?SYMB	'',$,96,0
	RET
_lcd_write_address	ENDP
	?SYMB	'',$,17,83
; lcd_pg320240.c   84	
; lcd_pg320240.c   85	unsigned char reverseLSB_MSB( unsigned char RevData)
; lcd_pg320240.c   86	{
	?LINE	86
	PUBLIC	_reverseLSB_MSB
	?SYMB	'reverseLSB_MSB',_reverseLSB_MSB,37,3
	?SYMB	'',86,8,34
_reverseLSB_MSB	PROC	NEAR
	?SYMB	'',00H,95,0
	MOV	[-R0],R12
	?SYMB	'',$,96,2
	SUB	R0,#02h
	?SYMB	'',$,96,4
; Locals:
;     Revers = offset 0
;     i = offset 1
;     RevData = offset 2
; 
; Statics:
; 
; CSEs:
; 
	?LINE	86
	?SYMB	'RevData',3,99,3
	?SYMB	'-2',$,101,3
; lcd_pg320240.c   87		unsigned char Revers = 0;
	?LINE	87
	?SYMB	'Revers',1,98,3
	?SYMB	'-4',$,101,1
	MOVB	RL1,#00h
	MOVB	[R0],RL1
; lcd_pg320240.c   88		unsigned char i;
	?LINE	88
	?SYMB	'i',2,98,3
	?SYMB	'-3',$,101,2
; lcd_pg320240.c   89		for(i=0;i<8;i++)
	?LINE	89
	MOVB	RL1,#00h
	MOVB	[R0+#01H],RL1
	JMPR	cc_UC,_7
_6:
; lcd_pg320240.c   90		{
; lcd_pg320240.c   91			Revers = Revers << 1;
	?LINE	91
	MOVB	RL1,[R0]
	MOVBZ	R1,RL1
	SHL	R1,#01h
	MOVB	[R0],RL1
; lcd_pg320240.c   92			Revers |= (RevData & 0x01);
	?LINE	92
	MOVB	RL1,[R0+#02H]
	ANDB	RL1,#01h
	MOVB	RL2,[R0]
	ORB	RL2,RL1
	MOVB	[R0],RL2
; lcd_pg320240.c   93			RevData = RevData >> 1;
	?LINE	93
	MOVB	RL1,[R0+#02H]
	MOVBZ	R1,RL1
	SHR	R1,#01h
	MOVB	[R0+#02H],RL1
	?LINE	89
	MOVB	RL1,[R0+#01H]
	ADDB	RL1,#01h
	MOVB	[R0+#01H],RL1
_7:
	MOVB	RL1,[R0+#01H]
	CMPB	RL1,#08h
	JMPR	cc_ULT,_6
; lcd_pg320240.c   94		}
; lcd_pg320240.c   95		return(Revers);
	?LINE	95
	MOVB	RL4,[R0]
; lcd_pg320240.c   96	}
	?LINE	96
_8:
	?SYMB	'',$,102,2
	?SYMB	'',$,102,1
	?SYMB	'',$,102,3
	ADD	R0,#04h
	?SYMB	'',$,96,0
	RET
_reverseLSB_MSB	ENDP
	?SYMB	'',$,17,96
; lcd_pg320240.c   97	
; lcd_pg320240.c   98	//-----------------------------------------------------------------------------
; lcd_pg320240.c   99	void lcd_set_reg (unsigned int Address, unsigned char Data)
; lcd_pg320240.c  100	{
	?LINE	100
	PUBLIC	_lcd_set_reg
	?SYMB	'lcd_set_reg',_lcd_set_reg,37,1
	?SYMB	'',100,8,34
_lcd_set_reg	PROC	NEAR
	?SYMB	'',00H,95,0
	MOV	[-R0],R13
	?SYMB	'',$,96,2
	MOV	[-R0],R12
	?SYMB	'',$,96,4
; Locals:
;     Address = offset 0
;     Data = offset 2
; 
; Statics:
; 
; CSEs:
; 
	?LINE	100
	?SYMB	'Address',1,99,18
	?SYMB	'-4',$,101,1
	?SYMB	'Data',2,99,3
	?SYMB	'-2',$,101,2
; lcd_pg320240.c  101		Address += REG_OFFSET;
	?LINE	101
	MOV	R12,[R0]
	ADD	R12,#0FFE0h
	MOV	[R0],R12
; lcd_pg320240.c  102	    CS = 0;
	?LINE	102
	BCLR	P2.9
; lcd_pg320240.c  103		lcd_write_address(Address);
	?LINE	103
	MOV	R12,[R0]
	CALLR	_lcd_write_address
; lcd_pg320240.c  104		lcd_write_data(Data);
	?LINE	104
	MOVB	RL1,[R0+#02H]
	MOVBZ	R12,RL1
	CALLR	_lcd_write_data
; lcd_pg320240.c  105		CS = 1;
	?LINE	105
	BSET	P2.9
; lcd_pg320240.c  106	}
	?LINE	106
	?SYMB	'',$,102,2
	?SYMB	'',$,102,1
	ADD	R0,#04h
	?SYMB	'',$,96,0
	RET
_lcd_set_reg	ENDP

⌨️ 快捷键说明

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