如何产生编程器烧写文件

第一步,我们用WINDOWS自带记事本程序来写汇编语言程序,例如,在D盘下新建一个001.TXT文档



然后将程序写入,比如将下面的一个LED跑马灯的程序部分用“复制”“粘贴”命令将加粗文字的部分复制到001.TXT文档中,然后保存。

ORG 0000H
START:MOV P1,#01111111B
LCALL DELAY
MOV P1,#10111111B
LCALL DELAY
MOV P1,#11011111B
LCALL DELAY
MOV P1,#11101111B
LCALL DELAY
MOV P1,#11110111B
LCALL DELAY
MOV P1,#11111011B
LCALL DELAY
MOV P1,#11111101B
LCALL DELAY
MOV P1,#11111110B
LCALL DELAY
MOV P1,#11111111B;完成第一次LED跳灯循环
AJMP START;反复循环

DELAY:MOV R4,#02H;延时子程序,12M晶振延时约1秒
L3: MOV R2 ,#0FAH
L1: MOV R3 ,#0FAH
L2: DJNZ R3 ,L2
DJNZ R2 ,L1
DJNZ R4 ,L3
RET

END

第二步,我们需要使用一个汇编软件:宏汇编软件MASM51 点击这里可以下载这个软件
软件下载成功后经过ZIP解压后获得MAS51.EXE和MAS51.OVI两个文件,我们将它们放到D盘根目录下,然后双击MAS51.EXE文件,进入DOS界面的汇编程序



我们通过键盘敲入asm51 d:\001.txt后回车,如果出现00 Errors (0000)的话,表示汇编没有任何错误,成功了!

如果出现别的文字提示,说明汇编有错误,您可以根据提示的内容找出错误的语句,一一改正,再重新汇编,直到出现00 Errors (0000)。这时在D盘的根目录下自动会产生001.HEX的编程器烧写文件,这就是最终写入单片机的文件。

在学习单片机的过程中您可以在理解的基础上修改我网站的程序范例,然后:软件汇编--编程器烧写--AT89C51实验板验证,这样可以快速掌握单片机技术。

编写汇编语言常见错误分析:

一、 MAS51汇编软件汇编失败原因分析:

单片机的汇编语言编写时要注意一定的语法,详细介绍可以参考相关参考书,语法错误汇会造成汇编失败,常见的汇编错误如下:

1.标号重复 常见于复制、粘贴程序时忘记修改标号,造成出现多个相同的标号,标号是不允许重复的。
2.标点符号以全角方式输入 MAS51程序要求标点符号为半角方式,否则汇编失败。可以在输入:,;时切换到半角方式,或者在大写状态输入标点符号,这也是很容易犯而且不容易发觉的错误。
3.注释太长 有时为了以后读懂程序,写了很长的注释,站长发现超过20个汉子时也会造成汇编失败,解决办法可以将太长的注释分成多个注释。
4.数值#FFH 前遗漏0,根据要求应该在a~f前加0,写成#0FFH
5.字母O和数字0搞混 有时候这两个字看上去完全相同,要注意哦~~
6.标号后边遗漏":"
7.标号使用了特殊字符,比如:T1、T2、A、B这些字符有特定的含义,不允许用于标号。
8.AJMP跳转超过

2K地址,AJMP属于短跳转命令,有2K地址范围的限制。
9.JB P3.2,EXIT跳转超过-128~127个地址范围。这个是最容易出现的错误!你有可能程序刚才还能汇编编译成功,你加了一段程序后程序就提示出错了,你可以把
JB P3.2,EXIT
转换成
JNB P3.2,UUU
AJMP EXIT
UUU:
10.字母I和数字1混淆,冒失鬼的常见问题。
11.创造发明不存在的汇编语言指令,在编写程序程序的过程中可不欢迎这种创新,这种指令汇编程序不支持,芯片也不认可。
12.符号“:”“;”最好用半角书写。

使用汇编软件常见问题解答:

1.如果汇编软件出现** Unrecongnized Command **提示字样说明是汇编命令输入错误。正确的汇编命令是asm51 d:\001.txt 注意asm51后面要加空格。

2.如果汇编软件出现**Dos File I/O error **提示字样说明是汇编文件的路径出错。第一要注意MASM51软件的安装路径中不能出现中文名称,例如汇编软件安装在D:\单片机\下面,第二要汇编的文件的路径中也不能出现中文名称,例如D:\单片机\001.TXT。当文件后缀不是asm时,后缀不能省略。

二、程序出错:

1.寄存器重复调用 比如主程序中设定了R4=5,表示主程序循环执行5次,而其中的一个延时子程序又用到R4,使R4的值发生紊乱,造成程序无法正常执行。
2.硬件不熟悉 单片机一般采用下拉输出,往往端口输出0驱动外设工作,和常见的正逻辑相反,容易搞错。

以上是站长学单片机时发生的不止一次的错误!!

编写汇编语言的忠告:

要养成良好的程序书写习惯,比如标号对齐、参数对齐、注释对齐,这样看起来赏心悦目,也不容易出错。标号最好采用有意义的英文,这样比较直观,注释尽量详细准确,便于以后读懂,而且有利于其它程序中作为子程序模块的调用。还有要注意典型程序模块的积累,再复杂的程序也是由一个个小程序模块组成的,在初学阶段可以对典型程序比如:延时子程序、查表子程序、按键消抖子程序等编写实践一次,这样印象深刻,便于以后引用。

相关主题
相关文档
最新文档