資源簡介
基于51單片機和lm371的發射機程序,功能基本齊全,調試通過!

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