📄 lcd_pg320240.src
字号:
; 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 + -