📄 splc501hardware.lst
字号:
< .EXTERNAL F_RampUpDAC1 // reserved old
< .EXTERNAL F_RampDnDAC1 // reserved old
< .EXTERNAL F_RampUpDAC2 // reserved old
< .EXTERNAL F_RampDnDAC2 // reserved old
< ///////////////////////////////////////////////////////////////////
<
<
<
< //========================================================================================
< // End of hardware.inc
< //========================================================================================
.define C_data
.include splc501c_io.inc
< //========================================================
< //SPLC501C Library Pin Definition
< //==========================================================
< //6800 Control Pin
< //-----------------------------------------------------------------------------
< //User can change any of control pins at any bit, except user select the IO port
< //of control pin the same as control bus.
< //=======================================================
< // FEDCBA9876543210
< //.define C_AOP_Pin 00100000000000b; //IO AOP
< //.define C_EP_Pin 01000000000000b; //IO EP
< //.define C_RWP_Pin 10000000000000b; //IO as RWP
< // FEDCBA9876543210
< .define C_AOP_Pin 0000000000010000b; //IO AOP
< .define C_EP_Pin 0000000001000000b; //IO EP
< .define C_RWP_Pin 0000000000100000b; //IO as RWP
< //========================================================
< //Define the SPLC Data Bus Pin
< //Only Two Type Can Select
< //=====================================================
< // FEDCBA9876543210
< .define C_DataBus 1111111100000000b; //IO Data Bus
< //.define C_DataBus 0000000011111111b;
< .define C_BusHighLow 1; //Set Data High/Low Byte 1:High
< //.define C_AddressBus 0000000011111111b; //IO Data Bus
< //.define C_DataBus 0000000011111111b; //IO Data Bus
< //.define C_BusHighLow 0; //Set Data High/Low Byte 0:Low
< //=====================================================
< //================================================
< //Set Control Pins Port
< //================================================
< //Set Control Pins At Port A
< //.define P_IO_Control_Data 0x7000; //P_IOA_Data
< //.define P_IO_Control_Buffer 0x7001; //P_IOA_Buffer
< //.define P_IO_Control_Dir 0x7002; //P_IOA_Dir
< //.define P_IO_Control_Attrib 0x7003; //P_IOA_Attrib
< //=========================================================
< //Set Control Pins At Port B
< .define P_IO_Control_Data 0x7005; //P_IOB_Data
< .define P_IO_Control_Buffer 0x7006; //P_IOB_Buffer
< .define P_IO_Control_Dir 0x7007; //P_IOB_Dir
< .define P_IO_Control_Attrib 0x7008; //P_IOB_Attrib
< //========================================================
< //=========================================================
< //Set Control Bus Port
< //==========================================================
< //Set Control Bus At Port A
< .define P_IO_Data_Data 0x7000; //P_IOA_Data
< .define P_IO_Data_Buffer 0x7001; //P_IOA_Buffer
< .define P_IO_Data_Dir 0x7002; //P_IOA_Dir
< .define P_IO_Data_Attrib 0x7003; //P_IOA_Attrib
< //==========================================================
< //Set Control Bus At Port B
< //.define P_IO_Data_Data 0x7005; //P_IOB_Data
< //.define P_IO_Data_Buffer 0x7006; //P_IOB_Buffer
< //.define P_IO_Data_Dir 0x7007; //P_IOB_Dir
< //.define P_IO_Data_Attrib 0x7008; //P_IOB_Attrib
< //=========================================================
0000E74A .code
//////////////////////////////////////////////////////////////////////////////
//Filename : F_Init_LCD_501
//Function : Intialize SPLC501c
//Input : None
//Output : None
//Destory : R1,R2,r3
//////////////////////////////////////////////////////////////////////////////
.public _Init_LCD_501
_Init_LCD_501: .proc
0000E74A 41 92 R1 = 0x0001;
0000E74B 19 D3 12 70 [P_Watchdog_Clear] = R1; // reset watchdog
0000E74D 40 F0 68 E7 CALL F_LCD_Reset_Command;//Destory : r3
0000E74F 40 F0 76 E7 CALL F_LCD_Command_Nop; //Destory : r3
0000E751 40 F0 84 E7 CALL F_LCD_Solomon_Freq; //Destory : r3
0000E753 40 F0 9F E7 CALL F_LCD_Power_Set; //Destory : r3
0000E755 40 F0 14 E8 CALL F_LCD_Display_On; //Destory : r3
0000E757 40 92 R1 = 0x0000; //Page No. = 0
0000E758 40 F0 3E E8 CALL F_Set_LCD_Page_No; //Destory : r3,r1
0000E75A 40 92 R1 = 0x0000; //Start line = 0
0000E75B 40 F0 56 E8 CALL F_Set_LCD_Start_Line;//Destory : r3,r1
0000E75D 40 94 R2 = 0x0000; //Column address = 0
0000E75E 40 F0 67 E8 CALL F_Set_LCD_Column_Addr;//Destory : r3,r2,r1
0000E760 40 F0 22 E8 CALL F_LCD_ALL_On; //Destory : r3
0000E762 40 F0 30 E8 CALL F_LCD_Normal_Display;//Destory : r3
0000E764 40 96 R3 = 0x0000; //Fill "00"
0000E765 40 F0 9D E8 CALL F_Fill_All_LCD_Value;
0000E767 90 9A RETF;
.endp
//////////////////////////////////////////////////////////////////////////////
//Subroutine
//////////////////////////////////////////////////////////////////////////////
F_LCD_Reset_Command:
0000E768 13 97 00 70 r3=[P_IO_Data_Data]
0000E76A 0A 95 00 FF r2=C_DataBus
0000E76C 0A 85 FF FF r2^=0xffff
0000E76E 02 B7 r3&=r2
0000E76F 0B A7 00 E2 r3|=0xe200
.if C_BusHighLow
.else
R3 = R3 lsr 4;
R3 = R3 lsr 4;
.endif
0000E771 1B D7 00 70 [P_IO_Data_Data]=r3
0000E773 40 F0 CC E8 CALL F_Send_data
// R1=0x0AE2; //Reset
// [P_Lcd501Ctrl]=R1;
// CALL F_Delay_Bus_Time;
0000E775 90 9A RETF;
//////////////////////////////////////////////////////////////////////////////
F_LCD_Command_Nop:
0000E776 13 97 00 70 r3=[P_IO_Data_Data]
0000E778 0A 95 00 FF r2=C_DataBus
0000E77A 0A 85 FF FF r2^=0xffff
0000E77C 02 B7 r3&=r2
0000E77D 0B A7 00 E3 r3|=0xe300
.if C_BusHighLow
.else
R3 = R3 lsr 4;
R3 = R3 lsr 4;
.endif
0000E77F 1B D7 00 70 [P_IO_Data_Data]=r3
0000E781 40 F0 CC E8 CALL F_Send_data
// R1=0x0AE3; //Nop
// [P_Lcd501Ctrl]=R1;
// CALL F_Delay_Bus_Time;
0000E783 90 9A RETF;
//////////////////////////////////////////////////////////////////////////////
F_LCD_Solomon_Freq:
0000E784 13 97 00 70 r3=[P_IO_Data_Data]
0000E786 0A 95 00 FF r2=C_DataBus
0000E788 0A 85 FF FF r2^=0xffff
0000E78A 02 B7 r3&=r2
0000E78B 0B A7 00 C8 r3|=0xC800 //C8
.if C_BusHighLow
.else
R3 = R3 lsr 4;
R3 = R3 lsr 4;
.endif
0000E78D 1B D7 00 70 [P_IO_Data_Data]=r3
0000E78F 40 F0 CC E8 CALL F_Send_data
// R1=0x0AA9; //
// [P_Lcd501Ctrl]=R1;
// CALL F_Delay_Bus_Time;
0000E791 13 97 00 70 r3=[P_IO_Data_Data]
0000E793 0A 95 00 FF r2=C_DataBus
0000E795 0A 85 FF FF r2^=0xffff
0000E797 02 B7 r3&=r2
0000E798 0B A7 00 A0 r3|=0xa000 //A0
.if C_BusHighLow
.else
R3 = R3 lsr 4;
R3 = R3 lsr 4;
.endif
0000E79A 1B D7 00 70 [P_IO_Data_Data]=r3
0000E79C 40 F0 CC E8 CALL F_Send_data
// R1=0x0AA1; //ADC : Normal
// [P_Lcd501Ctrl]=R1;
// CALL F_Delay_Bus_Time;
0000E79E 90 9A RETF;
//////////////////////////////////////////////////////////////////////////////
F_LCD_Power_Set:
0000E79F 13 97 00 70 r3=[P_IO_Data_Data]
0000E7A1 0A 95 00 FF r2=C_DataBus
0000E7A3 0A 85 FF FF r2^=0xffff
0000E7A5 02 B7 r3&=r2
0000E7A6 0B A7 00 A2 r3|=0xa200
.if C_BusHighLow
.else
R3 = R3 lsr 4;
R3 = R3 lsr 4;
.endif
0000E7A8 1B D7 00 70 [P_IO_Data_Data]=r3
0000E7AA 40 F0 CC E8 CALL F_Send_data
// R1=0x0AA2;
// [P_Lcd501Ctrl]=R1; // 1/9 bias
// CALL F_Delay_Bus_Time;
0000E7AC 13 97 00 70 r3=[P_IO_Data_Data]
0000E7AE 0A 95 00 FF r2=C_DataBus
0000E7B0 0A 85 FF FF r2^=0xffff
0000E7B2 02 B7 r3&=r2
0000E7B3 0B A7 00 24 r3|=0x2400
.if C_BusHighLow
.else
R3 = R3 lsr 4;
R3 = R3 lsr 4;
.endif
0000E7B5 1B D7 00 70 [P_IO_Data_Data]=r3
0000E7B7 40 F0 CC E8 CALL F_Send_data
// R1=0x0A24;
// [P_Lcd501Ctrl]=R1; // V5 RATIO 5 FOR 1/9 BIAS
// CALL F_Delay_Bus_Time;
0000E7B9 13 97 00 70 r3=[P_IO_Data_Data]
0000E7BB 0A 95 00 FF r2=C_DataBus
0000E7BD 0A 85 FF FF r2^=0xffff
0000E7BF 02 B7 r3&=r2
0000E7C0 0B A7 00 81 r3|=0x8100
.if C_BusHighLow
.else
R3 = R3 lsr 4;
R3 = R3 lsr 4;
.endif
0000E7C2 1B D7 00 70 [P_IO_Data_Data]=r3
0000E7C4 40 F0 CC E8 CALL F_Send_data
// R1=0x0A81;
// [P_Lcd501Ctrl]=R1; // ELECTRONIC VOLUME MODE
// CALL F_Delay_Bus_Time;
0000E7C6 13 97 00 70 r3=[P_IO_Data_Data]
0000E7C8 0A 95 00 FF r2=C_DataBus
0000E7CA 0A 85 FF FF r2^=0xffff
0000E7CC 02 B7 r3&=r2
0000E7CD 0B A7 00 1A r3|=0x1a00
.if C_BusHighLow
.else
R3 = R3 lsr 4;
R3 = R3 lsr 4;
.endif
0000E7CF 1B D7 00 70 [P_IO_Data_Data]=r3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -