久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3451|回復: 3
收起左側

FM收音機+12864+TEA5767的單片機程序

[復制鏈接]
ID:202568 發(fā)表于 2018-12-6 11:01 | 顯示全部樓層 |閱讀模式
12864顯示,fm收音模塊文件!

單片機源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>




  3. #define uchar unsigned char
  4. #define uint unsigned int

  5. #define max_freq 1080                           //最高頻率
  6. #define min_freq 875                           //最低頻率

  7. uchar data fm_w[5]={0x00,0x00,0x31,0x17,0x00};//這是要寫入的數據
  8. uchar data fm_r[5]={0,0,0,0,0};               //這是放讀出的數據


  9. //位定義說明:u:=1向上自動搜臺反之。。。

  10. bit SM,SUD,RF,SystemError,u,SD,HISI=1,mode;

  11. uchar IF,ADC,STEREO,ADC1;
  12. uint fm,PLL,freq1;
  13. uint frequency=1049;

  14. //#include"FM_PLL.h"//這里包涵的是FM收音的PLL值

  15. sbit down =P1^1;  //頻道下
  16. sbit up          =P1^2;  //頻道上

  17. sbit menu =P1^0;
  18. sbit k3          =P1^1;
  19. sbit k4          =P1^2;

  20. sbit ok          =P1^3;



  21. sbit SDA=P2^6;
  22. sbit SCL=P2^7;

  23. sbit SDA1=P2^0;
  24. sbit SCL1=P2^1;

  25. uchar menu_bit=0;                //申請一下菜單的變量
  26. uchar ch=1;                                //申請一個頻道號碼變量
  27. uchar ch_max;                        //申請一個最大臺號保存變量

  28. delayms(uint ms)
  29. {
  30.         uint i,j;
  31.         for(i=0;i<ms;i++)
  32.         for(j=0;j<123;j++);
  33. }



  34. void display();
  35. void key_search();
  36. void fm_xing();
  37. void search();
  38. void auto_search();
  39. void get_pll(void);
  40. void get_freq(void);



  41. void delay() //10ms定時器,晶振6M時
  42.   {  
  43.    TMOD=0x01;
  44.    TH0=0xEC;  //
  45.    TL0=0x78;
  46.    TR0=1;
  47.    do{}while(!TF0);
  48.    TF0=0;
  49.   }


  50. #include <LCD1602.h>           //包含的頭文件
  51. #include"IIC.h"
  52. #include"IAP.h"
  53. #include"display.h"



  54. //由頻率計算PLL
  55. void get_pll(void)
  56. {
  57.         unsigned long y=frequency;
  58.         PLL=((y*100+225)/8.192);
  59. }

  60. void get_freq(void)          //由PLL計算頻率
  61. {
  62.         unsigned long y;
  63.         y=PLL;
  64.         freq1=(y*8192-225000)/100000+1;
  65. }


  66. void fm_xing()                                //FM收音芯片數據刷新一次
  67. {
  68.         write_5byte();                        //送入到5767里面
  69.         delayms(50);                        //送進PLL值后,要等50ms再去讀TEA5767里面的數據
  70.         read_5byte();                        //讀TEA5767的5個字節(jié)數據
  71. }

  72. //手動設置頻率,mode=1,+0.1MHz; mode=0:-0.1MHz ,
  73. //不用考慮TEA5767用于搜臺的相關位:SM,SUD


  74. void search()
  75. {
  76. //給頻率+/-1,
  77.       
  78.     if(mode)
  79.     {
  80.         frequency+=1;
  81.         if(frequency>max_freq)
  82.             frequency=min_freq;
  83.     }
  84.     else
  85.     {
  86.         frequency-=1;
  87.         if(frequency<min_freq)
  88.             frequency=max_freq;
  89.     }      
  90.         fm_xing();
  91.         key_display();                        //調用顯示程序
  92. }

  93. //自動搜臺,mode=1,頻率增加搜臺; mode=0:頻率減小搜臺
  94. void auto_search()
  95. {
  96.    do  
  97.    {

  98.     if(mode)
  99.         fm_w[2]=0xa0;                //增加頻率搜索
  100.     else
  101.         fm_w[2]=0x20;                //減少頻率搜索

  102.     search();                        //頻率調整,+或-

  103.         fm_xing();

  104.         }

  105.         while((IF>0x3e)|(IF<0x31)|(ADC<5)|(!STEREO)|(!RF));     //搜臺成功標志
  106. }

  107. /**********************************************************/

  108. void FM_init()
  109. {
  110.         uchar a1,a2;


  111.          ch=Byte_Read(0x401);          //讀出上次播放時的臺號
  112.          ch_max=Byte_Read(0x201); //讀出保存的最高臺號
  113.        
  114.        

  115.        
  116.         a1=Byte_Read(ch*3-1);
  117.     display();
  118.     a2=Byte_Read(ch*3);
  119.     display();


  120.        
  121.         PLL=a1*256+a2;                                        //
  122.        
  123.         get_freq();                                                //由PLL計算頻率
  124.         frequency=freq1;

  125.         iicInit();
  126.         delayms(300);//等待電源穩(wěn)定后再發(fā)數據
  127.        
  128.         if(frequency>max_freq,frequency<min_freq)
  129.         {
  130.                 frequency=min_freq;                                //防止出錯
  131.         }
  132.        
  133.         fm_xing();                //給PLL寫入TEA5767中,并讀出其中的狀態(tài)
  134.         display();                //調用顯示程序
  135. }


  136. /**********************************************************/
  137. void main(void)
  138. {

  139.         init_12864();                // 初始化LCD
  140.         delayms(10);
  141.         write_code(0x0c);            //向右移動光標

  142.         write_code(0x91);
  143.         write_hz("FM載入中...");
  144.                                            //開機畫面
  145.         delayms(500);                                //延時
  146.         write_code(0x01);                                //清屏
  147. ……………………

  148. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
FM收音機 12864 TEA5767.rar (8.33 KB, 下載次數: 87)


回復

使用道具 舉報

ID:1 發(fā)表于 2018-12-6 16:44 | 顯示全部樓層
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

ID:539878 發(fā)表于 2019-5-16 16:28 | 顯示全部樓層
這個程序有問題!用不了
回復

使用道具 舉報

ID:264021 發(fā)表于 2024-11-3 23:02 | 顯示全部樓層
,程序不全
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产成人精品女人久久久野战 | 九九伦理片 | 午夜国产| 久久久久久综合 | www.久草.com | 国产一区二区三区四区 | www.99精品| 1级毛片 | 精品二区| 国产免国产免费 | 天天天久久久 | 国产在线资源 | 国产激情第一页 | 国产精品久久久久9999鸭 | 欧美精品在线视频 | 精品日韩一区二区三区av动图 | 四虎影院欧美 | 午夜免费观看 | 欧美韩一区二区三区 | 欧美区日韩区 | 永久精品 | 国产精品久久九九 | 久久久久国产一区二区三区 | 国产精品久久久久久久 | 欧美综合一区二区 | 日韩在线免费视频 | 欧州一区二区三区 | 久久精品美女 | 91久久国产综合久久91精品网站 | 亚洲乱码国产乱码精品精的特点 | 成人性生交大片免费看中文带字幕 | 黄a网| 国产精品99久久久久久动医院 | 在线中文字幕第一页 | 欧亚av在线| 精品1区2区 | 亚洲天堂av网 | 日本在线一区二区三区 | 亚洲每日更新 | 中国黄色在线视频 | 中文字幕1区 |