資源簡(jiǎn)介
基于51單片機(jī)和lm371的發(fā)射機(jī)程序,功能基本齊全,調(diào)試通過!

代碼片段和文件信息
#include
#include?
#define?uchar?unsigned?char?
#define?uint?unsigned?int
sbit?radio_clk?=?P3^0;//串行通信時(shí)要使用的同步時(shí)鐘
sbit?radio_di?=?P3^1;//串行數(shù)據(jù)輸入。單片機(jī)--》PLL
sbit?radio_ce?=P3^2;//片選信號(hào)
uchar?bdata?fl=0fh=0col=0;
sbit?sns=col^0;//
sbit?dvs=col^1;
sbit?cte=col^2;//測(cè)量中頻開始或結(jié)束?1:開始????2:結(jié)束復(fù)位
sbit?xs=col^3;//晶振設(shè)置????1:7.2M????0:?4.5M
sbit?r0=col^4;//參考頻率設(shè)置??
sbit?r1=col^5;
sbit?r2=col^6;
sbit?r3=col^7;?
#define Lcd_Data P0
#define?Busy?0x80?//用于檢測(cè)Lcd中的忙標(biāo)識(shí)
sbit Lcd_RS=P2^7;
sbit Lcd_RW=P2^6;
sbit Lcd_E=P2^5;
sbit?????key1=P1^0; //頻率按鍵加定義
sbit?????key2=P1^1; //頻率按鍵減定義
sbit?????key3=P1^2;?//頻段選擇按鍵
uint?wqbsgmnnum1num2=0l=0j=0;
uint??Cfreq=9800; //初開機(jī)顯示的頻率?
#define?RdCommand?0x01?//定義ISP操作
#define?PrgCommand?0x02?
#define?EraseCommand?0x03?
#define?WaitTime?0x01?//定義CPU等待時(shí)間
sfr?ISP_DATA=0xe2;?//寄存器聲明
sfr?ISP_ADDRH=0xe3;?
sfr?ISP_ADDRL=0xe4;?
sfr?ISP_CMD=0xe5;?
sfr?ISP_TRIG=0xe6;?
sfr?ISP_CONTR=0xe7;
//**************各函數(shù)聲明**************//
void Lcd_WriteData(uchar TempData);//各函數(shù)聲明
void Lcd_WriteCmd(uchar TempData?uchar BuysC);
uchar?ReadDataLcd(void);
uchar?ReadStatusLcd(void)?;
void?Lcd_DisplayOneChar(uchar?X?uchar?Y?uchar?DData);
void?Lcd_DisplayString(uchar?X?uchar?Yuchar??*DData);
void?Lcd_Init(void);?//LCD初始化;
void?fredisplay();//?頻率顯示函數(shù)
void?keyscan(); // 鍵盤掃描函數(shù)
void?soucrescan();//??信號(hào)源掃描函數(shù)
void?tx_dat(uchar?i);// ?lc72131傳遞8個(gè)字節(jié)函數(shù)
void?rd_cmd();//?向lc72131傳送數(shù)據(jù)函數(shù)
void?Read_Epprom();?//?開機(jī)讀各保存數(shù)據(jù)
uchar?byte_read(uint?byte_addr);//?讀數(shù)據(jù)函數(shù)
void?SectorErase(uint?sector_addr);//?擦數(shù)據(jù)函數(shù)
void?byte_write(uint?byte_addr?uchar?original_data)?;// ?寫字節(jié)函數(shù)
void Delay(uint Delay_Time)
{
while(Delay_Time--);
}
void?main()
{
????uint?kz=0;
TMOD=0x01;?//?設(shè)置定時(shí)器0工作方式1
????TH0=(65536-55000)/256;//?定時(shí)器賦初值?????
????TL0=(65536-55000)%256;?
????EA=1;//開中斷?
????ET0=1;?
????TR0=1;?
????Lcd_Init(); //lcd初始化
????Lcd_DisplayString(30“WelcomeUse“);
Lcd_DisplayString(41“AG-FM2008“);//開機(jī)顯示內(nèi)容
Delay(500000); Delay(500000);
Delay(500000); Delay(500000);
Delay(500000);??Delay(500000);
Delay(500000); Delay(500000);
Delay(500000); Delay(500000);?
Lcd_WriteCmd(0x011);?//開機(jī)短暫顯示后清屏
????Delay(5000000); Delay(500000);
Read_Epprom();//開機(jī)讀各數(shù)據(jù)
while(1)
???{
??????fredisplay();
??keyscan();//按鍵掃描
??soucrescan();//信號(hào)源掃描
??????Lcd_DisplayString(00“AHGD“);
??Lcd_DisplayString(01“FM:“);
??Lcd_DisplayString(80“DS:“);
??Lcd_DisplayString(91“MHz“);
??rd_cmd();
??if(num2>=1)//定時(shí)時(shí)間到后進(jìn)行數(shù)據(jù)的保存
????{
???for(k=0;k<7;k++)?
???????{?
?????????SectorErase(0x2000+z); ?//保存數(shù)據(jù)先擦除扇區(qū)內(nèi)容
????????z=z+2;
}
??byte_write(0x2000?w);??//存數(shù)據(jù)萬位
??byte_write(0x2002?q);
??byte_write(0x2004?b);
??byte_write(0x2006?s);
??byte_write(0x2008?g);
??byte_write(0x2010?l);??//存信號(hào)源標(biāo)志位
??//byte_write(0x2012?j);??//存頻段標(biāo)志位?
??????
????? }
??????}??
}
void?soucrescan()
{
???????P3=P3&00001111;
??if(P3^5=
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????9961??2002-01-01?08:36??8.1.c
-----------?---------??----------?-----??----
?????????????????9961????????????????????1
- 上一篇:倒頻譜程序
- 下一篇:VC控制Excel的示范源碼--不錯(cuò)的選擇
評(píng)論
共有 條評(píng)論