实验一#

绿
LED1 PTC0 PTC1 PTC2
LED2 PTC3 PTC4 PTC5
LED3 PTC6 PTC7 PTC8
LED4 PTC9 PTC10 PTC11

基本要求#

同时点亮一个绿色的LED灯,一个蓝色的LED灯,一个紫色的LED灯,和一个红色的LED灯,并闪烁

#include "derivative.h" /* include peripheral declarations */

void delay(){
	unsigned int i,j;
	for(i=0;i<1000;i++){
		for(j=0;j<1000;j++){
			asm("nop");
		}
	}
}

int main(){
    
	SIM_SCGC5|=0x800;
	
	PORTC_PCR0=0x100;
	PORTC_PCR4=0x100;
	PORTC_PCR8=0x100;
	PORTC_PCR9=0x100;
	PORTC_PCR11=0x100;
	
	GPIOC_PDDR=0xFFF;
	GPIOC_PDOR&=~(0x01|0x10|0x100|0x200|0x800);
	
	for(;;) {	
			delay();
			GPIOC_PDOR^=(0x01|0x10|0x100|0x200|0x800);
		}

	return 0;
}

扩展要求#

依次点亮四个蓝色的LED,形成跑马灯,然后熄灭,依次点亮四个绿色的LED灯,形成跑马灯,然后熄灭,循环重复。

int main(){

	SIM_SCGC5|=0x800;
	
	PORTC_PCR2=0x100;
	PORTC_PCR5=0x100;
	PORTC_PCR8=0x100;
	PORTC_PCR11=0x100;
	
	PORTC_PCR1=0x100;
	PORTC_PCR4=0x100;
	PORTC_PCR7=0x100;
	PORTC_PCR10=0x100;
	
	GPIOC_PDDR=0xFFF;
	
	GPIOC_PDOR&=~(0xDB6);
	
	unsigned int i;
	
	for(;;) {	
		
		int blue_flag=0x4;
		
		for(i=0;i<4;i++){
			delay();
			GPIOC_PDOR|=0xDB6;
			GPIOC_PDOR&=~blue_flag;
			blue_flag=blue_flag<<3;
		}
			
		int green_flag=0x2;
		
		for(i=0;i<4;i++){
			delay();
			GPIOC_PDOR|=0xDB6;
			GPIOC_PDOR&=~green_flag;
			green_flag=green_flag<<3;
		}
	}

	return 0;
}