网站大量收购独家精品文档,联系QQ:2885784924

单片机技术及应用项目教程 课件 知识点5-C语言中的宏.ppt

单片机技术及应用项目教程 课件 知识点5-C语言中的宏.ppt

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

山东电子职业技术学院电子工程系单片机程序设计与应用课程组项目2:初识层次化软件设计思想——点亮你的LED

1初步认识LED2单片机控制LED原理3位寄存器DDRx和PORTx用法4C语言的位操作5C语言中的宏6层次化软件设计思想

5C语言中的宏

作用:增强程序的可读性宏定义命名及使用规则:a、#号与define之间一般不留空格;但宏名左右两边必须至少一个空格分隔。b、宏名的有效范围为定义之后到本源文件结束。c、允许#define命令出现在程序中的任何位置。d、一个经#define定义的宏名,也可在程序中通过#undef终止其作用域。e、在一个宏定义中,允许出现已存在的宏名。一、宏定义

(1)无参宏定义无参宏定义的一般格式: #define标识符一串字符标识符被定义为代表一串字符的宏名。例如:#defineE2.17828(2)带参宏定义在程序设计中,宏定义除了定义符号常量外,还经常用于定义带参数的宏。带参宏定义的一般格式为: #define宏名(参数表)一串字符例如: #defineSUM(a,b)a+b

二、置高、置低和反转功能宏1、置高置高表达式:x|=(1y)先对(1y)进行带参宏定义:#defineBIT(x)(1x)则第0位至第7位的宏定义,如下所示:#defineBIT0BIT(0)……#defineBIT6BIT(6)#defineBIT7BIT(7)接着,我们定义置高功能宏,如下所示:#defineSETBIT(x,y)x|=y如果希望将PC2引脚置成高电平,可以直接应用宏定义SETBIT完成,如下所示:SETBIT(PORTC,BIT2)

2、置低置低功能宏的宏定义,如下所示:#defineCLRBIT(x,y)x=~y 如果希望将PORTC寄存器的第2位置成低电平,我们可以这样完成CLRBIT(PORTC,BIT2)

3、反转反转功能的宏定义,如下所示:#defineCPLBIT(x,y)x^=y

三、程序调试【程序2-7】//加入包含文件#include../include.h?//定义系统常量?//定义全局变量?//主程序intmain(void){ //定义局部变量 //目标板初始化,该函数会自动初始化相应的外设文件 TARGET_Init(); //初始化全局变量 //在上电时,执行的相应操作 SETBIT(DDRC,BIT2); //后台主循环 while(1) { //在这里完成自己的项目逻辑

//在这里完成自己的项目逻辑 CLRBIT(PORTC,BIT2); TARGET_Delayms(1000,1); SETBIT(PORTC,BIT2); TARGET_Delayms(1000,1); //喂狗语句,大部分工程项目都不应去除 #ifINTERNAL_PERIPHERAL_WDT_MODE!=0 TARGET_WatchDogReset(); #endif } return0; //永不执行}

原则:先定义后使用四、宏定义头文件图2-12DataType.h头文件

【程序2-8】//功能宏,以下内容与移植不相关#defineSETBIT(x,y) (x|=y)#defineCLRBIT(x,y)(x=~y)#defineCPLBIT(x,y) (x^=y)#defineCHKBIT(x,y)(xy)?#defineBIT(x) (1x)#defineBIT0 BIT(0)#defineBIT1 BIT(1)#defineBIT2 BIT(2)#defineBIT3 BIT(3)#defineBIT4 BIT(4)#defineBIT5 BIT(5)#defineBIT6 BIT(6)#defineBIT7 BIT(7)#defineBIT8 BIT(8)#defineBIT9 BIT(9)#defineBITA BIT(10)#defineBITB BIT(11)#defineBITC BIT(12)#defineBITD BIT(13)#defineBITE BIT(14)#defineBITF BIT(15)

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档