再说,你要信仔讲清楚是多大尺寸的屏。带中文字库还是不带?这两点讲清楚后才能滑竖汪告纤逗诉你。
12864的IC有:PT6607\ST7576\NT7534\ST7920\AT0107..............太多了
*************************************LCD型号JHD529(12864)带汉字字库
参考资料ST7920
文件名 JHD529.ASM
LCD显示
-----------------------
白天:00
夜间:00
等待:00
-----------------------
DI BIT P1.1
RW BIT P1.2
E BIT P1.3
PSB BIT P2.7
RESET BIT P2.3
DAYH EQU 31H 屏幕上显哗败粗示白天的数值,十位的控制单元
DAYL EQU 32H 屏幕上显示白天的数值,个位的控制单元
NIGHTH EQU 33H 屏幕上显示夜间的数值,十位的控制单元
NIGHTL EQU 34H 屏幕上显示夜间的数值,个位的控制单元
WAITH EQU 35H 屏幕上显示等待的数值,十位的控制单元
WAITL EQU 36H 屏幕上显示等待的数值,个位的控制单元
KEEP1 EQU 37H 按键控制白天数值加或减一所用的存储单元
KEEP2 EQU 25H 按键控制夜间数值加或减一所用的存储单元
KEEP3 EQU 39H 按键控制等待数值加枯纤或减一所用的存储单元
SHANSHOU EQU 38H 控制光标是否闪烁的存储单元
SSWEIZHI EQU 23H 决定了光标在哪个位乱镇置闪烁的存储单元
MAOHAOEQU 21H 决定了选择冒号还是|的存储单元
XUANZHESS EQU 20H 决定了择光标闪烁子的存储单元
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:
SETB PSB 设置液晶屏显示模式为并行
MOV SP,#50H
MOV DAYH,#0
MOV DAYL,#0
MOV NIGHTH,#0
MOV NIGHTL,#0
MOV WAITH,#0
MOV WAITL,#0
MOV KEEP1,#0
MOV SHANSHOU,#0
MOV MAOHAO,#0
MOV SSWEIZHI,#0
MOV KEEP2,#0
MOV KEEP3,#0
LCALL INIT
LCALL BMP1
AA:
MOV P1,#0FFH 读按键
MOV A,P1
ANL A,#0FFH
MOV 45H,A
CJNE A,#0FFH,YJ
LJMP SAN1
YJ: LCALL DELAY10
MOV P1,#0FFH
MOV A,P1
ANL A,#0FFH
CJNE A,#0FFH,SHYJ
LJMP SAN1
SHYJ: CJNE A,45H,SAN1
JNB ACC.4,S1
JNB ACC.5,S2
JNB ACC.6,S3
JNB ACC.7,S4
S1: JNB P1.4,S1
LCALL AJJY1 按键加一
AJMPTAOZHUAN
SAN1: MOV A,MAOHAO
CJNEA,#1,AA
LCALL GUANBX 光标闪烁的子程序
TAOZHUAN:LCALL BMP1
LCALL DEL200MS
AJMP AA
S2: JNB P1.5,S2
LCALL AJJY2 按键减一的子程序
LCALL BMP1
LCALL DEL200MS
AJMP AA
S3: JNB P1.6, S3
INC SSWEIZHI
MOV A,SSWEIZHI 决定了光标在哪个位置闪烁的存储单元
MOV MAOHAO,#1 光标闪烁
CJNE A,#4,AAB
MOV SSWEIZHI,#0
MOV MAOHAO,#1 光标闪烁
AAB:AJMP AA
S4: JNB P1.7, S4
MOV MAOHAO,#0 光标不闪
AJMP AA
BMP1:
MOV A,#01H 清显示
LCALL WC1
MOV A,#80H
LCALL WC1
MOV A,#0B0H 查表显示白
LCALL WD1
MOV A,#0D7H
LCALL WD1
MOV A,#0CCH 查表显示天
LCALL WD1
MOV A,#0ECH
LCALL WD1
MOV A,SSWEIZHI
CJNEA,#1,TIAOZ1
LCALL SHUZPD1 光标闪烁子程序
AJMPTIAOZ11
TIAOZ1: LCALL MAOH
TIAOZ11 :LCALL SHUZIPD1 调用十位数字改变的子程序
LCALL SHUZIPD2 调用个位数字改变的子程序
MOV A,#90H
LCALL WC1
MOV A,#0D2H 查表显示夜
LCALL WD1
MOV A,#0B9H
LCALL WD1
MOV A,#0BCH 查表显示间
LCALL WD1
MOV A,#0E4H
LCALL WD1
MOV A,SSWEIZHI
CJNE A,#2,TIAOZ2
LCALL SHUZPD1
AJMPTIAOZ22
TIAOZ2: LCALL MAOH
TIAOZ22: LCALL SHUZIPD3 调用十位数字改变的子程序
LCALL SHUZIPD4 调用个位数字改变的子程序
MOV A,#88H
LCALL WC1
MOV A,#0B5H 查表显示等
LCALL WD1
MOV A,#0C8H
LCALL WD1
MOV A,#0B4H 查表显示待
LCALL WD1
MOV A,#0FDH
LCALL WD1
MOV A,SSWEIZHI
CJNEA,#3,TAOZH3
LCALL SHUZPD1
AJMPTIAOZ33
TAOZH3: LCALL MAOH
TIAOZ33:LCALL SHUZIPD5 调用十位数字改变的子程序
LCALL SHUZIPD6 调用个位数字改变的子程序
RET
SHUZIPD1:MOV A,DAYH
LCALL SHUZIPD
RET
SHUZIPD2:MOV A,DAYL
LCALL SHUZIPD
RET
SHUZIPD3:MOV A,NIGHTH
LCALL SHUZIPD
RET
SHUZIPD4:MOV A,NIGHTL
LCALL SHUZIPD
RET
SHUZIPD5:MOV A,WAITH
LCALL SHUZIPD
RET
SHUZIPD6:MOV A,WAITL
LCALL SHUZIPD
RET
SHUZIPD:CJNE A,#0,YII 判断存储单元中是几,然后查相对应数字的字库地址
MOV A,#0A3H 显示0的字库地址
LCALL WD1
MOV A,#0B0H
LCALL WD1
LJMP RE
YII: CJNE A,#1,ERR
MOV A,#0A3H 显示1的字库地址
LCALL WD1
MOV A,#0B1H
LCALL WD1
LJMP RE
ERR: CJNE A,#2,SANN
MOV A,#0A3H 显示2的字库地址
LCALL WD1
MOV A,#0B2H
LCALL WD1
LJMP RE
SANN: CJNE A,#3,SII
MOV A,#0A3H 显示3的字库地址
LCALL WD1
MOV A,#0B3H
LCALL WD1
LJMP RE
SII: CJNE A,#4,WUU
MOV A,#0A3H 显示4的字库地址
LCALL WD1
MOV A,#0B4H
LCALL WD1
LJMP RE
WUU: CJNE A,#5,LIUU
MOV A,#0A3H 显示5的字库地址
LCALL WD1
MOV A,#0B5H
LCALL WD1
LJMP RE
LIUU: CJNE A,#6,QII
MOV A,#0A3H 显示6的字库地址
LCALL WD1
MOV A,#0B6H
LCALL WD1
LJMP RE
QII: CJNE A,#7,BAA
MOV A,#0A3H 显示7的字库地址
LCALL WD1
MOV A,#0B7H
LCALL WD1
LJMP RE
BAA: CJNE A,#8,JIUU
MOV A,#0A3H 显示8的字库地址
LCALL WD1
MOV A,#0B8H
LCALL WD1
LJMP RE
JIUU: CJNE A,#9,RE
MOV A,#0A3H 显示9的字库地址
LCALL WD1
MOV A,#0B9H
LCALL WD1
RE: RET
GUANBX: INC XUANZHESS 光标闪烁控制子程序
MOV A,XUANZHESS
CJNE A,#1,BB
MOV SHANSHOU,#0
LJMP RE3
BB:MOV SHANSHOU,#1
MOV XUANZHESS,#0
RE3:RET
SHUZPD1:MOV A,SHANSHOU
LCALL SHUZPD
RET
SHUZPD:CJNE A,#0,YI
LCALL MAOH 调用显示:子程序
LJMP RE1
YI: CJNE A,#1,RE1
LCALL KOBAI 调用显示|子程序
RE1:RET
MAOH: MOV A,#0A1H 查表显示:
LCALL WD1
MOV A,#0C3H
LCALL WD1
RET
KOBAI: MOV A,#0A9H 查表显示|
LCALL WD1
MOV A,#0A6H
LCALL WD1
RET
AJJY1: 按键加一
MOV A,SSWEIZHI
CJNE A,#1,ERRR
INC KEEP1
MOV A,KEEP1
MOV B,#10
DIV AB
MOV DAYH,A
MOV DAYL,B
LJMP RT123
ERRR : CJNE A,#2,SANNN
INC KEEP2
MOV A,KEEP2
MOV B,#10
DIV AB
MOV NIGHTH,A
MOV NIGHTL,B
LJMP RT123
SANNN: CJNE A,#3,RT123
INC KEEP3
MOV A,KEEP3
MOV B,#10
DIV AB
MOV WAITH,A
MOV WAITL,B
RT123:RET
AJJY2: MOV A,SSWEIZHI按键减一
CJNE A,#1,ERRR1
DEC KEEP1
MOV A,KEEP1
MOV B,#10
DIV AB
MOV DAYH,A
MOV DAYL,B
LJMP RT123
ERRR1 :CJNE A,#2,SANNN1
DEC KEEP2
MOV A,KEEP2
MOV B,#10
DIV AB
MOV NIGHTH,A
MOV NIGHTL,B
LJMP RT123
SANNN1: CJNE A,#3,RT1231
DEC KEEP3
MOV A,KEEP3
MOV B,#10
DIV AB
MOV WAITH,A
MOV WAITL,B
RT1231: RET
INIT: CLR RESET 初始化LCD
SETB RESET
MOV A,#30H 设置基本指令集,8位控制界面
LCALL WC1
MOV A,#30H
LCALL WC1
MOV A,#0CH 开显示
LCALL WC1
MOV A,#01H 清显示
LCALL WC1
MOV A,#06H 进入点设定
LCALL WC1
RET
WC1:PUSH ACC 写命令
MOV P0,A
CLR RW
CLR DI
SETB E
NOP
CLR E
CALL RFG1
POP ACC
RET
WD1:PUSH ACC 写数据
MOV P0,A
CLR RW
SETB DI
SETB E
NOP
CLR E
CALL RFG1
POP ACC
RET
RFG1: MOV P0,#0FFH 判液晶屏忙否
SETB RW
CLR DI
BUSY: SETB E
MOV A,P0
CLR E
JB ACC.7,BUSY
RET
DELAY10:MOV R7,#20
DL20: MOV R6,#25
DL10: DJNZ R6,DL10
DJNZ R7,DL20
RET
DEL200MS:
MOV R7,#10
DEL2: MOV R6,#80
DEL1: MOV R5,#200
DEL0: DJNZ R5,DEL0
DJNZ R6,DEL1
DJNZ R7,DEL2
RET
END
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)