SETB TR0 ;开定时器0
SETB ET0 ;致能定时0中断
CLR TF0 ;清定时0中断标志
SETB EA ;开总中断
MOV LedT0,#00H
MOV DPTR,#TABLE
;=============================================
SCAN:
;按键扫描
JB P3.2,$
LCALL DELAY10MS ;去抖动
JNB P3.2,KEY_RESET
LJMP SCAN
;=============================================
KEY_RESET:
MOV LED1,#00
MOV LED2,#00
MOV LED3,#00
MOV LED4,#00
;储存
CALL AT24C01_WRITE_ALL
;检测按键是否放开
JNB P3.2,$
JMP SCAN
DELAY10MS:
MOV R4,#20
DELAY10MSA:
MOV R5,#247
DJNZ R5,$
DJNZ R4,DELAY10MSA
RET
TABLE:
DB 00101000B ;0
DB 11101011B ;1
DB 00110010B ;2
DB 10100010B ;3
DB 11100001B ;4
DB 10100100B ;5
DB 00100100B ;6
DB 11101010B ;7
DB 00100000B ;8
DB 10100000B ;9
DB 01100000B ;A
DB 00100101B ;b
DB 00111100B ;C
DB 00100011B ;d
DB 00110100B ;E
DB 01110100B ;F
DB 11110111B ;-
DB 11111111B ;
;====================================================
;读出全部数据
AT24C01_READ_ALL:
MOV Address,#00H
CALL I2C_READ
MOV LED1,A ;读出数据
MOV Address,#01H
CALL I2C_READ
MOV LED2,A ;读出数据
MOV Address,#02H
CALL I2C_READ
MOV LED3,A ;读出数据
MOV Address,#03H
CALL I2C_READ
MOV LED4,A ;读出数据
RET
;====================================================
;写入全部数据
AT24C01_WRITE_ALL:
MOV Address,#00H
MOV A,LED1
MOV I2CData,A
CALL I2C_WRITE ;写入数据
MOV Address,#01H
MOV A,LED2
MOV I2CData,A
CALL I2C_WRITE ;写入数据
MOV Address,#02H
MOV A,LED3
MOV I2CData,A
CALL I2C_WRITE ;写入数据
MOV Address,#03H
MOV A,LED4
MOV I2CData,A
CALL I2C_WRITE ;写入数据
RET
;====================================================
;写一个字节 Address地址 I2CDatata写入的数据
;====================================================
I2C_WRITE:
I2C_WRITE_A:
LCALL I2C_START
MOV A,#10100000B
LCALL I2C_SEND8BIT
LCALL I2C_ACK
JC I2C_WRITE_A ;=1,表示无确认,再次发送
MOV A,Address
LCALL I2C_SEND8BIT
LCALL I2C_ACK
MOV A,I2CData
LCALL I2C_SEND8BIT
LCALL I2C_ACK
LCALL I2C_STOP
RET
;====================================================
;读一个字节 Address地址 Data读出的数据
;====================================================
I2C_READ:
I2C_READ_A:
LCALL I2C_START
MOV A,#10100000B
LCALL I2C_SEND8BIT
LCALL I2C_ACK
JC I2C_READ_A ;=1,表示无确认,再次发送
上一页 [1] [2] [3] 下一页
本文关键字:程序 计数器 51单片机,单片机-工控设备 - 51单片机