本系列教程以AVR单片机为对象,介绍单片机的快速开发方法。
参考教材:《单片机技术及应用项目教程》 栾秋平 电子工业出版社 2019.6 第1版
本文介绍直接应用寄存器点亮LED的方法。
一、单片机控制LED发光的基本方法
二、应用PORTC寄存器控制LED闪烁
//加入包含文件
#include "../include.h"
//定义系统常量
//定义全局变量
//主程序
int main(void)
{
//定义局部变量
//目标板初始化,该函数会自动初始化相应的外设文件
TARGET_Init();
//初始化全局变量
//在上电时,执行的相应操作
DDRC = 0xFF;
//后台主循环
while(1)
{
//在这里完成自己的项目逻辑
PORTC = 0x00;
TARGET_Delayms(1000, 1);
PORTC = 0xFF;
TARGET_Delayms(1000, 1);
//喂狗语句,大部分工程项目都不应去除
#if INTERNAL_PERIPHERAL_WDT_MODE != 0
TARGET_WatchDogReset();
#endif
}
return 0; //永不执行
}
三、程序代码解读
四、任务小结
通过这个任务的完成,我们首先对LED的发光原理有了一个感性的认识,并领会了使用单片机控制LED亮灭的要点;然后,我们学习了DDRx和PORTx两个寄存器,并编写程序通过对这两个寄存器进行读写操作达到了控制LED亮灭的效果。不仅如此,我们还复习了有关进制转换的知识,掌握了应用“8421”规则快速进行进制转换的方法。 虽然,当我们成功完成这个任务的时候,我们可以观察到LED0以1秒为间隔闪烁的结果,不过对于这个任务还是有问题存在的,大家不妨将教学开发板的P7端口与P10端口通过2*5的软排线相连接,然后再给教学开发板通电。大家看到了什么效果?和我们实现约定的效果一致吗?为什么会是这个效果呢?我们将在下一个任务中加以介绍。
任何问题,只需在此文章的评论处留言即可,我将尽力解答,不要试图采用其它的联系方式,我一概不理会。
原创性文章,转载请注明出处CSDN:http://blog.csdn.net/qingwufeiyang12346。