欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
FM收音機+12864+TEA5767的單片機程序
[打印本頁]
作者:
kwokkevin
時間:
2018-12-6 11:01
標題:
FM收音機+12864+TEA5767的單片機程序
12864顯示,fm收音模塊文件!
單片機源程序如下:
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define max_freq 1080 //最高頻率
#define min_freq 875 //最低頻率
uchar data fm_w[5]={0x00,0x00,0x31,0x17,0x00};//這是要寫入的數據
uchar data fm_r[5]={0,0,0,0,0}; //這是放讀出的數據
//位定義說明:u:=1向上自動搜臺反之。。。
bit SM,SUD,RF,SystemError,u,SD,HISI=1,mode;
uchar IF,ADC,STEREO,ADC1;
uint fm,PLL,freq1;
uint frequency=1049;
//#include"FM_PLL.h"//這里包涵的是FM收音的PLL值
sbit down =P1^1; //頻道下
sbit up =P1^2; //頻道上
sbit menu =P1^0;
sbit k3 =P1^1;
sbit k4 =P1^2;
sbit ok =P1^3;
sbit SDA=P2^6;
sbit SCL=P2^7;
sbit SDA1=P2^0;
sbit SCL1=P2^1;
uchar menu_bit=0; //申請一下菜單的變量
uchar ch=1; //申請一個頻道號碼變量
uchar ch_max; //申請一個最大臺號保存變量
delayms(uint ms)
{
uint i,j;
for(i=0;i<ms;i++)
for(j=0;j<123;j++);
}
void display();
void key_search();
void fm_xing();
void search();
void auto_search();
void get_pll(void);
void get_freq(void);
void delay() //10ms定時器,晶振6M時
{
TMOD=0x01;
TH0=0xEC; //
TL0=0x78;
TR0=1;
do{}while(!TF0);
TF0=0;
}
#include <LCD1602.h> //包含的頭文件
#include"IIC.h"
#include"IAP.h"
#include"display.h"
//由頻率計算PLL
void get_pll(void)
{
unsigned long y=frequency;
PLL=((y*100+225)/8.192);
}
void get_freq(void) //由PLL計算頻率
{
unsigned long y;
y=PLL;
freq1=(y*8192-225000)/100000+1;
}
void fm_xing() //FM收音芯片數據刷新一次
{
write_5byte(); //送入到5767里面
delayms(50); //送進PLL值后,要等50ms再去讀TEA5767里面的數據
read_5byte(); //讀TEA5767的5個字節數據
}
//手動設置頻率,mode=1,+0.1MHz; mode=0:-0.1MHz ,
//不用考慮TEA5767用于搜臺的相關位:SM,SUD
void search()
{
//給頻率+/-1,
if(mode)
{
frequency+=1;
if(frequency>max_freq)
frequency=min_freq;
}
else
{
frequency-=1;
if(frequency<min_freq)
frequency=max_freq;
}
fm_xing();
key_display(); //調用顯示程序
}
//自動搜臺,mode=1,頻率增加搜臺; mode=0:頻率減小搜臺
void auto_search()
{
do
{
if(mode)
fm_w[2]=0xa0; //增加頻率搜索
else
fm_w[2]=0x20; //減少頻率搜索
search(); //頻率調整,+或-
fm_xing();
}
while((IF>0x3e)|(IF<0x31)|(ADC<5)|(!STEREO)|(!RF)); //搜臺成功標志
}
/**********************************************************/
void FM_init()
{
uchar a1,a2;
ch=Byte_Read(0x401); //讀出上次播放時的臺號
ch_max=Byte_Read(0x201); //讀出保存的最高臺號
a1=Byte_Read(ch*3-1);
display();
a2=Byte_Read(ch*3);
display();
PLL=a1*256+a2; //
get_freq(); //由PLL計算頻率
frequency=freq1;
iicInit();
delayms(300);//等待電源穩定后再發數據
if(frequency>max_freq,frequency<min_freq)
{
frequency=min_freq; //防止出錯
}
fm_xing(); //給PLL寫入TEA5767中,并讀出其中的狀態
display(); //調用顯示程序
}
/**********************************************************/
void main(void)
{
init_12864(); // 初始化LCD
delayms(10);
write_code(0x0c); //向右移動光標
write_code(0x91);
write_hz("FM載入中...");
//開機畫面
delayms(500); //延時
write_code(0x01); //清屏
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
FM收音機 12864 TEA5767.rar
(8.33 KB, 下載次數: 87)
2018-12-6 11:00 上傳
點擊文件名下載附件
作者:
admin
時間:
2018-12-6 16:44
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
作者:
沒有什么的
時間:
2019-5-16 16:28
這個程序有問題!用不了
作者:
單片機學習習
時間:
2024-11-3 23:02
,程序不全
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1