当前位置:
文档之家› 2006我的毕设315M和433M无线发射接收程序
2006我的毕设315M和433M无线发射接收程序
WriteCommandLCD(0x38,0);
YEJINGYANSHI(5);
WriteCommandLCD(0x38,1); //8bit数据传送,2行显示,5*7字型,检测忙信号
WriteCommandLCD(0x08,1); //关闭显示,检测忙信号
WriteCommandLCD(0x01,1); //清屏,检测忙信号
LCD_RS=0; //选中指令寄存器
LCD_RW=0;//写模式
LCD_EN=1;
_nop_();
_nop_();
_nop_();
LCD_EN=0;
}
/**********写数据到LCD子函数************/
void WriteDataLCD(unsigned char WDLCD)
{
lcd_wait( ); //检测忙信号
else YEJINGXIANSHIYIGEZIFU(9,1,0+'0');
if (ch2 == 1)YEJINGXIANSHIYIGEZIFU(10,1,1+'0');
else YEJINGXIANSHIYIGEZIFU(10,1,0+'0');
if (ch3 == 1)YEJINGXIANSHIYIGEZIFU(11,1,1+'0');
sbit key_2 = P2^1;
sbit key_3 = P2^2;
sbit key_4 = P2^3;
sbit key_5 = P2^4;
sbit key_6 = P3^5; //有问题
sbit FASONG_send = P3^7; //低电平发送
#define FASONG_Port P1
while(delay--)
delayus(149);
}
/**********写指令到LCD子函数************/
void WriteCommandLCD(unsigned char WCLCD,unsigned char BusyC)
{
if(BusyC)lcd_wait();
DATAPORT=WCLCD;
#include "reg51.h"
#include <intrins.h>
//sbit ch1 = P1^0;
//sbit ch2 = P1^1;
//sbit ch3 = P1^2;
//sbit ch4 = P1^3;
sbit JIESHOU = P3^2;
unsigned char recive = 0;
void YEJINGXIANSHIYICHUANZHIFU(unsigned char X,unsigned char Y,unsigned char code *DData)
{
unsigned char ListLength=0;
Y&=0x01;
X&=0x0f;
while(DData[ListLength] != '\0')
}
if (key_3 == 0)
{
YANSHIYIHAOMIAO(10);
if (key_3== 0)
{
FASONG( 3);//发送:2
XIANSHIYICHUANZHIFU(8,1,"003");
}
while (key_3 == 0);
}
if (key_4 == 0)
{
YANSHIYIHAOMIAO(10);
WriteCommandLCD(0x06,1); //显示光标右移设置,检测忙信号
WriteCommandLCD(0x0c,1); //显示屏打开,光标不显示,不闪烁,检测忙信号
}
/****************显示指定坐标的一个字符子函数*************/
void YEJINGXIANSHIYIGEZIFU(unsigned char X,unsigned char Y,unsigned char DData)
LCD_EN=1;
LCD_RS=0;
LCD_RW=1;
_nop_();
while(DATAPORT&BUSY)
{ LCD_EN=0;
_nop_();
_nop_();
LCD_EN=1;
_nop_();
_nop_();
}
LCD_EN=0;
}
/**********LCD初始化子函数***********/
}
while (key_1 == 0); //等待按键松手
}
if (key_2 == 0)
{
YANSHIYIHAOMIAO(10);
if (key_2 == 0)
{
FASONG( 2);//发送:10
XIANSHIYICHUANZHIFU(8,1,"002");
}
while (key_2 == 0);
void YEJINGCHUSHIHUA( )
{
DATAPORT=0;
YEJINGYANSHI(15);
WriteCommandLCD(0x38,0); //三次显示模式设置,不检测忙信号
YEJINGYANSHI(5);
WriteCommandLCD(0x38,0);
YEJINGYANSHI(5);
{
Y&=1;
X&=15;
if(Y)X|=0x40; //若y为1(显示第二行),地址码+0X40
X|=0x80; //指令码为地址码+0X80
WriteCommandLCD(X,0);
WriteDataLCD(DData);
}
/***********显示指定坐标的一串字符子函数***********/
{
YEJINGXIANSHIYIGEZIFU(X,Y,DData[ListLength]);
ListLength++;
X++;
}
}
/**************************主函数********************************************/
void main()
{
unsigned int temp = 0;
//CLK_DIV = 0X03; //单片机分频降低单片机工作速度
YEJINGYANSHI(50);//延时500ms启动
YEJINGCHUSHIHUA(); //LCD初始化
YEJINGXIANSHIYICHUANZHIFU(0,0," Graduate");//显示
void lcd_wait(void);//LCD检测忙子程序
void WriteCommandLCD(unsigned char WCLCD,unsigned char BusyC); //写指令到ICM子函数
void WriteDataLCD(unsigned char WDLCD); //写数据到LCD子函数
}
while (key_5 == 0);
}
if (key_6 == 0)
{
YANSHIYIHAOMIAO(10);
if (key_6 == 0)
{
FASONG( 6);
XIANSHIYICHUANZHIFU(8,1,"006");}
while (key_6 == 0);
}
}
}
接收:
//#include "12C5A60S2.h"
FASONG_send = 1; //关闭发送
}
/**************************主函数********************************************/
void main()
{
unsigned int i = 0;
//CLK_DIV = 0x03;
FASONG_send = 1; //开机时关闭发送数据
if (key_4 == 0)
{
FASONG( 4);;
XIANSHIYICHUANZHIFU(8,1,"004");
}
while (key_4 == 0);
}
if (key_5 == 0)
{
YANSHIYIHAOMIAO(10);
if (key_5 == 0)
{
FASONG( 5);
XIANSHIYICHUANZHIFU(8,1,"005");
void YEJINGXIANSHIYIGEZIFU(unsigned char X,unsigned char Y,unsigned char DData); //显示指定坐标的一个字符子函数
void YEJINGXIANSHIYICHUANZHIFU(unsigned char X,unsigned char Y,unsigned char code *DData); //显示指定坐标的一串字符子函数
while(1)
{
P1 = 0xff;
if (P1 != 0xff)
{
recive_temp = P1;
recive_temp &= 0x07;
YEJINGXIANSHIYIGEZIFU(9,1,recive_temp+'0');
}
/*if (ch1 == 1)YEJINGXIANSHIYIGEZIFU(9,1,1+'0');