不能产生目标文件求解
org 0000hajmp main
org 0030h
mov sp,#70h
main:mov a,#0feh
jnb p0.0,ar
jnb p0.1,al
ajmp main
ar:rra
ajmp main
al:rl a
ajmp main
end
手机输入效果不好
下面是uv3的提示:
0个错误,2个警告。
warning l1:unresolved external symbol
symbol: ?c_start
module:startup.obj(?c_startup)
另一个警告和这差不多。
al:rl a
少了mov r1,a
warning l1:unresolved external symbol
symbol: ?c_start
module:startup.obj(?c_startup)
你是不是还在C环境下写的呀,他好像要C启动代码呢; 还是有输入错误的地方,注释掉可以生成目标和HEX文件 module:startup.obj(?c_startup),这个……删掉startup.A51,再编译 c2j888 发表于 2014-3-19 08:36
al:rl a
少了mov r1,a
小写rl大写是RL循环左移,应该不用movrl,a mcu5i51 发表于 2014-3-19 08:43
warning l1:unresolved external symbol
symbol: ?c_start
module:startup.obj(?c_startup)
汗!有可能是这个原因。是在c环境下写的,后来复制代码到新建汇编工程编译的。第一次尝试写代码,输出显示都忘写了……回去再重写试试。感谢。 takashiki 发表于 2014-3-19 09:12
module:startup.obj(?c_startup),这个……删掉startup.A51,再编译
uv3的提示看不明白,在网上找不到完整的使用手册。 liyute 发表于 2014-3-19 10:27
uv3的提示看不明白,在网上找不到完整的使用手册。
这个提示非常明白,网上找不到很正常,但是Keil自己的帮助文件应该有。
提示内容:
警告 L1:无法解析的外部符号
符号:?c_start
模块:startup.obj(?c_startup)
简单地说,就是找不到C语言的main函数。
很显然,因为你包含了startup.A51,这个是启动文件,它里面调用了?c_start,这个符号对应于C语言的main函数。
我为什么说这个文件应该剔除呢?如果不剔除的话,会在CODE空间产生重叠,以至于无法链接。 takashiki 发表于 2014-3-19 10:37
这个提示非常明白,网上找不到很正常,但是Keil自己的帮助文件应该有。
提示内容:
受教了,非常感谢你的详细解答. 本帖最后由 liyute 于 2014-3-20 00:13 编辑
晚上回来重新写了一段代码.请各位看看运行后会有什么样的后果呢?能不能达到预期的目的.我就是那个厚着脸皮出来被大家鄙视的小白!!!!
;按键控制转移
;连接方法:p2口接LED灯 ,P0口接静态键盘.
;按P0.0右移一位,按P0.1左移一位.
org 0000h
ljmp main
org 0030h
main: mov sp,#70h
mov a,#0feh
jj:jnb p0.0,ar
jnb p0.1,al
ljmp jj
ar:rr a
mov p2,a
ljmp jj
al:rl a
mov p2,a
ljmp jj
end 感觉你没有将.C或.ASM文件加入工程中进行编译。才会提示上面的警告 yuanyuxingqu 发表于 2014-3-20 01:26
感觉你没有将.C或.ASM文件加入工程中进行编译。才会提示上面的警告
是的,没加.asm要找uv3的资料学习学习了. P0口接静态键盘,这个需要上拉的,看样子应该是成品板子上实现的,这方面倒不用考虑;
程序没有运行测试,目测没有去抖部分,可能工作状态不会太理想 mcu5i51 发表于 2014-3-20 10:27
P0口接静态键盘,这个需要上拉的,看样子应该是成品板子上实现的,这方面倒不用考虑;
程序没有运行测试,目测没 ...
能运行,按下按键时LED灯会全亮,松开按键随机有一个灯亮,加去抖的话估计在延时中只接受一次信号.运行会好点但按键时间稍长LED灯也会循环点亮,没达到理想的按一次键只移动一个位的目的,不知道用汇编要怎么实现. 加入运行标志,指示按键状态,常用的单击,连按两种状态可以适应大部分应用 程序很短,你可以Debug一下看看·`~ 新建工程时保存为c了,然后在上面写的汇编,然后又没加.asm入工程-_-||,谢谢大家,就这样筒单的描述都说对了,都是高手啊。 liyute 发表于 2014-3-19 10:19
小写rl大写是RL循环左移,应该不用movrl,a
汇编不区分大小写,但c有大小写的区别。
页:
[1]