ATMEGA128怎么单独使用引脚
比如我想用PB1口,和PB7口作pwm口,PB1,PB2,用作按键..定义一个PB7口,必须用PORTB=OX7F吗?能不能像51单片机一样,用sbitP21=P2^1这...
比如我想用PB1口,和PB7口作pwm口, PB1,PB2,用作按键..
定义一个PB7口,必须用PORTB=OX7F吗?能不能像51单片机一样,用sbit P21=P2^1这样单独定义啊,先谢谢各位了; 展开
定义一个PB7口,必须用PORTB=OX7F吗?能不能像51单片机一样,用sbit P21=P2^1这样单独定义啊,先谢谢各位了; 展开
2个回答
展开全部
这个就是AVR与51不一样的地方,AVR不能像51这样进行位定义的,要换一种形式,比如:
#define LCD_DI PB0
#define LCD_RW PB1
#define LCD_DI_H LCD_CODE_OUT |= BIT(LCD_DI)
#define LCD_DI_L LCD_CODE_OUT &= ~BIT(LCD_DI)
用的时候,直接就是: LCD_DI_H;
#define LCD_DI PB0
#define LCD_RW PB1
#define LCD_DI_H LCD_CODE_OUT |= BIT(LCD_DI)
#define LCD_DI_L LCD_CODE_OUT &= ~BIT(LCD_DI)
用的时候,直接就是: LCD_DI_H;
追问
那请问你的LCD_DI_H,输出的什么呢?好像也没说明哪个特定的引脚,比如PB7=多少
追答
前面已经定义好了,PB0,看到了不?就是这个脚输出一个高电平。后面用了一个自带函数,AVR编译系统里有的。
#define LCD_CODE_OUT PORTB
这个忘了给你。
AVR程序最大特点是,宏定义的时候往往有一大片,比51壮观多了。
这是全部的引用函数
#include
#include
#include
#include
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询