?? traffic.c
字號(hào):
#include "2407c.h"
volatile ioport unsigned int port802C;
#define TRAFFIC port802C
volatile ioport unsigned int port800C;
#define KEY port800C
void delay_nus(long int n);
void delay_ns(long int n);
void Max_CS(int ab,int val);
void Max_CLK(int ab,int val);
void Max_DIN(int ab,int val);
void Max_SEND(unsigned int val);
void LED_init(void);
void dly_nus(long int n);
int key_hit(void);
int READ_KEY(void);
void TREFFIC_test(void) ;
int uWork;
void main(void)
{
asm(" setc INTM");
*WDCR=0X6F;
*WDKEY=0x5555;
*WDKEY=0xaaaa; /* 關(guān)閉看門狗 */
*SCSR1=0x83fe; /* DSP運(yùn)行頻率2倍 */
uWork=(*MCRC);
uWork&=0x0ff01;
(*MCRC)=uWork;
WSGR = 0x01C9;
TRAFFIC=0;
LED_init();
TREFFIC_test() ;
}
void watchdog(void)
{
asm(" nop");
asm(" nop");
}
void delay_nus(long int n)
{
int i;
long int j;
for (j=1;j<=n;j++)
{
for (i=0;i<3;i++)
{
watchdog();
}
}
}
void delay_ns(long int n)
{
int i;
long int j;
for (j=1;j<=n;j++)
{
for (i=0;i<3;i++)
{
asm(" NOP ");
asm(" NOP ");
asm(" NOP ");
asm(" NOP ");
}
}
}
void Max_CS(int ab,int val)
{
watchdog();
if (ab==0)
{
*MCRC=(*MCRC)&0x0FF01;
*PEDATDIR=(*PEDATDIR)|0x07C00;
if (val!=0)
{
*PEDATDIR=(*PEDATDIR)|0x0010;
}
if(val==0)
{
*PEDATDIR=(*PEDATDIR)&0x0FFEF;
}
}
else
{
}
}
void Max_CLK(int ab,int val)
{
watchdog();
if (ab==0)
{
*MCRC=(*MCRC)&0x0FF01;
*PEDATDIR=(*PEDATDIR)|0x07C00;
if (val!=0)
{
*PEDATDIR=(*PEDATDIR)|0x0008;
}
if(val==0)
{
*PEDATDIR=(*PEDATDIR)&0x0FFF7;
}
}
else
{
watchdog();
}
}
void Max_DIN(int ab,int val)
{
watchdog();
if (ab==0)
{
*MCRC=(*MCRC)&0x0FF01;
*PEDATDIR=(*PEDATDIR)|0x07C00;
if (val!=0)
{
*PEDATDIR=(*PEDATDIR)|0x0004;
}
if(val==0)
{
*PEDATDIR=(*PEDATDIR)&0x0FFFB;
}
}
else
{
}
}
void Max_SEND(unsigned int val)
{
int i;
unsigned int tmp;
Max_CS(0,1);
Max_CLK(0,0);
Max_CS(0,1);
Max_CS(0,0);
for (i=0;i<16;i++)
{
Max_CLK(0,0);
tmp= 0x8000>>i;
Max_DIN(0,val&tmp);
Max_CLK(0,0);
Max_CLK(0,1);
}
Max_CS(0,1);
}
void dly_nus(long int n)
{
int i;
long int j;
for (j=1;j<=n;j++)
{
for (i=0;i<3;i++)
{
watchdog();
}
}
}
int key_hit(void)
{
watchdog();
if((KEY&0x000F)==0x000F) return (0);
dly_nus(5000);
if((KEY&0x000F)==0x000F) return (0);
return (1);
}
int READ_KEY(void)
{
unsigned int row=0,col=0;
unsigned int mask;
unsigned int tmp;
watchdog();
KEY=0x0000;
if (key_hit()==0) return(255);
mask=0x0001;
KEY=(~mask);
tmp=KEY;
while((((tmp&0x000F)==0x000F)&&(mask<0x0010)))
{
watchdog();
++row; mask*=2;
KEY=(~mask); tmp=KEY;
}
mask=0x01;
while(tmp&mask)
{
++col; mask*=2;
mask=mask&0x000F; watchdog();
}
KEY=0x0000;
while(key_hit()==0) {watchdog();}
tmp=row*4+col;
return (tmp);
}
void LED_init(void)
{
int j;
Max_SEND(0x0F00);
Max_SEND(0x0C01);
Max_SEND(0x0A04);
Max_SEND(0x0B07);
Max_SEND(0x09FF);
Max_SEND(0x0F01);
delay_nus(10000);
Max_SEND(0x0F00);
for (j=1;j<9;j++)
{
Max_SEND(j*0x100+0x000F);
}
}
void TREFFIC_test(void)
{
int i;
*XINT2CR=0x8001;
LED_init();
while (READ_KEY()!=17)
{
TRAFFIC=0x00AA;
delay_nus(20000);
TRAFFIC=0x0099;
for ( i=9;i>=0;i--)
{
Max_SEND(0x0100+i);
delay_nus(20000);
}
Max_SEND(0x010F);
TRAFFIC=0x0066;
delay_nus(20000);
TRAFFIC=0x0022;
delay_nus(20000);
TRAFFIC=0x0066;
delay_nus(20000);
TRAFFIC=0x0022;
delay_nus(20000);
TRAFFIC=0x0066;
delay_nus(20000);
TRAFFIC=0x0022;
delay_nus(20000);
TRAFFIC=0x0066;
delay_nus(20000);
TRAFFIC=0x00EE;
for ( i=3;i>=0;i--)
{
Max_SEND(0x0100+i);
delay_nus(20000);
}
Max_SEND(0x010F);
TRAFFIC=0x0099;
for ( i=9;i>=0;i--)
{
Max_SEND(0x0100+i);
delay_nus(20000);
}
Max_SEND(0x010F);
TRAFFIC=0x0099;
delay_nus(20000);
TRAFFIC=0x0088;
delay_nus(20000);
TRAFFIC=0x0099;
delay_nus(20000);
TRAFFIC=0x0088;
if(READ_KEY()==17) return;
delay_nus(20000);
TRAFFIC=0x0099;
if(READ_KEY()==17) return;
delay_nus(20000);
TRAFFIC=0x0088;
if(READ_KEY()==17) return;
delay_nus(20000);
TRAFFIC=0x0099;
if(READ_KEY()==17) return;
delay_nus(20000);
TRAFFIC=0x00BB;
for ( i=3;i>=0;i--)
{
Max_SEND(0x0100+i);
if(READ_KEY()==17) return;
delay_nus(20000);
}
Max_SEND(0x010F);
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -