LCMRS EQU P2.4
LCMRW EQU P2.5
LCMEN EQU P2.6
LCMDATA EQU P0
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV SP,#60H
LCALL LCMSET
LCALL LCMCLR
MOV A,#80H
LCALL LCMWR0
MOV DPTR,#TAB0
LCALL LCMWR2
MOV A,#0C0H
LCALL LCMWR0
MOV DPTR,#TAB1
LCALL LCMWR2
SJMP $
TAB0: DB "I AM YUAN MING",00H
TAB1: DB "NICE TO MEET YOU",00H
LCMLAY: ;读忙程序,用于判断d7是否为0
PUSH ACC
LOOP:
CLR LCMEN
CLR LCMRS
SETB LCMRW
SETB LCMEN
MOV A,LCMDATA
CLR LCMEN
JB ACC.7,LOOP
POP ACC
LCALL DELAY
RET
LCMWR0: ;写入指令
LCALL LCMLAY
CLR LCMEN
CLR LCMRS
CLR LCMRW
SETB LCMEN
MOV LCMDATA,A
CLR LCMEN
RET
LCMWR1: ;写入数据
LCALL LCMLAY
CLR LCMEN
SETB LCMRS
CLR LCMRW
SETB LCMEN
MOV LCMDATA,A
CLR LCMEN
RET
LCMWR2: 写入字符串(字符串属于数据)
PUSH ACC
LOOP1:
CLR A
MOVC A,@A+DPTR
JZ LOOP2
LCALL LCMWR1
INC DPTR
LJMP LOOP1
LOOP2:
POP ACC
RET
LCMSET: ;程序初始化
MOV A,#38H
LCALL LCMWR0
MOV A,#08H
LCALL LCMWR0
MOV A,#01H
LCALL LCMWR0
MOV A,#06H
LCALL LCMWR0
MOV A,#0CH
LCALL LCMWR0
RET
LCMCLR: ;清屏
MOV A,#01H
LCALL LCMWR0
RET
DELAY:
MOV R6,#5 ;2.7MS延时子程序(作用尚不知)
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
END
关键字:51单片机 1602液晶 汇编语言
引用地址:
51单片机驱动1602液晶汇编语言程序
推荐阅读最新更新时间:2024-03-16 14:04
简述MCS51单片机的中断响应过程
单片机一旦响应 中断 请求, 就由硬件完成以下功能: (1) 根据响应的中断源的中断优先级, 使相应的优先级状态触发器置1; (2) 执行硬件中断服务子程序调用, 并把当前程序计数器PC的内容压入堆栈,保护断点,寻找中断源; (3) 清除相应的中断请求标志位(串行口中断请求标志RI和TI除外); (4) 把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC, 从而转入相应的中断服务程序。 (5)中断返回,程序返回断点处继续执行。
[单片机]
基于51单片机的万年历(算法实现)
基于51单片机的万年历,用到了单片机独立键盘、数码管、LED灯模块实现。 想要简单还是DS1302好用。 1 /************************************************** 2 3 作者:纟彖氵戋 博客:http://www.cnblogs.com/yllinux/ 4 5 时间:2017年6月7日 6 7 目标:利用单片机独立键盘、数码管、LED灯模块实现万年历(算法实现) 8 9 ***************************************************/ 10 #include reg52.h 11 #de
[单片机]
自制简单51单片机编程器(烧写器)
AT89C51是一款应用最为广泛的8051单片机,更重要的是他具有反复烧写(FLASH)的特性。一般情况下可重复烧写1000次,这样为初学者试验提供了一个廉价的平台。为了满足广大单片机爱好者动手的需要,本人利用半个月的时间,参考国外资料,实际设计制作成功一款简单的AT89C51/52/55单片机编程器。由于单片机编程时序不同,这一款编程器仅仅支持ATMEL公司的AT89C51, AT89C52, AT89C55芯片,不支持华邦或飞利浦兼容芯片。下面是单片机编程器电路图. 注:元器件清单见附录 工作原理简述: Q2, Q4以及周围的几个元件构成了电平转换电路,这样节省了1片max 232芯片,在要求不高的场合,这个电路在
[单片机]
51单片机总线编址电路
带总线扩展接口的单片机系统,包括外部32kRAM扩展、LCDl602接口、输入输出口。带编址扩展的单片机最小系统电路如下图所示。使用74HC573锁存低8位地址;74138实现8个地址扩展,74138的A、B、C接A8~A9,E1接Al5,E2、E3接地常有效,得到OF8FFH到OFFFFH8个地址或者8000H到8700H(无关位用0表示)。 32k接口如下图所示。DO~D7接数据总线p0口,地址线AO~Al4接单片机地址总线低15位,单片机地址线Al5接片选信号,低 电平 有效,这样地址分配从OOOOH到7FFFH,与74138译码地址不冲突。 LCD1602接口电路如下图所示。
[单片机]
Flex与51单片机socket通信 策略问题
直接把 cross-domain-policy allow-access-from domain= * to-ports= * / /cross-domain-policy 转换为16进制,然后在最后添加 00 就能被51单片机正确识别策略。 注意:1.可以把策略文件写成(1) ?xml version= 1.0 ? !DOCTYPE cross-domain-policy SYSTEM http://www.macromedia.com/xml/dtds/cross-domainpolicy.dtd cross-domain-policy allow-access-from domain= * to-ports= * / /c
[单片机]
51单片机红外遥控电风扇程序
红外遥控电风扇的电路图下载:http://www.51hei.com/bbs/dpj-20601-1.html 下面是主要源码: /**********************李登峰************************ * 编写;李登峰 * 晶振:11.0592MHZ ******************************************************************/ /*----------------------------------------------- 名称;单片机红外遥控电风扇 ---------------------------------------
[单片机]
51单片机的内存问题
51单片机寻址内存的空间,不是靠总线而是靠指令的方式。 1:51有以下几个内存模块组成 ROM Flash RAM有------内部RAM的低128位(00-7F) -------内部RAM的高128位(80-FF)---【 89C51 单片机没有这一段空间】 -------特殊功能寄存器(SFR)(80-FF) ------外部RAM 64K(0000-FFFF) 问题1:好多地址是重复的,当向80H写入一个数值,单片机怎么知道读的是内部的高128位RAM?还是SFR?还是外部64K的RAM呢? 答:指令。如果是直接寻址,访问的是SFR、如果是R0或者R1间接寻址,就是内部高128位RAM,如果是D
[单片机]
什么是51单片机最小系统
1.什么是51单片机 51 内核单片机是 指兼容Intel 的8051指令系统的单片机统称;从诞生到现在的几十年时间,已成为一款经过市场考验、成熟的芯片产品。目前国内也众多51单片机厂家,且还有众多带51内核,用于各种不同场景的专用类单片机。 51单片机内部框架: 以下以STC89C52单片机为例,其内部总体结构其基本特性如下: 8位CPU、4-8k 字节 ROM、128 字节 RAM、21 个特殊功能寄存器32根I/0线、可寻址的 64 字节外部数据、程序存贮空间、2个 16 位定时器计数器中断结构:具有二个优先级、五个中断源、一个全双工串行口、位寻址(即可对寄存器进行位操作)功能,能按位进行逻辑运算的位处理器。 除 1
[单片机]