首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Freescale单片机能否象下面程序那样进行位定义

请问那里有Freescale单片机宏定义资料,谢谢!
唉!折腾了半天还是要 CLR 1,PTB
看来都没有仔细看我说的,也没明白我的意思.
本来是想看看Freescale单片机能否象其他单片机那样定义,见最上面例子;目的是为了让程序一目了然和方便编程不用老记着是PA口还是PB口或PC口,以后久了再拿程序出来更改也方便,就算硬件更改也只要改变定义就可以了;若还是误解我的意思的话只能说明我中文没学好.
也许是我没说清楚,我的意思是:
   CLR   JDQ_OUT1      ;关继电器(有位定义功能一目了然不用管他是哪个I/O口,

                        ;程序修改也方便,硬件改动只要把前面位定义改掉即可不用

                         ;管后面程序)
-----------------------------------------------------------
而非如下那样(这种定义意义不大)
   JDQ_OUT1   EQU   0      B.0
      .
      .
      .
   BCLR    JDQ_OUT1,PTB    ;还得写"PTB",编程时还得去留意是PTA还是PTB口,改硬件
                           ;时都得找到相应的程序把"PTB"改为"PTA"(假设改为PA口)
                           ;所以说这种定义意义不大.



[此贴子已经被作者于2007-1-31 14:48:37编辑过]

Freescale单片机能否象下面程序那样进行位定义

Freescale单片机能否象下面程序那样进行位定义

;**************************************************************************
; 控制寄存器定义
;**************************************************************************
JDQ_OUT1   EQU   PA.5     ;继电器 (硬件改动只要把位定义改掉即可不用管后面程序)
D164_SDA   EQU   PA.6
D164_CLK   EQU   PA.7



;
code .section at 0 'code'
   ORG   00H
   JMP   RESET
   ORG   04H
   JMP   INTEXT
   ORG   08H
   JMP   INTTMR
   ORG   0CH
   JMP   INTAD
;**************************************************************************
; 主 程 序(复位地址)
;**************************************************************************
; ORG   00H
RESET:  CLR   INTC   ;禁止所有中断
        CLR   ADCR
           。
           。
           。
        CLR   JDQ_OUT1   ;关继电器(有位定义功能一目了然不用管他是哪个I/O口,

                         ;程序修改也方便,硬件改动只要把前面位定义改掉即可不用

                         ;管后面程序)

[此贴子已经被作者于2007-1-30 21:41:08编辑过]

[此贴子已经被作者于2007-1-31 14:49:32编辑过]

好麻烦哦!感觉好象是可以,但我看不太懂,DATASHEET中没有介绍这种用法,CLR_BIT: MACRO中的“MACRO”是何东东,“bclr \1,PTAD”是清PTA中的某位吗?那么置位是否改为“BSET \1,PTAD”就可以了,这些东东那里有资料哇。

[此贴子已经被作者于2007-2-4 10:05:24编辑过]

返回列表