收藏 分享(赏)

我编的无线收发模块程序(发送avr,接收51).doc

上传人:cjc2202537 文档编号:1550031 上传时间:2018-08-01 格式:DOC 页数:6 大小:23.50KB
下载 相关 举报
我编的无线收发模块程序(发送avr,接收51).doc_第1页
第1页 / 共6页
我编的无线收发模块程序(发送avr,接收51).doc_第2页
第2页 / 共6页
我编的无线收发模块程序(发送avr,接收51).doc_第3页
第3页 / 共6页
我编的无线收发模块程序(发送avr,接收51).doc_第4页
第4页 / 共6页
我编的无线收发模块程序(发送avr,接收51).doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、/*标题: 315M 无线模块发送程序在 AVR 单片机上发送运行成功,用曼彻斯特码发送。*/* GccApplication1.c* Created: 2013/10/1 22:50:19* Author: Administrator*/ #include #include #define uchar unsigned charuchar a4=0,0,0,0;#define delay_us(x) _delay_us(x)#define delay_ms(x) _delay_ms(x)void wxinit()PORTA=0X01;delay_ms(9);PORTA=0X00;delay_

2、ms(4.5);void sendbit1()PORTA=0X01;delay_us(565);PORTA=0X00;delay_ms(1.685);void sendbit0()PORTA=0X01;delay_us(565);PORTA=0X00;delay_us(560);int main(void)uchar i,j,t,num=0x00;DDRA=0Xff;PORTA=0X00;while(1)if(num+)=256)num=0x00;wxinit();a0=0x78;a1=a0;for(t=0;t1;/*标题: 315M 无线模块接收程序在 51 单片机上运行成功*/头文件:#i

3、nclude “reg51.h“/IO 引脚定义:sbit hwx=P33; /无线接收数据引脚,sbit SMG_q = P10; /定义数码管阳级控制脚(千位)sbit SMG_b = P11; /定义数码管阳级控制脚(百位)sbit SMG_s = P12; /定义数码管阳级控制脚(十位)sbit SMG_g = P13; /定义数码管阳级控制脚(个位)/*数据定义*/code unsigned char table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e; /共阳数码

4、管段值表 0-9 a-funsigned char l_posit=0; /显示位置unsigned char ly_disdate4=0,0,0,0; /显示缓冲unsigned char ly_lhj4; /保存 NEC 的四个字节数据bit ly_flag=1; /成功接收标志/函数声明:void display();/定义显示函数,直接显示缓冲区数值void delay(); /*主函数开始*/void main(void)EA=1; /首先开启总中断EX1=1; /开启外部中断 1,无线接收数据引脚IT1=1; /设置成下降沿触发方式TMOD=0X10; /定时器 1 的方式 1,1

5、6 位计数器,用来计数时间while(1)if(ly_flag) /接收成功处理显示缓冲,以 16 进制显示ly_flag=0;ly_disdate0=ly_lhj3/16;ly_disdate1=ly_lhj3%16;ly_disdate2=ly_lhj2/16;ly_disdate3=ly_lhj2%16;display();/显示缓冲内容/ delay();/*外中断 1 入口函数,P33 引脚,无线接收 IC 数据脚*/void hongwai(void) interrupt 2unsigned char i,ia;/*开始判断是否为 NEC 波形引导码的前 9MS 和后4.5MS*/

6、TL1=0;TH1=0;/定时 /计数器 1 初始值while(!hwx)delay();TR1=1;while(hwx)delay();if(TH122) /NEC 引导码引导码的后 4。5MS,计数约 4500,TH1 约等于 17return;TR1=0;if(TH115)return;TR1=0;/高电平结束,判断数据 1 或 0 向变量移入ly_lhji=1; /数据由高位移入低位if(TH14) /时间量 TH1 高于 4,即高于 1MS 判断为 1ly_lhji|=0x80;ly_flag=1; /接收成功TF1=0;/显示函数,参数为显示内容void display()P0=0

7、XFF; /switch(l_posit)case 0: /选择千位数码管,关闭其它位SMG_q=0;SMG_b=1;SMG_s=1;SMG_g=1;P0=tablely_disdate0; /输出显示内容break;case 1: /选择百位数码管,关闭其它位SMG_q=1;SMG_b=0;SMG_s=1;SMG_g=1;P0=tablely_disdate1 /加上小数点break;case 2: /选择十位数码管,关闭其它位SMG_q=1;SMG_b=1;SMG_s=0;SMG_g=1;P0=tablely_disdate2;break;case 3: /选择个位数码管,关闭其它位SMG_q=1;SMG_b=1;SMG_s=1;SMG_g=0;P0=tablely_disdate3;break;l_posit+; /每调用一次将轮流显示一位if(l_posit3)l_posit=0;/延时子函数,短暂延时void delay(void)unsigned char i=10;while(i-);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报