本系列教程以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< #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)
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』