#include
#include "derivative.h" /* include peripheral declarations */
#define ser PTDD_PTDD0
#define sclk PTDD_PTDD1
#define rclk PTDD_PTDD2
#define leden PTCD_PTCD4
#define wm PTAD
void ledsent(unsigned char data);
void delay(unsigned int z);
unsigned char dmled[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳极段码表说明
unsigned char wmled[4]={0xfc,0xfd,0xfe,0xff};
void main(void)
{
unsigned char i;
PTDDD=0x07;
PTADD=0xff;
PTCDD_PTCDD4=1;
EnableInterrupts; /* enable interrupts */
/* include your code here */
for(;;) //此位选芯片为74hc139,注意和74hc138的区别
{
leden=0;
for(i=0;i<4;i++)
{
ledsent(dmled[i]);
wm=wmled[i];
delay(500);
}
leden=1;
__RESET_WATCHDOG(); /* feeds the dog */
} /* loop forever */
/* please make sure that you never leave main */
}
void ledsent(unsigned char data)
{
unsigned char i;
for(i=0;i<8;i++)
{
sclk=0;
if(data&0x80)
ser=1;
else
ser=0;
sclk=1;
data<<=1;
}
rclk=0;
rclk=1;
}
void delay(unsigned int z)
{
unsigned int x,y;
for(x=0;x<=z;x++)
{
for(y=0;y<120;y++);
__RESET_WATCHDOG();
}
}