中科因仑“3+1”工程特种兵精英论坛
标题:
ATMEGA128L精简开发板002、位定义闪烁灯设计实例一
[打印本页]
作者:
张衍波
时间:
2015-4-29 19:59
标题:
ATMEGA128L精简开发板002、位定义闪烁灯设计实例一
#include <iom128.h>
/**********************************************************************
函数数据类型说明
**********************************************************************/
#define uchar unsigned char
#define uint unsigned int
//定义BIT 0-7 置1
#define BIT0_POS (1<<0)
#define BIT1_POS (1<<1)
#define BIT2_POS (1<<2)
#define BIT3_POS (1<<3)
#define BIT4_POS (1<<4)
#define BIT5_POS (1<<5)
#define BIT6_POS (1<<6)
#define BIT7_POS (1<<7)
//定义BIT 0-7 清零
#define BIT0_NEG ((unsigned char)(~(1<<0)))
#define BIT1_NEG ((unsigned char)(~(1<<1)))
#define BIT2_NEG ((unsigned char)(~(1<<2)))
#define BIT3_NEG ((unsigned char)(~(1<<3)))
#define BIT4_NEG ((unsigned char)(~(1<<4)))
#define BIT5_NEG ((unsigned char)(~(1<<5)))
#define BIT6_NEG ((unsigned char)(~(1<<6)))
#define BIT7_NEG ((unsigned char)(~(1<<7)))
//定义红色LED熄灭、亮、翻转
#define LED_red_OFF PORTD&=BIT0_NEG
#define LED_red_ON PORTD|=BIT0_POS
#define LED_red_OTN PORTD^=BIT0_POS
//定义绿色LED熄灭、亮、翻转
#define LED_green_OFF PORTD&=BIT1_NEG
#define LED_green_ON PORTD|=BIT1_POS
#define LED_green_OTN PORTD^=BIT1_POS
/**********************************************************************
MS级延时函数程序,参数i 延时时间
**********************************************************************/
void DelayMS(uint i)
{
uint j;
for(;i!=0;i--)
{
for(j=8000;j!=0;j--);
}
}
/**********************************************************************
主函数
**********************************************************************/
void main(void)
{
DDRD=0XFF;//端口设置,PD口设置为推挽1输出
PORTD=0XFF;
while(1)//程序无条件执行
{
LED_red_ON;
LED_green_ON;
DelayMS(100);//延时时间约100MS
LED_red_OFF;
LED_green_OFF;
DelayMS(100);//延时时间约100MS
}
}
/**********************************************************************
结束
**********************************************************************/
[attach]2549[/attach]
欢迎光临 中科因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/)
Powered by Discuz! X3.4