51单片机mac下汇编语言开发

上一篇文章中,用C语言进行了单片机mac下入门开发。这一篇记录下如何在mac下使用汇编语言进行51单片机开发。

首先是汇编器的选择。汇编语言并不是跨平台的,需要汇编成指定系统的机器码。

经过在网上查找,找到一款可以对51系列单片机汇编语言进行汇编的编译器:c51asm.  官方下载地址:https://www.microchip.com/DevelopmentTools/ProductDetails/PartNO/C51ASM

接下来,就是汇编代码的编写,还是跟上篇文章一样,实现一个LED灯的闪烁,实现思路是通过在点亮和熄灭之间,执行255*255的循环,完成等待过程。

LOOP: SETB P1.0 ;高电平 熄灭
    LCALL DELAY ;跳转到延迟子程序
    CLR P1.0 ;低电平 点亮
    LCALL DELAY ; 跳转到延迟子程序
    AJMP LOOP ;跳转回循环LOOP标签处

DELAY: MOV R7,#255 ;延迟子程序
D1: MOV R6,#255
D2: DJNZ R6, D2 ;判断是否为0, 不为0减一, 一直执行
    DJNZ R7, D1 ;完成 255 * 255次循环后, 进入下一步
    RET ;子程序返回
END

建立文件名为pmd.asm的汇编文件。逻辑上:主程序,设置高电平(P1.0熄灭), 跳转延迟子程序,进行循环减数,完成后返回注程序,设置低电平(P1.0点亮)。再调用延迟子程序,返回后,进行主程序无限循环。完成LED灯的闪亮熄灭。

接下来进入汇编环节。

c51asm pmd.asm

生成pmd.hex文件。查看了下pmd.hex内容(Intel HEX)。

:10000000D29012000CC29012000C01007FFF7EFF04
:05001000DEFEDFFA2214
:00000001FF

将pmd.hex刷入单片机系统中。就可以看到LED灯不停的闪烁了。

stcgal -p /dev/tty.wchusbserial1410 pmd.hex

 

 

 

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>