文档视界 最新最全的文档下载
当前位置:文档视界 › 飞思卡尔数码管循环显示

飞思卡尔数码管循环显示

#include /* for EnableInterrupts macro */
#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();
}
}





















相关文档