⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led.c

📁 学单片机得先弄懂它的IO口
💻 C
字号:
//ICC-AVR application builder : 2008-07-02 下午 03:28:23
// Target : M32
// Crystal: 8.0000Mhz

#include <iom32v.h>
#include <macros.h>
#define  uchar unsigned char  

void port_init(void) //端口定义
{
 PORTA = 0x00;       //低电平
 DDRA  = 0xFF;       //输入
 PORTB = 0x00;       //低电平
 DDRB  = 0xFF;       //输出
 PORTC = 0x00; 
 DDRC  = 0x00;
 PORTD = 0x00;
 DDRD  = 0x3C;
}

//call this routine to initialize all peripherals
void init_devices(void)
{
 //stop errant interrupts until set up
 CLI(); //disable all interrupts
 port_init();

 MCUCR = 0x00;
 GICR  = 0x00;
 TIMSK = 0x00; //timer interrupt sources
 SEI(); //re-enable interrupts
 //all peripherals are now initialized
}

//1微秒延时
void delay_1us(void)
{       uchar i=8;
       asm("nop");
        i--;
}
//长微秒延时
void delay_nus(uchar t)
{ while(t--)
  delay_1us();
}
//1毫秒延时
void delay_1ms(void)
{
  delay_nus(1000);
}
//长毫秒延时
void delay_nms(uchar t)
{ while(t--)
  delay_1ms();
}
//定义LED等
void led_out(void)
{  uchar i;
   for(i=1;i<5;i++)
   {PORTD|=BIT(6-i);
   delay_nms(500);}
   for(i=5;i<13;i++)
   {PORTB|=BIT(12-i);
   delay_nms(500);}
   for(i=12;i>4;i--)
   {
    PORTB&=~BIT(12-i);
    delay_nms(500);
	}
	for(i=4;i!=0;i--)
	{
	PORTD&=~BIT(6-i);
	delay_nms(500);
	}
   }
//主程序开始
void main(void)
{
 init_devices();
 while(1)
 {
  led_out();
 }
 //insert your functional code here...
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -