📄 q1._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 + -