汉语大全>单片机与DSP>如何产生编程器烧写文件(一)

如何产生编程器烧写文件(一)

详细内容

单片机是靠程序来运行的,程序是通过编程器烧写进单片机芯片中去的,我们编写不同的烧写文件,单片机就会按照我们的意愿来完成不同的功能,但是如何写程序和获得烧写文件,并且烧写成功,这一个部分却是很多教科书上忽略的,即使有介绍也可能因为他们介绍的编程器或者汇编软件我们无法获得,而使初学者无所适从。站长在自学单片机的过程中也花了不少精力才搞懂这一个部分。

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

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

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.符号“:”“;”最好用半角书写。

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