📄 iar16-2.c
字号:
#include <iom16.h> //包含头文件
#include<intrinsics.h>
#define uchar unsigned char //变量类型的宏定义
#define uint unsigned int
//----------------------------------------
#define xtal 8 //定义晶振频率
void delay_1ms(void) //1mS延时子函数
{
uint i;
for(i=1;i<(uint)(xtal*143-2);i++)
;
}
//=========================================
void delay_ms(uint n) //n*1mS延时子函数
{
uint i=0;
while(i<n)
{
delay_1ms();
i++;
}
}
//-------------------------------------------
void port_init(void) //初始化I/O口
{
PORTA = 0x00;
DDRA = 0x00;
PORTB = 0xFF; //PB端口初始化输出11111111
DDRB = 0xFF; //将PB端口设为输出
PORTC = 0x00;
DDRC = 0x00;
PORTD = 0x00;
DDRD = 0x00;
}
//***************看门狗初始化,分频系数为16K
void watchdog_init(void)
{
__watchdog_reset();
WDTCR = 0x08;
}
//=========================================
void init_devices(void)//器件的初始化子函数
{
port_init();
watchdog_init();
}
//*****************************************
void main(void) //主函数
{
init_devices(); //初始化
while(1) //无限循环
{
PORTB=0xfe; //点亮D1。
delay_ms(3); //延时3ms。
PORTB=0xfd; //点亮D2。
delay_ms(3); //延时3ms。
PORTB=0xfb; //点亮D3。
delay_ms(3); //延时3ms。
PORTB=0xf7; //点亮D4。
delay_ms(3); //延时3ms。
PORTB=0xef; //点亮D5。
delay_ms(3); //延时3ms。
PORTB=0xdf; //点亮D6。
delay_ms(3); //延时3ms。
PORTB=0xbf; //点亮D7。
delay_ms(3); //延时3ms。
PORTB=0x7f; //点亮D8。
delay_ms(3); //延时3ms。
PORTB=0xff; //关闭所有的发光管。
delay_ms(3); //延时3ms。
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -