历史上的今天
今天是:2025年03月13日(星期四)
2020年03月13日 | 任务3:直接应用寄存器点亮LED
2020-03-13 来源:eefocus
本系列教程以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的软排线相连接,然后再给教学开发板通电。大家看到了什么效果?和我们实现约定的效果一致吗?为什么会是这个效果呢?我们将在下一个任务中加以介绍。
上一篇:任务4:控制指定LED的亮灭
下一篇:任务2:PCB投板方法
史海拾趣
|
安装到,复制新文件的时候,出现 错误。写入文件C:\\WINDOWS\\system32\\rapi.dll 时出错。 请验证您有权访问该目录。 之前也装过 ActiveSync4.5 但是没有出现问题,该怎么解决啊?? 谢谢大家了!!… 查看全部问答> |
|
求一完整程序~关于EVC4.0下的UDP编程!有的大大请加我QQ 41368886 还有哪个大大有Pocket PC 2002一Win32 (WINCE X 86) Debug 的开发环境也发给我! 求~~跪求这两个 … 查看全部问答> |
|
ORG 0000H AJMP START ORG 30H START: MOV R1,#01HMOV P1,#0FFH ;关所 灯 MOV TMOD,#00000001B ;定时/计数器0工作于方式1 MOV TH0,#15H MOV TL0,#0A0H ;即数5536 SETB TR0 ;定时/计数器0开始运行 LOOP:JBC TF0,NEXT ;如果TF0等于1,则清TF ...… 查看全部问答> |
|
通过模拟开关或者继电器导通电流信号,现有问题,请大家指教 1,如果是模拟开关,漏电流不能恒定,会随着信号的大小变化。以至于信号本来是线性的,结果就非线性了。2,如果是继电器,有声音。有无声的继电器吗? 那种光电转换的继电器也会有漏电 ...… 查看全部问答> |




