任务3:直接应用寄存器点亮LED

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

本系列教程以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。

 

 

 

猜你喜欢

转载自blog.csdn.net/qingwufeiyang12346/article/details/101175183