常驻嘉宾
- 积分
- 4997
- 威望
- 2596
- 贡献
- 1389
- 兑换币
- 860
- 注册时间
- 2011-12-17
- 在线时间
- 506 小时
|
这是一段手创科技提供的流水灯程序,用的B端口流水,为什么要设置A口、J口和M口寄存器呢?求解,红色标注部分的意思
#include <hidef.h>
#include <MC9S12XS128.h>//头文件
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"//用来改变mcu的,有了这句就不用手工改了,自动修改
#define delay(n) \
{ \
unsigned int i,j; \
for(i=0;i<n;i++) \
for(j=0;j<600;j++); \
}
void chaopin(void)//超频函数
{
CLKSEL=0X00;
PLLCTL_PLLON=1;
SYNR =0xc0 | 0x07;
REFDV=0xc0 | 0x01;
POSTDIV=0x00;
_asm(nop);
_asm(nop);
_asm(nop);
_asm(nop);
while(!(CRGFLG_LOCK==1));
CLKSEL_PLLSEL =1;
}
//主程序
void main(void)
{
DDRA=0X00;//A口设置数据方向输出
DDRB=0XFF;//B口设置输出口
DDRM=0XFF;//M设置输出口
DDRJ=0XFF;//J设置输出口
chaopin();//超频
delay(900);
for(;;)
{
PTJ_PTJ7=1;
PORTB=0xfe;//B口数据寄存器赋值
delay(500);
PORTB=0xfd;
delay(500);
PORTB=0xfb;
delay(500);
PORTB=0xf7;
delay(500);
PORTB=0xef;
delay(500);
PORTB=0xdf;
delay(500);
PORTB=0xbf;
delay(500);
PORTB=0x7f;
delay(500);
//
PTJ_PTJ7=0;
PTM_PTM5=1;
PORTB=0x7f;
delay(500);
PORTB=0xbf;
delay(500);
PORTB=0xdf;
delay(500);
PORTB=0xef;
delay(500);
PORTB=0xf7;
delay(500);
PORTB=0xfb;
delay(500);
PORTB=0xfd;
delay(500);
PORTB=0xfe;
delay(500);
PTM_PTM5=0;
}
}
//感谢你对广州手之创科技的支持和信任,我们将不断的努力争取做得更好。
//如果有什么问题,欢迎咨询我们的技术人员。在程序首段有我们的联系方式。 |
|