打印

义隆单片机程序问题

[复制链接]
4104|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sun520up|  楼主 | 2011-8-31 17:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
谈的元| | 2011-8-31 19:30 | 只看该作者
ORG   0X50
  就是一个普通地址

使用特权

评论回复
板凳
sun520up|  楼主 | 2011-9-1 09:02 | 只看该作者
2# 谈的元
放在这里有什么意义?

使用特权

评论回复
地板
ayb_ice| | 2011-9-1 11:07 | 只看该作者
LZ外行人士

使用特权

评论回复
5
sun520up|  楼主 | 2011-9-1 11:15 | 只看该作者
4# ayb_ice
确实啊,刚接触半个月。能把问题先解决了吗?

使用特权

评论回复
6
ayb_ice| | 2011-9-1 11:29 | 只看该作者
4# ayb_ice  
确实啊,刚接触半个月。能把问题先解决了吗?
sun520up 发表于 2011-9-1 11:15

那就是表示下一行程序的首地址

使用特权

评论回复
7
sun520up|  楼主 | 2011-9-1 11:55 | 只看该作者
6# ayb_ice
我看了.lst文件,INITIAL里的程序是从0x50开始存贮的,但为什么0x50要放在JMP INITIAL的后面?

使用特权

评论回复
8
ayb_ice| | 2011-9-1 13:25 | 只看该作者
先入行再说吧,你这些都是最基本的概念
一句话,看书吧

使用特权

评论回复
9
sun520up|  楼主 | 2011-9-1 13:46 | 只看该作者
8# ayb_ice
书看完了,谢谢你的帮助

使用特权

评论回复
10
readdai| | 2011-9-1 14:58 | 只看该作者
看完了,知道ORG这条伪指令的意思了么?~:victory:

使用特权

评论回复
11
谈的元| | 2011-9-2 00:55 | 只看该作者
2# 谈的元  
放在这里有什么意义?
sun520up 发表于 2011-9-1 09:02

没什么明确的意义,写0X51,0X52也可以,就是分配一个程序放哪里的地址


这个你可以先放一放,到时自然理解

使用特权

评论回复
12
zxcscm| | 2011-9-2 08:01 | 只看该作者
LZ的0x05是主程序的存储入口地址。一般的单片机开机启动后从ROM的00H单元开始执行指令。而0x02H-0x30H之间有各种中断的入口地址,主程序不易放在这些单元中,一般存储在30H以后的单元里,在00H写一句JMP    XXX,跳到主程序的开始处。

其实,作为新手大多问题在书中都有答案,像楼主这种问题大可不必着急提问,要学会自学!

使用特权

评论回复
评分
参与人数 2威望 +2 收起 理由
sun520up + 1
Cortex-M0 + 1
13
Cortex-M0| | 2011-9-2 08:06 | 只看该作者
LS盆友说的对!

顶~~~

使用特权

评论回复
14
sun520up|  楼主 | 2011-9-2 17:07 | 只看该作者
10# readdai
:handshake

使用特权

评论回复
15
sun520up|  楼主 | 2011-9-2 17:20 | 只看该作者
11# 谈的元
今天接了一个案子,两个按键控制5个LED,但LED一个接在P5口,其余四个接在P6口。(因为客户做的是单面板,这样走线比较方便)
我现在就是想自己定义个寄存器,然后将它们连续定义在这个寄存器上。你觉得可行吗?
下面是宏定义
MOVB    MACRO REG1,BIT1,REG2,BIT2            ;  REG1.BIT1  = REG2.BIT2
     JBS    REG2,BIT2
     BC     REG1,BIT1
     JBC    REG2,BIT2
     BS     REG1,BIT1
ENDM

然后初始化
    MOVB PORT6,0,RegLed,0
    MOVB PORT6,1,RegLed,1
    MOVB PORT6,2,RegLed,2
    MOVB PORT6,4,RegLed,3
    MOVB PORT5,3,RegLed,4  

然后通过控制寄存器RegLed,来控制LED,这样可行吗?

使用特权

评论回复
16
sun520up|  楼主 | 2011-9-2 17:20 | 只看该作者
12# zxcscm
今天接了一个案子,两个按键控制5个LED,但LED一个接在P5口,其余四个接在P6口。(因为客户做的是单面板,这样走线比较方便)
我现在就是想自己定义个寄存器,然后将它们连续定义在这个寄存器上。你觉得可行吗?
下面是宏定义
MOVB    MACRO REG1,BIT1,REG2,BIT2            ;  REG1.BIT1  = REG2.BIT2
     JBS    REG2,BIT2
     BC     REG1,BIT1
     JBC    REG2,BIT2
     BS     REG1,BIT1
ENDM

然后初始化
    MOVB PORT6,0,RegLed,0
    MOVB PORT6,1,RegLed,1
    MOVB PORT6,2,RegLed,2
    MOVB PORT6,4,RegLed,3
    MOVB PORT5,3,RegLed,4  

然后通过控制寄存器RegLed,来控制LED,这样可行吗?

使用特权

评论回复
17
谈的元| | 2011-9-3 09:56 | 只看该作者
完全可以啊

使用特权

评论回复
18
lpzailushang| | 2011-9-3 15:47 | 只看该作者
这种用法 是基于C51的 其实在正常使用时不用去管的

使用特权

评论回复
19
scytrenbin| | 2011-9-3 22:40 | 只看该作者
不解,这几个口是输出口,保存这个状态有什么作用吗?如果是输入口的话,这样做还有意义。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

162

帖子

1

粉丝