搜索
bottom↓
回复: 31

上传4程序库:LCD1602,DS1620,USART,PT2262和PT2272;加一个使用范例。

[复制链接]

出0入0汤圆

发表于 2008-7-7 00:08:39 | 显示全部楼层
大侠,有空能帮我看看这个2262发送和接受的程序么,都接到一个AVR m16上的








#include   "iom16v.h"  
#include   "macros.h"  



#define setD0      (PORTB |=0b10000000)
#define clrD0      (PORTB &=0b01111111)
#define setD1      (PORTD |=0b00000100)
#define clrD1      (PORTD &=0b11111011)
#define setD2      (PORTD |=0b00000010)
#define clrD2      (PORTD &=0b11111101)
#define setD3      (PORTD |=0b00000001)
#define clrD3      (PORTD &=0b11111110)
#define D0    PINB &=(1<<5)
#define D1    PINB &=(1<<4)
#define D2    PINB &=(1<<3)
#define D3    PINB &=(1<<2)

int table[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

int scan[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  char data=0;
void PORT_init()
{
PORTA=0xff;
DDRA=0xff;
PORTB=0x00;
DDRB=0x81;
PORTC=0x00;
DDRC=0xff;
PORTD=0xf0;
DDRD=0x0f;
clrD0;
clrD1;
clrD2;
clrD3;
}  
   
void timer0_init()
{SREG=0x80;
TIMSK|=(1<<TOIE0);//開TO溢出中斷;
TCCR0=0x07;       //外部T0腳,上升沿驅動;
TCNT0=0xff;//初值
}  
   void INT1_init()
{SREG=0x80;                     /*使能全局中断*/
MCUCR=0x03;
  MCUCR|=((1<<ISC11)|(1<<ISC10));  /*上升沿触发方式*/
  GICR|=(1<<INT1);
}
   #pragma interrupt_handler timer0_ovf:10
void timer0_ovf()
{int delay=1000000;/*
int i;
for(i=0;i<8;i++)
{
  table=(~table);
}
*/

table[2]=~table[2];
receive();
TCNT0=0xff;      //定時器重新賦初值

}


#pragma interrupt_handler int1:3
void int1()
{
table[1]=~table[1];
send();
   GICR|=(1<<INT1);
   GICR|=(1<<INT0);
GICR|=(1<<INT2);
}
   
void send()
  {
     setD0;
         setD1;
         setD2;
         setD3;
   
  }
  
  void receive()
  {int i,delay;
  data=0;
  if(D3) data++;
  data<<1;
  if(D2) data++;
  data<<1;
  if(D1) data++;
  data<<1;
  if(D0) data++;
  
  if (data!=0)
  
  
  {
   
      table[3]=~table[3];
          
   delay=1000000000;
          while(delay--);
   }

  
  
  }
  
  
  void main()
  {
   int i,delay=10000000;
   PORT_init();
   timer0_init();
   INT1_init();
  // while(delay--)
  // delay=100000000;
  // while(delay--)
  
  
   while(1)
  
  {for(i=0;i<8;i++)
           {    delay=1000;
              PORTA=scan;
              PORTC=table;
              
              while(delay--);
           }


   }
  }

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2008-7-7 11:53:51 | 显示全部楼层
这只是个测试有无发送和接收的测试程序,现在只简单设了个假如有收到1111的信号就对点阵取反,原来亮着的点阵就会灭,来标志一下有没有收到信号而已。
现在主要是没有接受信号的问题,用万用表测2272的VT没有出现高电平,也就是说没有接收信号是吧


电路是,把我买的个PT2262和2272的无线发送模块,想知道我这样接线对不对。是带锁存器的四位数据的那种喔。
模块引出的一条黑线和一条红线分别接地和电源。我接的电源是直接从AVR MEGA16的电源那里引出来的+5v。不知这样可以不可以
然后四个数据脚接到单片机的接口,接受和发送设了相同的地址位。
接受的话就接了七个脚到单片机口咯,电源、地、VT,和四个数据位。地址也设了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-19 21:48

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表