义隆单片机程序问题

[复制链接]
 楼主| sun520up 发表于 2011-8-31 17:39 | 显示全部楼层 |阅读模式
本帖最后由 sun520up 于 2011-9-2 17:34 编辑

include "EM78P156EL.INC"
ORG   0X00
JMP    INITIAL
ORG   0X50

想问下大家0x50是什么的入口地址?
上面初始化完了之后就执行JMP   $
谈的元 发表于 2011-8-31 19:30 | 显示全部楼层
ORG   0X50
  就是一个普通地址
 楼主| sun520up 发表于 2011-9-1 09:02 | 显示全部楼层
2# 谈的元
放在这里有什么意义?
ayb_ice 发表于 2011-9-1 11:07 | 显示全部楼层
LZ外行人士
 楼主| sun520up 发表于 2011-9-1 11:15 | 显示全部楼层
4# ayb_ice
确实啊,刚接触半个月。能把问题先解决了吗?
ayb_ice 发表于 2011-9-1 11:29 | 显示全部楼层
4# ayb_ice  
确实啊,刚接触半个月。能把问题先解决了吗?
sun520up 发表于 2011-9-1 11:15

那就是表示下一行程序的首地址
 楼主| sun520up 发表于 2011-9-1 11:55 | 显示全部楼层
6# ayb_ice
我看了.lst文件,INITIAL里的程序是从0x50开始存贮的,但为什么0x50要放在JMP INITIAL的后面?
ayb_ice 发表于 2011-9-1 13:25 | 显示全部楼层
先入行再说吧,你这些都是最基本的概念
一句话,看书吧
 楼主| sun520up 发表于 2011-9-1 13:46 | 显示全部楼层
8# ayb_ice
书看完了,谢谢你的帮助
readdai 发表于 2011-9-1 14:58 | 显示全部楼层
看完了,知道ORG这条伪指令的意思了么?~:victory:
谈的元 发表于 2011-9-2 00:55 | 显示全部楼层
2# 谈的元  
放在这里有什么意义?
sun520up 发表于 2011-9-1 09:02

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


这个你可以先放一放,到时自然理解
zxcscm 发表于 2011-9-2 08:01 | 显示全部楼层
LZ的0x05是主程序的存储入口地址。一般的单片机开机启动后从ROM的00H单元开始执行指令。而0x02H-0x30H之间有各种中断的入口地址,主程序不易放在这些单元中,一般存储在30H以后的单元里,在00H写一句JMP    XXX,跳到主程序的开始处。

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

评分

参与人数 2威望 +2 收起 理由
sun520up + 1
Cortex-M0 + 1

查看全部评分

Cortex-M0 发表于 2011-9-2 08:06 | 显示全部楼层
LS盆友说的对!

顶~~~
 楼主| sun520up 发表于 2011-9-2 17:07 | 显示全部楼层
10# readdai
:handshake
 楼主| 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,这样可行吗?
 楼主| 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,这样可行吗?
谈的元 发表于 2011-9-3 09:56 | 显示全部楼层
完全可以啊
lpzailushang 发表于 2011-9-3 15:47 | 显示全部楼层
这种用法 是基于C51的 其实在正常使用时不用去管的
scytrenbin 发表于 2011-9-3 22:40 | 显示全部楼层
不解,这几个口是输出口,保存这个状态有什么作用吗?如果是输入口的话,这样做还有意义。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

162

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部