任务4:控制指定LED的亮灭

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qingwufeiyang12346/article/details/101176568

本系列教程以AVR单片机为对象,介绍单片机的快速开发方法。

参考教材:《单片机技术及应用项目教程》 栾秋平 电子工业出版社 2019.6 第1版

本文介绍控制指定LED亮灭的方法。

一、认知C语言中的位操作

//加入包含文件
#include "../include.h"

//定义系统常量

//定义全局变量

//主程序
int main(void)
{
	//定义局部变量
	
	//目标板初始化,该函数会自动初始化相应的外设文件	
	TARGET_Init();
	
	//初始化全局变量	
		
	//在上电时,执行的相应操作	
	DDRC = 0xFF;	
	//后台主循环
	while(1)
	{
		//在这里完成自己的项目逻辑								
		PORTC = 0xFB;
		TARGET_Delayms(1000, 1);
		PORTC = 0xFF;
		TARGET_Delayms(1000, 1);
		//喂狗语句,大部分工程项目都不应去除			
		#if INTERNAL_PERIPHERAL_WDT_MODE != 0
			TARGET_WatchDogReset();
		#endif
	}
	return 0;	//永不执行
}

二、操纵寄存器中的指定位

//加入包含文件
#include "../include.h"

//定义系统常量

//定义全局变量

//主程序
int main(void)
{
	//定义局部变量
	
	//目标板初始化,该函数会自动初始化相应的外设文件	
	TARGET_Init();
	
	//初始化全局变量	
		
	//在上电时,执行的相应操作	
	DDRC |= (1 << 2);	
	//后台主循环
	while(1)
	{
		//在这里完成自己的项目逻辑								
		PORTC &= ~(1 << 2);
		TARGET_Delayms(1000, 1);
		PORTC |= (1 << 2);
		TARGET_Delayms(1000, 1);
		//喂狗语句,大部分工程项目都不应去除			
		#if INTERNAL_PERIPHERAL_WDT_MODE != 0
			TARGET_WatchDogReset();
		#endif
	}
	return 0;	//永不执行
}

三、置高、置低和反转功能宏

//加入包含文件
#include "../include.h"

//定义系统常量

//定义全局变量

//主程序
int main(void)
{
	//定义局部变量
	
	//目标板初始化,该函数会自动初始化相应的外设文件	
	TARGET_Init();
	
	//初始化全局变量	
		
	//在上电时,执行的相应操作	
	SETBIT(DDRC, BIT2);	
	//后台主循环
	while(1)
	{
		//在这里完成自己的项目逻辑								
		CLRBIT(PORTC, BIT2);
		TARGET_Delayms(1000, 1);
		SETBIT(PORTC, BIT2);
		TARGET_Delayms(1000, 1);
		//喂狗语句,大部分工程项目都不应去除			
		#if INTERNAL_PERIPHERAL_WDT_MODE != 0
			TARGET_WatchDogReset();
		#endif
	}
	return 0;	//永不执行
}
//功能宏,以下内容与移植不相关
#define SETBIT(x, y)	(x |= y)
#define CLRBIT(x, y) (x &= ~y)
#define CPLBIT(x, y)	(x ^= y)
#define CHKBIT(x, y) (x & y)

#define BIT(x)		(1<<x)
#define BIT0			BIT(0)
#define BIT1			BIT(1)
#define BIT2			BIT(2)
#define BIT3			BIT(3)
#define BIT4			BIT(4)
#define BIT5			BIT(5)
#define BIT6			BIT(6)
#define BIT7			BIT(7)
#define BIT8			BIT(8)
#define BIT9			BIT(9)
#define BITA			BIT(10)
#define BITB			BIT(11)
#define BITC			BIT(12)
#define BITD			BIT(13)
#define BITE			BIT(14)
#define BITF			BIT(15)

 

 

 

扫描二维码关注公众号,回复: 7658193 查看本文章

 

任何问题,只需在此文章的评论处留言即可,我将尽力解答,不要试图采用其它的联系方式,我一概不理会。

原创性文章,转载请注明出处CSDN:http://blog.csdn.net/qingwufeiyang12346。

 

 

猜你喜欢

转载自blog.csdn.net/qingwufeiyang12346/article/details/101176568
今日推荐