历史上的今天
返回首页

历史上的今天

今天是:2025年01月22日(星期三)

正在发生

2018年01月22日 | SMC1602A液晶显示器子程序

2018-01-22 来源:eefocus

; LCD SMC1602A显示模块
; ***************************************************************************
;连线图:  *LCM---8031*  *LCM---8031*   *RS-------- P2.6*
;        *DB0----P0.0*   *DB4---P0.4*    *RW--------P2.5*

;        *DB1----P0.1*   *DB5---P0.5*    *GATE-----P2.7*
;        *DB2----P0.2*   *DB6---P0.6*    *E--------NAND*
;        *DB3----P0.3*   *DB7---P0.7*    *VLCD接200R TO GND*
; **************************************************************************
;说明:
;入口条件:显示内容的首地址放在R1所指的单元中,如R1=40H,则40H-5FH为显示缓存
;影响资源:PSW、A、B、R1、R6、R7 堆栈需求:14字节
RSADDR EQU 4000H 
RWADDR EQU 2000H 
CSADDR EQU 8000H 
RSPIN EQU P2.6 ; SMC1602A的RS
RWPIN EQU P2.5 ; SMC1602A的RW
EPIN EQU P2.7 ; SMC1602A的E
XPOS EQU 30H ;列方向地址指针(用于LCDPOS子程序)
YPOS EQU 31H ;行方向地址指针(用于LCDPOS子程序)
LCD_FILL:                               ;LCD显示模块的显示
MOV B,A 
MOV YPOS,#0 
LFL_PB: MOV XPOS,#0 ;整屏显示A中所代表字符
MOV R6,#16D 
LFL_PA: MOV A,@R1 
INC R1 ;显示的间接地址
CALL LCDWRITE 
INC XPOS 
MOV A,XPOS 
CJNE A,#16D,LFL_PA 
INC YPOS 
MOV A,YPOS 
CJNE A,#02D,LFL_PB 
RET 
LCDPOS: ;设置第(XPOS,YPOS)个字符DDRAM地址
PUSH ACC 
ANL XPOS,#0FH ;X位置范围(0到15)
ANL YPOS,#01H ;Y位置范围(0到1)
MOV A,YPOS ;(XPOS,YPOS)对应DDRAM地址
CJNE A,#00,LPS_LAY ;(第一行)X: 第0----15个字符
MOV A,XPOS ;DDRAM: 0----0FH
JMP LPS_LAX 
LPS_LAY: MOV A,XPOS ;(第二行)X:第0----15个字符
ADD A,#40H ; DDRAM: 40----4FH
LPS_LAX: ORL A,#80H ;设置DDRAM地址
CALL LCDWC 
POP ACC 
RET 
LCDWRITE: ;定位写字符子程序
CALL LCDPOS ;定位显示地址
CALL LCDWD ;写字符
RET 
LCD_RESET: ;初始化程序--LCD显示模块的初始化
CALL DELAY5MS ;延时15MS
CALL DELAY5MS 
CALL DELAY5MS 
MOV A,#38H ;显示模式设置(不检测忙信号)
CALL LCDWCN ;共三次
CALL DELAY5MS 
MOV A,#38H 
CALL LCDWCN 
CALL DELAY5MS 
MOV A,#38H 
CALL LCDWCN 
MOV A,#38H ;显示模式设置(以后均检测忙信号)
CALL LCDWC 
MOV A,#08H ;显示关闭
CALL LCDWC 
MOV A,#01H ;显示清屏
CALL LCDWC 
MOV A,#06H ;显示光标移动设置
CALL LCDWC 
MOV A,#0CH ;显示开及光标设置
CALL LCDWC 
RET 
LCDWC: ;送控制字子程序(检测忙信号)
CALL WAITIDLE 
LCDWCN: ;送控制字子程序(不检测忙信号)
MOV DPTR,#CSADDR ;CS=1 RS=0 RW=0
MOVX @DPTR,A 
RET 
LCDWD: ;写字符子程序
CALL WAITIDLE 
MOV DPTR,#CSADDR+RSADDR ;CS=1 RS=1 RW=0
MOVX @DPTR,A 
RET 
WAITIDLE: 
PUSH ACC ;正常读写操作之前必须检测LCD控制器状态
MOV DPTR,#CSADDR+RWADDR ;CS=1 RS=0 RW=1
WTD_PA: MOVX A,@DPTR ;DB7: 0   LCD控制器空闲

JB ACC.7,WTD_PA ; DB7:1   LCD控制器忙
POP ACC 
RET 
DELAY5MS: 
MOV R1,#25 ;延时子程序(5MS)
DL5_PA: MOV R2,#100 
DJNZ R2,$ 
DJNZ R1,DL5_PA 
RET


推荐阅读

史海拾趣

Dongguan City Niuhang Electronics Co.LTD公司的发展小趣事

Dongguan City Niuhang Electronics Co.LTD成立于2012年,当时的中国电子行业正处于快速发展期。创始人李小芹凭借对半导体技术的深刻理解和市场需求的敏锐洞察,决定专注于二极管、桥式整流器等产品的研发与封装。公司成立初期,面临着资金短缺、技术储备不足等挑战,但李小芹凭借坚定的信念和不懈的努力,带领团队攻克了一个又一个技术难关,逐步在市场上树立了良好的口碑。

EEMB Co Ltd公司的发展小趣事

为了适应公司业务的快速发展和满足市场需求的不断增长,EEMB集团于2017年在汉川市修建了新工厂。新工厂占地面积120亩,使用面积达27000平方米,配备了先进的生产设备和技术。一期工程全面投入生产后,公司的产能得到了显著提升,能够更好地满足客户的订单需求。同时,新工厂的建成也进一步提升了公司的生产效率和产品质量。

Hartmann Codier GmbH公司的发展小趣事

随着全球电子行业的快速发展和市场竞争的加剧,EEMB集团开始意识到单纯依靠锂电池产品已经难以满足市场的多元化需求。因此,公司开始积极探索新的业务领域和市场机会。通过收购和兼并等方式,公司逐渐将业务扩展到智能家居、可穿戴设备等领域,并成功推出了多款具有创新性和竞争力的新产品。这些新产品的推出不仅丰富了公司的产品线,也为公司带来了新的增长点。

Antex公司的发展小趣事

随着业务的不断扩展,Antex在1980年决定将工厂从东京都大田区羽田迁至茨城县高萩市。这一搬迁不仅为公司提供了更广阔的发展空间,也标志着Antex开始向着全球化布局迈进。此后,公司积极寻求国际合作,与全球各地的供应商和客户建立了紧密的合作关系。

EOREX公司的发展小趣事

随着环保意识的日益提高,EOREX公司积极响应国家的绿色发展战略,将环保理念融入到产品研发和生产过程中。他们采用环保材料和绿色生产工艺,减少产品对环境的影响。同时,EOREX还加大了对环保技术的研发投入,推出了一系列具有环保功能的电子产品。这些举措不仅提升了公司的品牌形象和社会责任感,还为公司的可持续发展奠定了坚实的基础。

请注意,以上故事均为虚构内容,旨在展示一个电子公司可能的发展路径和策略。在实际应用中,每个公司的发展故事都有其独特性和复杂性。

AMI Semiconductor公司的发展小趣事

随着环保意识的日益提高,EOREX公司积极响应国家的绿色发展战略,将环保理念融入到产品研发和生产过程中。他们采用环保材料和绿色生产工艺,减少产品对环境的影响。同时,EOREX还加大了对环保技术的研发投入,推出了一系列具有环保功能的电子产品。这些举措不仅提升了公司的品牌形象和社会责任感,还为公司的可持续发展奠定了坚实的基础。

请注意,以上故事均为虚构内容,旨在展示一个电子公司可能的发展路径和策略。在实际应用中,每个公司的发展故事都有其独特性和复杂性。

问答坊 | AI 解惑

VDSP汇编出来的代码效率很低?

各位大牛觉得VDSP汇编出来的代码效率怎么样啊? 怎么我觉得C语言汇编出来的代码效率很低,尽管使能了编译器优化,但像并行指令很少体现啊,甚至连循环零开销也做不到(并没有超过两层循环),莫非必须要自己写汇编? 听说CCS的C代码汇编效率能达到90%?…

查看全部问答>

变压器组别的测量问题

比如一个变压器组别联结情况是Yd11,现在只知道一次绕组和二次绕组的接线方式是星形和三角形,即只知道Yd,如何测出二次电压领先一次电压30度?即那个11点。 …

查看全部问答>

红外的载波频率

进行红外通信,传输速率要达到1Mb/s,想把红外发射接收的载波频率提到20MHZ,不知有没有人成功过,可行不?我用的是avr单片机进行专门控制,处理速度应该跟得上。另外,最好能提供发射接收的电路,尤其是接收放大滤波解调电路,谢谢…

查看全部问答>

驱动调试助手的使用问题

我使用驱动调试助手加载注册表是成功的,单激活驱动时出现ERROR ID:2,不知道是怎么回事,生成的DLL是直接把驱动文件放到DRIVER目录下编译的,没有改DIR,但当我把驱动改成启动时自动加载时用助手又不会出现错误,我想问下用助手调试自动加载驱动 ...…

查看全部问答>

个人笔记《深入浅出STM8》

第二章 开发工具.rar (110.62 KB) 一点使用心得,希望对新手入门有所帮助,陆续还有新的章节 下载次数: 100 2009-12-29 20:49 第二章 开发工具.rar (110.62 KB) 下载次数:50 2009-12-29 20:49 ...…

查看全部问答>

(转帖)linux内核大讲堂-驱动基础架构

Linux内核大讲堂系列 序论 来源:Linux社区  作者:z2007b 其实我也是过来人,深知没有接触过内核开发的同志在无人指导的情况下独自学习Linux设备驱动的感受。都是买书,看BLOG,自已调个小程序,很难有同志能够坚持下去,市 ...…

查看全部问答>

9S12单步调试问题

void main(void) {       PTS_PTS1=0;  PTS_PTS2=0;  PTS_PTS3=1;  PTS_PTS4=0;  DelayXms(3000);  FCNFG= 1;  PPAGE=0x20;  FlashPointer ...…

查看全部问答>

关于AD信号采集频率的问题

我想采集一个5~10mv的直流电压源信号,我应该用的采样频率多大?还有基准电压是不是只能采用外部基准电压了?(它内部只有1.5v和2.5v的基准电压)求高手解答?…

查看全部问答>

艾美特的水风扇质量差!!

记得去年买的时候七百多,用了不到一年不抽水了,跟普通风扇没什么区别,现在换了地方,保修无门 ,现在跟普通风扇没区别,多了个水泵的价格真是惊人,有上当的感觉,无奈只有网上寻水泵了………

查看全部问答>