Single chip microcomputer STM32L151CCU6
1206RGB (single)
0201 package SLP0603 ESD electrostatic diode 5V one-way ESD
Mobile phone crystal 3.2*2.5mm 3225 26M (26.000MHZ) 7.5PF 10PPM 20PPM 30PPM
;================================================
; PIC16C74B microcontroller and AT24C64 communication
; The function implemented by this program is:
; Write I2C_A, I2C_B.....I2C_K contents to EEPROM
; At the same time, the data is read out in the EEPROM and newly written to each register.
;================================================
LISTP=16C74B
#include
ERRORLEVEL -302
I2C_A EQU 0X20
I2C_B EQU 0X21
I2C_C EQU 0X22
I2C_D EQU 0X23
I2C_E EQU 0X24
I2C_F EQU 0X25
I2C_G EQU 0X26
REG1 EQU 0X2B
REG2 EQU 0X2C
COUNT EQU 0X71; I2C
BCOUNT EQU 0X72; I2C
TXBUF EQU 0X73; I2C
RXBUF EQU 0X74; I2C
BUSCON EQU 0X75; I2C
BUSSTA EQU 0X76; I2C
I2CBUF EQU 0X77; I2C
SLAVEADDR EQU 0XA0; I2C
DATAADDRH EQU 0X01; I2C
DATAADDRL EQU 0X00; I2C
;---------------------------------------
; BUSCON
;---------------------------------------
SLAVE_RW EQU 7
LAST_BYTE_RX EQU 6
SLAVE_ACTIVE EQU 5
TIME_OUT EQU 4
;---------------------------------------
; BUSSTA
;---------------------------------------
BUS_BUSY EQU 7
TX_PROGRESS EQU 6
RX_PROGRESS EQU 5
TX_SUCCESS EQU 4
RX_SUCCESS EQU 3
FATAL_ERROR EQU 2; SLAVEEEPROM
ABORT EQU 1
ACK_ERROR EQU 0
;---------------------------------------
R_NOT_W EQU 0
TRUE EQU 1
FALSE EQU 0
SDA EQU 0X04; I2C
SCL EQU 0X03; I2C
;================================================
ORG 0X00
GOTO START
ORG 0X20
START BCF STATUS, RP1
BCF STATUS, RP0
CLRF RA
CLR FRB
CLRF RC
CLR FRD
CLRF RE
BSF STATUS, RP0
CLRF TRISA
CLRF TRISB
CLRF TRISC
CLRF TRISD
CLRF TRISE
MOVLW 0X02
MOVWF I2C_A
MOVLW 0X04
MOVWF I2C_B
MOVLW 0X03
MOVWF I2C_C
MOVLW 0X03
MOVWF I2C_D
MOVLW 0X05
MOVWF I2C_E
MOVLW 0X06
MOVWF I2C_F
MOVLW 0X04
MOVWF I2C_G
;================================================
START1 CALL I2CBUS_INIT
CALL REGTOI2CBUF
CALL I2CWRITE
CALL CLRI2CBUF
CALL D10
CALL I2CREAD
CALL I2CBUFTOREG
GOTO START1
;================================================
; CLRI2CBUF
;---------------------------------------
CLRI2CBUF
BCF STATUS, RP0
MOVLW I2CBUF
MOVWF FSR
MOVLW 0X08
MOVWF COUNT
CLRLOOP CLRF INDF
INCFSZ FSR, F
GOTO CLRLOOP
RETURN
;---------------------------------------
; Write each REGISTER data to the I2CBUF buffer
;---------------------------------------
REGTOI2CBUF
BCF STATUS, RP0
MOVLW I2CBUF
MOVWF FSR
MOVFI2C_A, W
MOVWF INDF
INCFSZ FSR, F
MOVFI2C_B, W
MOVWF INDF
INCFSZ FSR, F
MOVFI2C_C, W
MOVWF INDF
INCFSZ FSR, F
MOVFI2C_D, W
MOVWF INDF
INCFSZ FSR, F
MOVFI2C_E, W
MOVWF INDF
INCFSZ FSR, F
MOVFI2C_F, W
MOVWF INDF
INCFSZ FSR, F
MOVFI2C_G, W
MOVWF INDF
RETURN
;---------------------------------------
; Write I2CBUF buffer data to each REGISTER
;---------------------------------------
I2CBUFTOREG
BCF STATUS, RP0
MOVLW I2CBUF
MOVWF FSR
MOVF INDF, W
MOVWF I2C_A
INCFSZ FSR, F
MOVF INDF, W
MOVWF I2C_B
INCFSZ FSR, F
MOVF INDF, W
MOVWF I2C_C
INCFSZ FSR, F
MOVF INDF, W
MOVWF I2C_D
INCFSZ FSR, F
MOVF INDF, W
MOVWF I2C_E
INCFSZ FSR, F
MOVF INDF, W
MOVWF I2C_F
INCFSZ FSR, F
MOVF INDF, W
MOVWF I2C_G
RETURN
;================================================
; Write data in the I2CBUF buffer to the EEPROM
;================================================
I2CWRITE
CALL I2CSTART
BTFSS BUSSTA, BUS_BUSY
GOTO TX_FAIL
BCF BUSCON, SLAVE_RW
CALL TX_SLAVE_ADDR
BTFSS BUSSTA, TX_SUCCESS
GOTO TX_FAIL
CALL TX_DATA_ADDR
BTFSS BUSSTA, TX_SUCCESS
GOTO TX_FAIL
MOVLW I2CBUF
MOVWF FSR
MOVLW 07
MOVWF COUNT
T_BYTE_LOOP
MOVF INDF, W
MOVWF TXBUF
CALL I2CTXB
BTFSS BUSSTA, TX_SUCCESS
GOTO TX_FAIL
INCFSZ FSR, F
GOTO T_BYTE_LOOP
GOTO TX_PASS
TX_FAIL CALL I2CSTOP
BCF BUSSTA, TX_PROGRESS
BCF BUSSTA, TX_SUCCESS
RETLW FALSE
TX_PASS
CALL I2CSTOP
BCF BUSSTA, TX_PROGRESS
RETLW TRUE
;---------------------------------------
; read data from EEPROM to I2CBUF register
;---------------------------------------
I2CREAD
BCF STATUS, RP0
BCF BUSSTA, RX_SUCCESS
CALL I2CSTART
BTFSS BUSSTA, BUS_BUSY
GOTO RX_FAIL
BCF BUSCON, SLAVE_RW
CALL TX_SLAVE_ADDR
BTFSS BUSSTA, TX_SUCCESS
GOTO RX_FAIL
CALL TX_DATA_ADDR
BTFSS BUSSTA, TX_SUCCESS
GOTO RX_FAIL
CALL I2CSTART
BSF BUSCON, SLAVE_RW
CALL TX_SLAVE_ADDR
BTFSS BUSSTA, TX_SUCCESS
GOTO RX_FAIL
BCF BUSSTA, LAST_BYTE_RX
MOVLW I2CBUF
MOVWF FSR
MOVLW 07
MOVWF COUNT
R_BYTE_LOOP
MOVLW 0X01
XORWF COUNT, W
BTFSC STATUS, Z
BSF BUSSTA, LAST_BYTE_RX
CALL I2CRXB
BTFSS BUSSTA, RX_SUCCESS
GOTO RX_FAIL
MOVF RXBUF, W
MOVWF INDF
INCFSZ FSR, F
GOTO R_BYTE_LOOP
GOTO RX_PASS
RX_FAIL CALL I2CSTOP
BCF BUSSTA, RX_PROGRESS
BCF BUSSTA, RX_SUCCESS
RETLW FALSE
RX_PASS CALL I2CSTOP
BCF STATUS, RP0
BCF BUSSTA, TX_PROGRESS
BCF BUSSTA, RX_PROGRESS
BSF BUSSTA, RX_SUCCESS
RETLW TRUE
;================================================
; I2C initialization
;================================================
I2CBUS_INIT
BCF STATUS, RP0
MOVF RC, W
ANDLW 0X18
MOVWF RC
CLRF BUSSTA
CLRF BUSCON
RETURN
;================================================
; transfer device address
; entrance: BUSCON
; Export: BUSSTA
;================================================
TX_SLAVE_ADDR
BCF STATUS, RP0
BCF BUSSTA, ACK_ERROR
MOVLW SLAVEADDR
MOVWF TXBUF
BTFSC BUSCON, SLAVE_RW
BSF TXBUF, R_NOT_W
CALL I2CTXB
BTFSC BUSSTA, TX_SUCCESS
GOTO TXADDR_SUCCESS
CLRWDT
BTFSS BUSSTA, ACK_ERROR
CALL I2CSTOP
GOTO TXADDR_END
TXADDR_SUCCESS
CLRWDT
TXADDR_END
RETURN
;================================================
; TX_DATA_ADDR sends the write/read address
;================================================
TX_DATA_ADDR
BCF STATUS, RP0
MOVLW DATAADDRH
MOVWF TXBUF
CALL I2CTXB
BCF STATUS, RP0
BTFSS BUSSTA, TX_SUCCESS
GOTO TX_DATA_ADDR_ERROR
MOVLW DATAADDRL
MOVWF TXBUF
CALL I2CTXB
BCF STATUS, RP0
BTFSS BUSSTA, TX_SUCCESS
GOTO TX_DATA_ADDR_ERROR
GOTO TX_DATA_END
TX_DATA_ADDR_ERROR
BCF BUSSTA, TX_PROGRESS
BCF BUSSTA, TX_SUCCESS
BSF BUSSTA, ACK_ERROR
TX_DATA_END
RETURN
;================================================
; output an 8-bit data to the EEPROM and detect the ACK signal of the EEPROM
; Entry: TXBUF register
; BUSSTA register
; Export: EEPROM memory
; BUSSTA register
;===============================================
I2CTXB
BCF STATUS, RP0
BSF BUSSTA, TX_PROGRESS
BCF BUSSTA, TX_SUCCESS
MOVLW 0X08
MOVWF BCOUNT
TXLOOP CLRWDT
BSF STATUS, RP0
BCF TRISC, SCL
NOP
BCF TRISC, SDA
BCF STATUS, RP0
RLFW TXBUF, F
BSF STATUS, RP0
BTFSC STATUS, C
BSF TRISC, SDA
NOP
BSF TRISC, SCL
NOP
NOP
BCF STATUS, RP0
DECFSZ BCOUNT, F
GOTO TXLOOP
;---------------------------------------
; Detection is EEPROM whether there is ACK signal generated, produced as normal
; Detection method:
; 1. Set the SCL.SDA of the RC port to the output and input states respectively.
; 2. Delay 2 instruction cycles, set SCL to high level
; 3. Delay 2 instruction cycles to detect the status of RC port SDA
; 4. If it is high, set the error status, return
; 5. If it is low, after delaying 2 instruction cycles, set RC port SCL to low level and continue execution.
;---------------------------------------
BSF STATUS, RP0
BCF TRISC, SCL
BSF TRISC, SDA
NOP
NOP
BSF TRISC, SCL
NOP
BCF STATUS, RP0
BTFSC RC, SDA
GOTO TX_ERR
BSF STATUS, RP0
BCF TRISC, SCL
BCF STATUS, RP0
BCF BUSSTA, TX_PROGRESS
BSF BUSSTA, TX_SUCCESS
BCF BUSSTA, ACK_ERROR
GOTO TX_END
TX_ERR BCF BUSSTA, TX_PROGRESS
BCF BUSSTA, TX_SUCCESS
BSF BUSSTA, ACK_ERROR
TX_END RETURN
;================================================
; read 8 bits of data from the EEPROM and send an ACK signal
; entry: EEPROM memory
; BUSCON register
; Export: RXBUF register
; BUSSTA register
;================================================
I2CRXB
BCF STATUS, RP0
BSF BUSSTA, RX_PROGRESS
BCF BUSSTA, RX_SUCCESS
MOVLW 0X08
MOVWF BCOUNT
RXLOOP CLRWDT
BSF STATUS, RP0
BCF TRISC, SCL; define TRISC For output
BSF TRISC, SDA; definition TRISC For input
NOP
NOP
BSF TRISC, SCL; TRISC Output high level
NOP
BCF STATUS, RP0
BCF STATUS, C
BTFSC RC, SDA; original instruction is BTFSCTRISC, SDA
BSF STATUS, C
RLFRXBUF, F
DECFSZ BCOUNT, F
GOTO RXLOOP
;---------------------------------------
; send ACK signal to EEPROM
; determine whether the received byte is the last byte
; LAST_BYTE_RX is 1, is SDA send a high level, the end
; LAST_BYTE_RX is 0, not SDA sends a low ACK, continues to receive
;---------------------------------------
BSF STATUS, RP0
BCF TRISC, SCL
BCF TRISC, SDA
BTFSC BUSCON, LAST_BYTE_RX; check if it is the last byte
BSF TRISC, SDA; is the last byte
NOP; send ACK signal
BSF TRISC, SCL
NOP
NOP
NOP
NOP
BCF TRISC, SCL
BCF STATUS, RP0
BCF BUSSTA, RX_PROGRESS
BSF BUSSTA, RX_SUCCESS
RETURN
;================================================
; I2C start signal
; input: none
; Output: BUFSSTA
;================================================
I2CSTART
BSF STATUS, RP0
BSF TRISC, SDA; 1US
NOP; 1US
BSF TRISC, SCL; 1US
NOP
NOP
BCF TRISC, SDA
NOP
NOP
BCF STATUS, RP0
BSF BUSSTA, BUS_BUSY
RETURN
;================================================
; I2C end signal
; input: none
; Output: BUSSTA
;================================================
I2CSTOP
BSF STATUS, RP0
BCF TRISC, SCL
BCF TRISC, SDA
BSF TRISC, SCL
NOP
NOP
BSF TRISC, SDA
NOP
BCF STATUS, RP0
BCF BUSSTA, BUS_BUSY
RETURN
;================================================
; D10@
; cLOCkin 4MHz
; delay 10ms
;================================================
D10 MOVLW 0X0D
MOVWF REG1
LOOP2 MOVLW 0XFF
MOVWF REG2
LOOP1 DECFSZ REG2,f
GOTO LOOP1
DECFSZ REG1,f
GOTO LOOP2
RETURN
;================================================
I2CERR CLRWDT
NOP
NOP
NOP
RETURN
END
Indoor Led Kiosk Eposter
Best advertising player or money making machine---Led Kiosk Xposter
This Type of indoor led Xposter also called led AD player is one of new applications for led displays. Developed from led screens, it is more suitable and friendly to operate.
Function of Xposter is as following:
Ultra slim& light weight. Installation friendly
Xposter has been engineered with latest technologies to give smoother, slimmer profile. It's crafted in beautiful anodized light weight& duralble aluminum body to make entire poster framce less than 35KGS. More portable and easier to install.
Plug and Play Media player. No Configuration.
Update your digital content in the powerfull built in media play via wifi or USB. Easy to follow on screen menu makes it absolutely simple to schedule your content and complicated configuration needed.
Front Serviceable
You'll love the speedy convenience of doing servicing of panel module replacement from front with just a magnet tool.
Easy Controll & operation
High refresh rate and 128 steps of gradation controll. No Pc required, Thus saves on cost, increases reliability and makes operations simpler.
Intelligent Management.
Xposter is pre-integrated software enables you to connect it with a PC or Android devices from a single location via rj45, wifi,3G, USD and HDMI. That makes it extremely easy to identify your display and manage settings.
Indoor Led Kiosk Eposter,Indoor Led Advertising Player,P2.5 Indoor Led Ad. Poster,Intelligent Indoor Led Advertising Player
Shenzhen Priva Tech Co., Ltd. , https://www.privaled.com