用keil编译汇编语言编写的程序,显示有错误且目标未建立,驱动是AT89C52,程序如下:

RS EQU P1.3
RW EQU P1.4
E EQU P1.5
PSB EQU P1.6
RST EQU P2.7
COM EQU 20H
DAT EQU 21H
;******************************以上是接口定义
START:
ORG 0000H
MOV SP,#60H
LJMP DISP
;*********************************主程序入口地址
ORG 0040H
DISP: CLR PSB
LCALL DELAY
SETB PSB ;将PSB 置1,通信方式为8 位数据并口
LCALL DELAY
MOV COM,#30H ;功能设置---8BIT 控制界面,基本指令集
ACALL WRI ;调用写指令子程序
LCALL DELAY ;延迟39uS
MOV COM,#0CH ;显示打开,光标关,反白显示关
ACALL WRI ;调用写指令子程序
LCALL DELAY ;延迟39uS
MOV COM,#01H ;清除屏幕显示,将DDRAM 的地址计数器归零
ACALL WRI ;调用写指令子程序
LCALL DELAY ;延迟39uS
MOV COM,#06H ;DDRAM 的地址计数器(AC)加1
ACALL WRI ;调用写指令子程序
LCALL DELAY ;延迟39uS
;****************************************************
DISPLAY5A:
MOV R2,#64 ;DDRAM 地址记数器设为最大值
MOV R1,#10H
MOV COM,#80H ;DD RAM 地址-----0000000
ACALL WRI
DISP5A: MOV DAT,R1
ACALL WRD ;写入第二字节数据
INC R1
DJNZ R2,DISP5A
LCALL DELAY1 ;1S 延时子程序
;*************************************以上是写入半角字符
DISPLAY5:
MOV R2,#64 ;DDRAM 地址记数器设为最大值
MOV R1,#0DEH
MOV COM,#80H ;DD RAM 地址-----0000000
ACALL WRI
DISP5: MOV DAT,#0B4H
ACALL WRD ;写入第一字节数据
MOV DAT,R1
ACALL WRD ;写入第二字节数据
INC R1
DJNZ R2,DISP5
LCALL DELAY1 ;1S 延时子程序
;**********************************以上是从字库中“崔”字处开始显示
MOV COM,#01H ;清屏
ACALL WRI ;调用写指令子程序
LCALL DELAY
MOV COM,#32H ;功能设置---8BIT 控制界面,绘图显示ON
ACALL WRI ;调用写指令子程序
LCALL DELAY ;延迟39uS
MOV COM,#36H ;功能设置---8BIT 控制界面,扩充指令集
ACALL WRI ;调用写指令子程序
LCALL DELAY ;延迟39uS
DISPLAY6:
MOV DPTR,#DAB2 ;图形数据入口地址
MOV R2,#32 ;32 行,(双屏结构中上半屏)
MOV R3,#80H ;Y 地址寄存器
DISP6: MOV COM,R3 ;设置绘图区的Y 地址坐标
INC R3 ;Y 地址加1
LCALL WRI
MOV COM,#80H ;设置绘图区的X 地址坐标
LCALL WRI
MOV R1,#16 ;16*8 列
DISP7: CLR A
MOVC A,@A+DPTR
MOV DAT,A
LCALL WRD
INC DPTR
DJNZ R1,DISP7
DJNZ R2,DISP6 ;写满全屏的16*8 字节X64
MOV R2,#32 ;32 行,(双屏结构的下半屏)
MOV R3,#80H ;Y 地址寄存器
DISP8: MOV COM,R3 ;设置绘图区的Y 地址坐标
INC R3 ;Y 地址加1
LCALL WRI
MOV COM,#88H ;设置绘图区的X 地址坐标
LCALL WRI
MOV R1,#16 ;16*8 列
DISP9: CLR A
MOVC A,@A+DPTR
MOV DAT,A
LCALL WRD
INC DPTR
DJNZ R1,DISP9
DJNZ R2,DISP8 ;写满全屏的16*8 字节X64
LCALL DELAY1 ;1S 延时子程序
END

你的程序不全,缺少以下子程序或表格:
1、DELAY
2、WRI
3、WRD
4、DELAY1
5、DAB2
温馨提示:内容为网友见解,仅供参考
无其他回答

Keil汇编语言编译出错?
1、打开Keil,新建一个51工程,同时新建一个main.c文件,并加入到工程源代码当中。2、再点击新建文件按钮,新建一个汇编语言源文件:test.asm,并将它保存到指定目录。3、在test.asm当中输入下面的代码。4、代码编写完成后,需要将test.asm加入到工程当中,即鼠标右键点击对应工程的源程序文件夹,选择“...

编写一个AT89C52单片机控制四相单四拍步进电机汇编程序,急用...
WriteAddress(0x03); \/\/写地址,从第1行第4列开始显示 i=0; \/\/从字符数组的第1个元素开始显示 while(string[i]!='\\0') \/\/只要没有显示到字符串的结束标志'\\0',就继续 { WriteData(string[i]); \/\/将第i个字符数组元素写入LCD i++; \/\/指向下一个数组元素 } WriteAddress(0x46); \/\/写地址,将...

用完整的汇编语言编写使数码管循环显示0,1,2,3,4,5,6,7,8,9的程序
程序如下:\/ 用P0口输出到数码管显示0-9 编写:jzy23 交流:paulucy@126.com \/ include<reg52.h> define uint unsigned int define uchar unsigned char \/ 共阴数码管显示码 \/ uchar code display[10]= { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f };\/ 延时函数 功...

用KEIL编写C语言代码,编译过后会出现形如:Program Size: data=13.0...
code表示编译出来的程序大小,一般情况下就是程序占用的大小。如果你指定了CPU型号,如果code超出,KEIL链接的时候会报错的。

keil5建立项目与debug踩坑记录
一. Keil创建项目示例 创建项目涉及几个关键步骤: 新建文本编辑窗口 编写并输入源程序代码 保存源程序时记得加上文件扩展名,如汇编语言使用".asm",C语言使用".C" 新建Keil工程 选择CPU型号 将源程序整合到工程中 调整工程目标的属性设置 测试代码以确保正确性 开始软件调试二. Debug...

用C 语言编写的源文件经过编译,若没有产生编译错误,则系统将?
原因如下:1、编译程序仅仅是将源语言编写的源程序转换为目标程序。2、编译是把高级语言变成计算机可以识别的2进制语言。3、编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。显然,编译的过程中并没有运行程序输出结果的...

用keil软件如何将汇编与C语言结合起来一起编写单片机的程序
方法2编写汇编模块,需对KEIL编译器的编译过程做些了解。Keil编译器的编译过程是首先将项目中的一个个源文件编译为目标代码(obj文件),然在再通过连接器产生为最终可执行的hex文件。目标代码将其中的代码、数据、常量放在不同的“段”中,保存程序的段称为“代码段”,保存数据的段称为“数据段”,...

用汇编语言编写一段程序,图形如下:
过去,回答过类似的,你改改就行了。http:\/\/hi.baidu.com\/%D7%F6%B6%F8%C2%DB%B5%C0\/blog\/item\/c6c066cb22135d8cc81768ac.html

我用汇编语言编的程序,在keil调试的时候为什么老是往汇编语言里边跑呢...
应该是程序停在了启动代码处,而启动代码是用汇编语言编写的。打开工程属性页,在Debug标签页,选择“go until main”选项即可,则调试时,程序将会停止在c语言的main函数入口处。

汇编语言中有些注释显示不完全是因为什么 如果把这一行代码注释掉就会...
不要用KEIL来编写程序!!KEIL对中文支持非常差。你看到没有,“将立即数02h。。。”之前的那个分号是全角字符,KEIL不认识啊,所以显示就出问题了。建议你平时用ULTRA EDIT之类的工具编写程序,KEIL只用来编译。

相似回答