[AVR单片机] AVR怎么使用端口模拟串口

[复制链接]
4939|9
 楼主| tcc8073 发表于 2009-8-3 12:31 | 显示全部楼层 |阅读模式
AVR的端口操作不是很方便,是否有什么好的方法可以做到类似51那样简单的模拟串口
 楼主| tcc8073 发表于 2009-8-17 10:46 | 显示全部楼层
看来没有人愿意用AVR模拟串口
zhf2540326 发表于 2011-8-25 13:33 | 显示全部楼层
我正在研究中
joyme 发表于 2011-8-25 14:10 | 显示全部楼层
只要掌握了串口时序,一样的模拟呀
我的单总线和I2C控制都是普通IO口模拟的
lisijun100 发表于 2011-8-26 02:18 | 显示全部楼层
可以 像位操作操作一样
lisijun100 发表于 2011-8-26 02:31 | 显示全部楼层
假如 我只操作PA0,   让PA0 输出方波,     void _PA0(uchar i)
{
DDRA|=0XFE; //配置PA0为输出口
if(i==0)PORTA&=0XFE;//如果需要PA0 输出低电平,则输出低电平
else PORTA|=0X01;//反正 就是高电平 这一句也可以改成if(i==1)PORTA|=0X01;// Z这样准确一点
}
void main(void)
{
   while(1)
{
     _PA0(1);//高电平
      delay();//省略
      _PA0(0);//低电平
      delay();//省略


}
}
用一个函数 实现 一个位 的操作
lbdyxk 发表于 2013-3-7 16:12 | 显示全部楼层
发送成功了,最近在研究模拟接收
qin552011373 发表于 2013-3-7 23:38 | 显示全部楼层
根据串口时许应该可以吧  网上有现成的
joyme 发表于 2013-3-8 09:51 | 显示全部楼层
#define  SETBIT(val,index)     val |= (1<<index)
#define  CLRBIT(val,index)      val &= (~(1<<index))
#define  GTBIT(val,index)       (val & (1<<index))
SETBIT(PORTA,0)   PORTA0置1
GETBIT(PINA,1)      获取PORTA1的值,不等于0则为高,反之为低
dqyubsh 发表于 2013-3-8 18:43 | 显示全部楼层

AVR的端口操作不是很方便——这是从何说起?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

179

主题

1358

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部