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

📄 q1._c

📁 我学习AVR的代码例子
💻 _C
字号:
#include "iom16v.h"
#define LOBYTE(a) ((BYTE)(a&0x0f))
#define HIBYTE(a) ((BYTE)((a)>>4))
#define _asm asm
#define WDR() 	asm("wdr")
#define SEI()	asm("sei")
#define CLI()	asm("cli")
#define NOP()	asm("nop")
#define SLEEP() asm("sleep")
#define led_on() (PORTB =0x00)
#define led_off() (PORTB =0xff)
char i=0;
void delay_2us(int time)//微秒级延时程序
 {     
   do
	 {
	   time--;
	   //WDR();
	 }	
   while (time>1);
 }	   
void delay_ms(unsigned int time)//毫秒级延时程序
 {
   while(time!=0)
	 {		
	   delay_2us(500);
	   time--;
	 }
   //WDR();
 }
void port_init(void)
 {
   DDRB  = 0xff;
   PORTB  = 0x00;
 }
void T_init(void)
 {
   TCCR1A=0x00;
   TCCR1B=0x00;       //停止定时器1
   
   TCNT1H=0xc2;
   TCNT1L=0xf7;       //定时0.5s
   
   TCCR1B=0x04;       //256分频
   
 }
#pragma interrupt_handler timer1_ovf:9
void timer1_ovf(void)                    //位闪动即修改
 {
   TCNT1H=0xc2;
   TCNT1L=0xf7;
   TCCR1B=0x04;
   if(i==1){i=0;led_on();}
   else {i=1;led_off();}
 }
void main(void)
 {
   port_init();
   T_init();
   TIMSK=0X45;
   SEI();
   while(1)
   {
    delay_ms(1000);
	/*led_on();
	delay_ms(1000);
	led_off();*/
   }
 }

⌨️ 快捷键说明

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