历史上的今天
返回首页

历史上的今天

今天是:2025年03月13日(星期四)

正在发生

2020年03月13日 | 任务4:控制指定LED的亮灭

2020-03-13 来源:eefocus

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

推荐阅读

史海拾趣

Hosiden Corporation公司的发展小趣事

作为汽车电子领域的佼佼者,Hosiden在汽车市场的深耕与布局尤为引人注目。公司针对汽车行业的特殊需求,开发了一系列高性能、高可靠性的电子连接器和电缆产品。这些产品不仅满足了汽车制造商对产品质量和性能的高标准要求,还通过提升数据传输速度和降低电磁干扰等方式,为汽车行业的发展提供了有力支持。同时,Hosiden还积极参与汽车行业的标准制定和技术交流活动,为行业的发展贡献了自己的智慧和力量。

AntennaHome公司的发展小趣事

随着公司产品的不断升级和优化,AntennaHome逐渐引起了国际大厂的注意。一家知名通信设备制造商看中了公司产品的技术优势和稳定性能,主动提出合作意向。经过多轮谈判,双方达成了合作协议,AntennaHome的产品开始进入国际市场,公司的业务规模也随之迅速扩大。

Everett Charles Technologies (ECT)公司的发展小趣事

1965年,Everett Charles Technologies (ECT) 公司正式成立,标志着其在电子测试系统硬件与软件领域的起点。ECT的创始人凭借对电子技术的深刻理解和市场需求的敏锐洞察,成功开发出了一系列符合工业标准的产品,包括POGO探针、ValuGrid测试治具等。这些产品的推出,不仅奠定了ECT在电子测试领域的基础,也为公司的后续发展提供了强大的动力。

Diode Laser Concepts公司的发展小趣事

Diode Laser Concepts公司始终关注社会责任,积极参与各类公益活动。公司定期向贫困地区捐赠教育设备和资金,支持当地的教育事业发展;同时,公司还组织员工参与环保志愿活动,宣传环保理念,为保护地球环境贡献一份力量。这些公益活动不仅体现了公司的社会责任感,也增强了员工之间的凝聚力和向心力。

Alliance Memory公司的发展小趣事

为了拓展更广阔的市场,Diode Laser Concepts公司开始实施国际化战略。公司先是在亚洲和欧洲设立了办事处,随后又在美国等地建立了生产基地。通过与国际知名企业的合作,公司不仅将产品销售到了全球各地,还积累了丰富的国际经验,提升了品牌影响力。

Bedford Opto公司的发展小趣事

随着国内市场的饱和,Bedford Opto公司开始寻求国际化扩张的机会。通过与国外知名企业的合作,公司成功打入国际市场,并获得了更多的业务机会。同时,公司还积极参与国际技术交流与合作,不断提升自身的技术水平和创新能力。

问答坊 | AI 解惑

一种改进的电压跟随PFCCukAC/DC变换器

一种改进的电压跟随PFCCukAC/DC变换器 随着半导体器件的发展,电力电子装置的大量应用,导致大量谐波电流涌入电网,污染电网,这一问题已引起了各国的重视。为了限制总的谐波含量(THD)以提高功率因数,制定了许多标准,如IEC1000?3?2。近年来,如 ...…

查看全部问答>

求助:FFT-v2.1.1的介绍

本帖最后由 paulhyde 于 2014-9-15 09:50 编辑 哪位高手手头上有altera公司的FFT-v2.1.1 ipcore的介绍,麻烦发给我一份,不胜感激。 邮箱:hutiao-001@163.com  …

查看全部问答>

截图软件

找到一个很好的截图软件 分享一下…

查看全部问答>

最近做了一个lattice下载次数限制的VC程序.

最近做了一个lattice下载次数限制的VC程序. 有需要的可以联系我,QQ:289525317 只愿对技术人员开源,免费.…

查看全部问答>

eboot编译出错!!

在移植2440的usb下载nk功能到2410的eboot中时: s3c2410a_usbd.c文件中:三个函数定义和实现 BOOL UbootReadData (DWORD cbData, LPBYTE pbData); BOOL InitUSB (); void Isr_Init(); main.c文件中: // For USB Download function. extern ...…

查看全部问答>

嵌入式系统的学习

   我想往嵌入式系统发展,有哪位专家是在这方面发展的给我点建议,我想知道我得掌握哪些知识,嵌入式系统对c语言的要求高吗,应该掌握到哪一个程度?谢了~~…

查看全部问答>

退出系统后变量存储问题

我想要实现这样的功能:在单片机系统程序启动的时候,用键盘输入给一个变量赋值,在退出系统后这个值也保存下来,在下一次系统再次启动时该变量还是这个值,请问各位大侠C代码如何实现!…

查看全部问答>

小巧的LPC1114做图象开发板

    LPC1114到了,相机不在身边,拍不了照。呵呵!     前面已经我为他设计了一个舞台,该搭建了,让他在上面尽情的发挥。 [ 本帖最后由 zhdphao 于 2010-7-31 17:38 编辑 ]…

查看全部问答>

ucos+lwip在lm3s8962上的以太网发送问题

最近一个项目,要求使用ucos+lwip在lm3s8962上的以太网发送、接收,我ucos-ii下建立了建立了一个任务(线程)用于处理以太网发送和接收任务,TCP和UDP接收和发送都正常,但是我在一个定时器中断中调用tcp_write和udp_write发送时,就不能成功发送, ...…

查看全部问答>

万利的技术支持太扯淡了

                                 开始电话咨询,我把问题细细说了一遍,某工说电话不方便,EMAIL把程序发给他(一提及EMAIl我就冒火,没有一次回的 ...…

查看全部问答>