pic单片机中在设置单片机引脚时总会有如下的定义?是什么意思啊?请高手帮忙指点下呀!!
/*单片机与LCD1602连接数据线定义*/#defineLCD_RSPORTAbits.RA2/*PORTforRS*/#defineTRIS_LCD_RSDDRAbi...
/*单片机与LCD1602连接数据线定义*/
#define LCD_RS PORTAbits.RA2 /* PORT for RS */
#define TRIS_LCD_RS DDRAbits.RA2 /* TRIS for RS */
上面这两句话是什么意思啊,请高手指点啊。。。。
主要是见到好多程序中都有DDRAbits.RA2 DDRBbits.RA2 这样的定义 ,DDRAbits DDRBbits是什么样的寄存器啊???? 还有/* TRIS for RS * 中的tris 和rs是什么意思呀? 展开
#define LCD_RS PORTAbits.RA2 /* PORT for RS */
#define TRIS_LCD_RS DDRAbits.RA2 /* TRIS for RS */
上面这两句话是什么意思啊,请高手指点啊。。。。
主要是见到好多程序中都有DDRAbits.RA2 DDRBbits.RA2 这样的定义 ,DDRAbits DDRBbits是什么样的寄存器啊???? 还有/* TRIS for RS * 中的tris 和rs是什么意思呀? 展开
3个回答
展开全部
两句都是宏定义,你学过C语言的话你是知道的;
#define LCD_RS PORTAbits.RA2 /* PORT for RS */
#define TRIS_LCD_RS DDRAbits.RA2 /* TRIS for RS */
#define 是宏定义
LCD_RS 这个是谁便你取的标示符,一个代号,你自已取的,你更容易看懂
PORTAbits.RA2 这个是PIC单片机,PORTA端口RA2位,就是单片机上RA2这个引脚.这个在头文件中有定义,
/* */这里面的所有内容,与程序无关,只是一个备注;
这个定义起的作用就是,你要控制单片机RA2这个引脚电平的高低,可以使用LCD_RS=1,此时为高电平,LCD_RS=0,此时端口为低电平;
当然,如果你没有这个宏定义的话,要控制RA2这个引脚,就必须用PORTAbits.RA2=1;这样程序写长了,你看程序的时候,就不是很直观,只知道,这是一个RA2引脚,不知道这个引脚在你的成序里是接到那里的,还有,当你要改度端口时,你得一个一个去程序里去改PORTAbits.RA2;这句话,如果用了宏定义的话,你就可以直接在宏定义那改就全程序都改了.说C语言容易移植,这也是其中很大的一个功能.
#define LCD_RS PORTAbits.RA2 /* PORT for RS */
#define TRIS_LCD_RS DDRAbits.RA2 /* TRIS for RS */
#define 是宏定义
LCD_RS 这个是谁便你取的标示符,一个代号,你自已取的,你更容易看懂
PORTAbits.RA2 这个是PIC单片机,PORTA端口RA2位,就是单片机上RA2这个引脚.这个在头文件中有定义,
/* */这里面的所有内容,与程序无关,只是一个备注;
这个定义起的作用就是,你要控制单片机RA2这个引脚电平的高低,可以使用LCD_RS=1,此时为高电平,LCD_RS=0,此时端口为低电平;
当然,如果你没有这个宏定义的话,要控制RA2这个引脚,就必须用PORTAbits.RA2=1;这样程序写长了,你看程序的时候,就不是很直观,只知道,这是一个RA2引脚,不知道这个引脚在你的成序里是接到那里的,还有,当你要改度端口时,你得一个一个去程序里去改PORTAbits.RA2;这句话,如果用了宏定义的话,你就可以直接在宏定义那改就全程序都改了.说C语言容易移植,这也是其中很大的一个功能.
追问
#define TRIS_LCD_RS DDRAbits.RA2 /* TRIS for RS */
DDRAbits.RA2是什么样的寄存器呢?这个在头文件和宏定义中都找不到。。。。
追答
DDRAbits.RA2和TRISAbits.TRISA2是一样的,IO口输入输出方向控制的!
这两种写法都是控制TRIS这一个寄存器的,你可以看成是一个简写,没什么区别。
迪凯特科技(北京)有限公司_
2025-01-03 广告
2025-01-03 广告
单片机串口通信的原理是利用单片机的串口通信模块,通过把数据转化为一位一位的用时序方式传送数据,实现单片机与外部设备之间的数据通信。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以...
点击进入详情页
本回答由迪凯特科技(北京)有限公司_提供
展开全部
第一句是一个位定义,你懂的,第二句也是位定义,
第一句是为了给RA2这个引进高低电平,第二句是定义这个引脚应该是输出或者是输入
第一句是为了给RA2这个引进高低电平,第二句是定义这个引脚应该是输出或者是输入
更多追问追答
追问
主要是见到好多程序中都有DDRAbits.RA2 DDRBbits.RA2 这样的定义 ,DDRAbits DDRBbits是什么样的寄存器啊???? 还有/* TRIS for RS * 中的tris 和rs是什么意思呀?
追答
后面是注释啊 不用管的啊,那两个估计是有头文件定义好的 要不不能直接用的 你看看头文件吧
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
宏定义 还有位定义
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询