|
发表于 2010-3-16 21:09:07
|
显示全部楼层
RS EQU P3.5
RW EQU P3.6
E EQU P3.7
ORG 0000H
MOV SCON,#50H;设置成串口1方式
MOV TMOD,#20H;波特率发生器T1工作在模式2上
MOV PCON,#80H;波特率翻倍为2400x2=4800BPS
MOV TH1,#0F3H;预置初值(按照波特率2400BPS预置初值)
MOV TL1,#0F3H;预置初值(按照波特率2400BPS预置初值)
SETB TR1;启动定时器T1
;以上完成通讯初始化设置
MAIN:
CALL LCDCS
LOOP1: CALL READ
ACALL LCD
JMP LOOP1
READ:
ACALL RDE
CJNE A,#024H,READ
ACALL RDE
CJNE A,#047H,READ
ACALL RDE
CJNE A,#050H,READ
ACALL RDE
CJNE A,#052H,READ
ACALL RDE
CJNE A,#04DH,READ
ACALL RDE
CJNE A,#043H,READ
MOV R0,#10H;数据储存起始地址
MOV R1,#40;数据位数
store: ;储存
ACALL RDE
MOV @R0,A
INC R0
DJNZ R1,store
RDE:
JNB RI,$
CLR RI
MOV A,SBUF;
RET
LCDCS:
mov P2,#01h
acall CM
mov P2,#00111000b
acall CM
mov P2,#00001111b
acall CM
;mov P2,#00000110b
;acall CM
LCD:
MOV R0,#01CH
mov R1,#16
MOV P0,#080H
ACALL CM
LOOP0:
MOV A,@R0;提取数据
CALL CMD;写往1602
INC R0
DJNZ R1,LOOP0
RET
CM:
CLR RS
CLR RW
CLR E
ACALL DELAY
SETB E
RET
CMD:
mov P2,a
setb RS
clr RW
clr E
call DELAY
setb E
ret
DELAY:
MOV P2,#0FFH
CLR RS
SETB RW
CLR E
NOP
SETB E
JB P2.7,DELAY
nop
RET
[ 本帖最后由 wys25251325 于 2010-3-16 21:12 编辑 ] |
|