找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4208|回复: 1
打印 上一主题 下一主题
收起左侧

[求助]LCD1602放在开发板上就显示 自建电路中就不显示 大侠帮帮忙 明天就要用了 谢谢各位!!!

[复制链接]
跳转到指定楼层
楼主
ID:46553 发表于 2012-11-18 21:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

 RS BIT P2.4 ;这3位是液晶屏的控制信号,连接方式由具体硬件而定

 RW BIT P2.5

 E BIT P2.6

 ORG 00H

 AJMP MAIN

MAIN:

mov R0,#24

ACALL INITIAL

ACALL DISPLAY;调用液晶显示子程序

AJMP MAIN

;-------液晶显示---------------------------------------

DISPLAY:   

MOV A,#80H  ;第一行第1 个点

ACALL WR_CMD

MOV DPTR, #LINE1

ACALL PR_STR

ACALL WR_DATA

DISP1:

MOV A,#18H         ;字符左移命令(注:实物中左移命令字为18H)

ACALL WR_CMD

ACALL D05S

DJNZ R0,DISP1

RET

;---液晶屏初始化-------------------------------------------------

INITIAL:     

MOV A, #01H

ACALL WR_CMD

MOV A, #38H

ACALL WR_CMD

MOV A, #0CH

ACALL WR_CMD

MOV A, #06H

ACALL WR_CMD

RET

;----写液晶指令的子程序------------------------------------------

WR_CMD:

MOV P0, A

CLR RS ;写入控制命令

CLR RW

CLR E

ACALL DELAY

SETB E

RET

;----写液晶数据---------------------------------------------

WR_DATA:

MOV P0, A

SETB RS ;写入数据

CLR RW

CLR E

ACALL DELAY ;判断液晶模块是否忙?

SETB E

RET

;-----写行字符---------------------------------------------------------------

PR_STR:

CLR   A

MOVC A, @A+DPTR

JZ    END_PR

ACALL WR_DATA

INC   DPTR

AJMP PR_STR

END_PR:    

RET

;----查看液晶忙碌信号---------------------------------------------------------

DELAY:

MOV P0,#0FFH ;判断液晶显示器是否忙的子程序

CLR RS

SETB RW

CLR E

NOP

SETB E

JB P0.7,DELAY ;如果P0.7为高电平表示忙就循环等待

RET

 

;----0.5S延时(按12MHZ算)-----------------------------------------------------------------

D05S: 

MOV R6,#25

MOV R5,#100

MOV R4,#100

DJNZ R4,$

DJNZ R5,$-4

DJNZ R6,$-8

RET

;--------------------------------------------------------------------------------------

LINE1:
DB 'Happy birthday to you!'
END

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2012-11-20 02:16 | 只看该作者

既然在开发板上能用证明 你这个程序是没有问题的,,问题肯定是出在你的硬件电路上 仔细检查一下电路

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表