打印

66P13关于Options的问题

[复制链接]
2498|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
h_kelven|  楼主 | 2008-7-18 16:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教一下:Option中,关于PC1。PC0的不同选择,所进行选择的程序是怎么用的。。
比如:
00时,是goto subroutine1
01时,是goto subroutine2(default)
10时,是goto subroutine3
11时,是goto subroutine4

这四个程序是在ROM中的入口是怎么样的?
沙发
warm_ice| | 2008-7-19 17:35 | 只看该作者

这样

程序入口是相同的,只是在程序中,您可以通过系统寄存器$0A的这4组值来对应不同的程序,自行跳转到相应程序的位置.也就是说,同一个大程序中包含4个程序,这4个程序是通过这个系统寄存器来区分的.即,实际生产时的几种机型在同一个程序中.

使用特权

评论回复
板凳
h_kelven|  楼主 | 2008-7-21 12:48 | 只看该作者

还是不明,可以举个例子吗?



org 00h
jmp   main
...
..
org 0070h
main:
  ........
.......


org 100h

程序1:
。。。。。
。。。。

org 200h
程序2:
。。。。。
。。。。

org 300h
程序3:
。。。。。
。。。。

org 400h
程序4:
。。。。。
。。。。


jmp main

end
我现在想只用程序2,该怎么用?

使用特权

评论回复
地板
warm_ice| | 2008-7-21 14:32 | 只看该作者

呵呵

不太明白的话,那我就再详细说一下.
无论PC.1和PC.0的值为何,程序入口地址都是00H,00H一般是跳转到主程序的指令,像您的JMP MAIN,在跳到MAIN后,您再根据PC.1和PC.0的值来判断,是该跳转到哪个程序.
例如,我希望PC.0和PC.0为11时,跳到第2个程序.则大概用以下程序即可:
LDA       PORTC
STA       TEMP           ;TEMP为临时寄存器,需要自己定义
ANDIM     TEMP,0011B     ;把高2位清除.
SBI       TEMP,03H       ;判断其与03的关系
BAZ       程序2
....

这样应该清楚了吧.呵呵.

使用特权

评论回复
5
h_kelven|  楼主 | 2008-7-22 12:30 | 只看该作者

总算明白

可以这样理解吧。PC口,就相当两个拔动开关,四个程序的选择,两个开关的四种不同状态,通过在主程序里面软件来设置判断而跳转到不同的子程序里面,从而得到一个大程序里面包含四个小程序的效果,

还有个问题就是:66P13这芯片里面好像没有WDT的,这样的话,假如进入了dead loop,就不能系统复位了?

使用特权

评论回复
6
warm_ice| | 2008-7-23 08:28 | 只看该作者

是的

回楼上的朋友,你的理解是对的.

另外,66P13是没有WDT功能的,怕进入死循环,就要看写程序的功力了.呵呵.

使用特权

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

本版积分规则

5

主题

17

帖子

0

粉丝