?? 16位處理portab.c
字號:
/***************************************************************************
功能:一個按鍵(PTIJ_PTIJ6)按兩下 啟動標準LED(16位PORTAB)調試
作者:唐小進
時間:08.2.5
現象:第一次按下,四個指示燈亮,第二次按下,運行標準LED
注意: 1.設置按鍵要有 DDRJ_DDRJ6=0;設為輸入
PERJ_PERJ6=1;上拉使能
PPSJ_PPSJ6=0;電阻上拉
2.按第一下和第二下之間一般延時1秒
3.16位處理要象這樣 DDRAB=0xFFFF,減小驅動只能8位8位來。
***************************************************************************/
#include <hidef.h> /* common defines and macros */
#include <mc9s12dg128.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
void delay(int m){
int i,j;
for(i=0;i<500;i++)
for(j=0;j<m;j++){
}
}
int Tab3[8]={0x8181,0xC3C3,0xE7E7,0xffFF,0xE7E7,0xC3C3,0x8181,0x0000};
int Tab4[8]={0x1818,0x3c3C,0x7e7E,0xffFF,0x7e7E,0x3c3C,0x1818,0x0000};
void main(void)
{ int i,j,a,b,c;
DDRAB=0xFFFF;
PORTAB=0X0000;
/*RDRIV_RDPA=0XFF; *//*減小驅動,滿驅動為4.5V,減小后為3.5V*/
/* RDRIV_RDPB=0XFF; */
DDRJ_DDRJ6=0; /*設為輸出*/
PERJ_PERJ6=1; /*上拉使能*/
PPSJ_PPSJ6=0; /*上拉*/
asm nop ;/*空指令*/
asm nop ;
asm nop ;
asm nop ;
asm nop ;
asm nop ;
asm nop ;
asm nop ;
asm nop ;
asm nop ;
asm nop ;
asm nop ;
while(1){
if(PTIJ_PTIJ6==0){
PORTAB=0X6666;
DDRJ_DDRJ6=0; /*設為輸出*/
PERJ_PERJ6=1; /*上拉使能*/
PPSJ_PPSJ6=0; /*上拉*/
delay(1600);
while(1){
if(PTIJ_PTIJ6==0){
PORTAB=0X0000;
while(1){
for(i=0;i<=2;i++) /*middle run two sides*/
for(j=0;j<=7;j++){
PORTAB=Tab4[j];
delay(600);
}
for(a=0;a<=2;a++){
PORTAB=0XFFFF;
delay(600);
PORTAB=0X0000;
delay(600);
}
for(b=0;b<=3;b++)
for(c=0;c<=7;c++){ /*two sides run middle*/
PORTAB=Tab3[c];
delay(600);
}
}
}
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -