标题: 单片机开关控制灯的亮灭汇编语言程序的问题 [打印本页]

作者: 13124548295    时间: 2018-8-27 15:43
标题: 单片机开关控制灯的亮灭汇编语言程序的问题
最近学汇编,找到两个程序本应该两个程序都可以实现功能。但是第一个程序输入之后编译有错误,还望各位指教。

图片2.png (21.23 KB, 下载次数: 26)

电路图

电路图

图片1.png (5.83 KB, 下载次数: 37)

程序

程序

作者: huangjunguo    时间: 2018-8-27 15:59
没有定义位操作
作者: sxhwdz    时间: 2018-8-27 16:44
效果应该是不一样的,上面是开关按下放开后,灯反转一次,下面是按下亮灯,放开灭灯。
作者: ahshmj    时间: 2018-8-28 09:31
第一句是关键。改为   “ORG    0”    直接将“0H”作为程序的首地址。

或者“ORG   0             在0H字节写入一个跳转指令,跳到“10H”执行程序
        JMP    10H”      跳转指令(编译软件会自动识别需要用AJMP、 LJMP、 SJMP 的哪一个)

单片机上电或复位后是从0单元开始执行程序,你的0单元什么都没有,他当然无法执行。

看来你还需要从头学起。
作者: 人中狼    时间: 2018-8-28 10:20
第一,P0口电路应该要接上拉电阻。
第二,第一段被注释的程序是针对按键的,而电路里的器件算是开关,所以第一段程序需要把开关拉低后再拉高,才能看到效果。
第三,第一段程序缺少END。
第四,第二段程序里,P0.0是检测输入,所以SETB P0.0是无用的,应该是在对LED不同的操作的地方使用JB P0.0和JNB P0.0来做判断。
作者: s360221867    时间: 2018-8-28 14:25
先把第一句的org 10改为org 00h




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1