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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3431|回復: 3
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主
ID:202568 發表于 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個字節數據
  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);//等待電源穩定后再發數據
  127.        
  128.         if(frequency>max_freq,frequency<min_freq)
  129.         {
  130.                 frequency=min_freq;                                //防止出錯
  131.         }
  132.        
  133.         fm_xing();                //給PLL寫入TEA5767中,并讀出其中的狀態
  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)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2018-12-6 16:44 | 只看該作者
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

板凳
ID:539878 發表于 2019-5-16 16:28 | 只看該作者
這個程序有問題!用不了
回復

使用道具 舉報

地板
ID:264021 發表于 2024-11-3 23:02 | 只看該作者
,程序不全
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美黑人一级爽快片淫片高清 | 亚洲成人精品免费 | 一级毛片色一级 | 一呦二呦三呦国产精品 | 久久er精品| 国产综合在线视频 | 青草青草久热精品视频在线观看 | 美女爽到呻吟久久久久 | 精品国产一区一区二区三亚瑟 | 国产精品国产a级 | 99亚洲精品 | 午夜激情在线视频 | 欧洲一区二区视频 | 欧美一区二区二区 | 久久久av | 免费高潮视频95在线观看网站 | 欧美日韩一区二区视频在线观看 | 黄色在线网站 | 国产精品国产三级国产aⅴ无密码 | 日本久久网站 | 日韩精品在线观看一区二区三区 | 色就干 | 国产精品久久久爽爽爽麻豆色哟哟 | 日本不卡一区 | 日本精品视频一区二区 | 色综合99| www.青娱乐| 久久伊人精品 | 亚洲日本一区二区三区四区 | 国产一级一级毛片 | 欧美精品综合在线 | 91国产视频在线 | 一区二区三区视频免费看 | 国产精品久久久久久模特 | 一级黄色短片 | 亚洲国产成人精品久久久国产成人一区 | 自拍偷拍精品 | 99热这里 | 在线一区二区三区 | 国产男女猛烈无遮掩视频免费网站 | www.久|