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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關于FM發射電臺QN8027不工作的問題

  [復制鏈接]
跳轉到指定樓層
樓主
本帖最后由 simuel 于 2017-5-8 16:04 編輯

最近想做個FM電臺,找到了QN8027,把圖畫好了,PCB也做好了,然后程序寫進去發現輸出沒信號,檢測晶振也不工作。
電路圖:

程序:
我用的IIC通信速率是200khz左右,我在PCF8591,PCF8563,24c02等芯片上都用過,都用了好幾年了,除了更換單片機后速率問題,修改過之后沒出過問題。
哪位大俠幫我瞧瞧,問題出在了哪里?
#include <STC15F2K60S2.H>
/************************************/
/*          QN8027                 */
/************************************/
        sbit SDA=P3^3;
        sbit SCL=P3^2;

/************************************/
/*          KEY                     */
/************************************/
        sbit key_set=P3^1;         
        sbit key_fun=P3^0;


void main ()
{
        P3M0 = 0XFF;                   //P3口推挽
        P3M1 = 0;
        delay1ms(1000);                //延時1s,使其他IC上電穩定
        init_QN8027();                        //初始化QN8027
        while (1);        
        {


        }
}

void delay1ms(uint z)                //@12.000MHz
{
        unsigned char i, j;
        while(--z)
        {
                i = 12;
                j = 169;
                do
                {
                        while (--j);
                } while (--i);
        }
}

void init_QN8027()
{
        writebyte(0x00, 0x81);        //將QN8027所有寄存器復位到缺省值
        delay1ms (20);
        writebyte(0x03, 0X0+0x3F);//設置QN8027時鐘信號,0x10為晶振,0x50外部正弦波時鐘輸入(與硬件設計相關)  [5-0]晶振電流
        writebyte(0x04, 0x08);        //晶振頻率選擇 12Mhz,信號衰減
        writebyte(0x00, 0x41);        //QN8027有限狀態機校驗
        writebyte(0x10, 0x7f);        // max power
        writebyte(0x00, 0x01);        ////QN8027有限狀態機校驗freq  high 2 bit
        delay1ms (20);
        writebyte(0x01, 0x0);        // freq, about 107MHz
        writebyte(0x02, 0x39);        //關閉PA功能當沒有音頻信號輸入時的時間
        writebyte(0x00, 0x22);        //發射信號

        delay1ms (20);

}


#define IIC_WRITER 0X58   //QN8027xie地址
#define IIC_READ 0X59     //QN8027讀地址

//uchar IIC_READ,IIC_WRITER;
//#define _Nop() _nop_();_nop_();_nop_();_nop_();_nop_()    //FOCS=12MHZ,Fcsl=480KHZ ,T=900ns
//FOCS=12MHZ,Fcsl=180KHZ,T=2us
void _Nop()                //@12.000MHz 延時2us,讀寫速度200khz
{
        unsigned char i;

        _nop_();
        _nop_();
        i = 3;
        while (--i);
}


//===============================
//define a bit_operation byte to use in shift operation
//use this mode can achieve high operation speed
unsigned char bdata bbyte;
sbit a0=bbyte^0;
sbit a1=bbyte^1;
sbit a2=bbyte^2;
sbit a3=bbyte^3;
sbit a4=bbyte^4;
sbit a5=bbyte^5;
sbit a6=bbyte^6;
sbit a7=bbyte^7;
//========================================
bit IFACK;//record the SDA state to confirn if ACK has happened
//bit NO_ACK;//no ack flag
//bit BUS_FAULT;        //bus fault flag
//bit IIC_BUSY;        //bus is busy flay
//========================================
//FUNCTION:ROUTES TO PROVIDE A START SIGNAL
void start(void)
{

        SCL=0;_Nop();SDA=1;_Nop();SCL=1;_Nop();SDA=0;_Nop();SCL=0;_Nop();
}
//=======================================
//FUNCTION:ROUTES TO PROVIDE A STOP SIGNAL
void stop(void)
{  
//        SCL=0;_nop_();SDA=0;_nop_();SCL=1;_nop_();SDA=1;_nop_();SCL=0;_nop_();
        SCL=0;_Nop();SDA=0;_Nop();SCL=1;_Nop();SDA=1;_Nop();SCL=0;_Nop();
}

//FUNCTION:ROUTES TO RELEASE THE SDA TO RECEIVE A ACK SIGNAL
//OR TO PROVIDE A NO_ACK SIGNAL
bit  nack(void)
{
        SCL=0;_nop_();SDA=1;_nop_();SCL=1;_nop_();IFACK=SDA;_nop_();SCL=0;_nop_(); return IFACK;
}
//=======================================================
//FUNCTION:THE IIC DEVICE SHIFT OUT A BYTE  TO THE MASTER
unsigned char  inbyte(void)
{        
        SDA=1;
        SCL=1;_Nop();a7=SDA;SCL=0;_Nop();
        SCL=1;_Nop();a6=SDA;SCL=0;_Nop();
        SCL=1;_Nop();a5=SDA;SCL=0;_Nop();        
        SCL=1;_Nop();a4=SDA;SCL=0;_Nop();        
        SCL=1;_Nop();a3=SDA;SCL=0;_Nop();        
        SCL=1;_Nop();a2=SDA;SCL=0;_Nop();        
        SCL=1;_Nop();a1=SDA;SCL=0;_Nop();        
        SCL=1;_Nop();a0=SDA;SCL=0;_Nop();        
        return(bbyte);
}
//=======================================================
//FUNCTION:THE IIC DEVICE SHIFT IN A BYTE FROM THE MASTER
void outbyte(unsigned char outdata)
{        
        bbyte=outdata;
        SDA=a7;_Nop();SCL=1;_Nop();SCL=0;_Nop();        
        SDA=a6;_Nop();SCL=1;_Nop();SCL=0;_Nop();        
        SDA=a5;_Nop();SCL=1;_Nop();SCL=0;_Nop();        
        SDA=a4;_Nop();SCL=1;_Nop();SCL=0;_Nop();        
        SDA=a3;_Nop();SCL=1;_Nop();SCL=0;_Nop();        
        SDA=a2;_Nop();SCL=1;_Nop();SCL=0;_Nop();        
        SDA=a1;_Nop();SCL=1;_Nop();SCL=0;_Nop();        
        SDA=a0;_Nop();SCL=1;_Nop();SCL=0;_Nop();
        nack();

}
//======================================================
//FUNCTION:BYTE WRITE.
//                       'add'     THE WRITE ADDRESS,
//               'wbyte'   THE DATA WANT TO WRITE
void writebyte(unsigned char add,unsigned char wbyte)
{        
        start();        
        outbyte(IIC_WRITER);        
        nack();        
        outbyte(add);        
        nack();        
        outbyte(wbyte);
        nack();        
        stop();
}
        //=====================================================
//FUNCTION:RANDOM READ.'add' IS THE ADDRESS WANT TO READ
unsigned char readbyte (unsigned char add)
{        
        unsigned char temp;        
        start();        
        outbyte(IIC_WRITER);        
        nack();        
        outbyte(add);        
        nack();        
        start();        
        outbyte(IIC_READ);        
        nack();        
        temp=inbyte();        
        nack();        
        stop();        
        return(temp);
}

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

使用道具 舉報

沙發
ID:198738 發表于 2017-5-9 17:53 | 只看該作者
我記得stc的頭文件不是這個名字吧
回復

使用道具 舉報

板凳
ID:193350 發表于 2017-5-12 22:55 | 只看該作者
我是栗子 發表于 2017-5-9 17:53
我記得stc的頭文件不是這個名字吧

#include <STC15F2K60S2.H>  這個是stc這兩年新出的單片機,在最新出的stc8A系列之前的單片機功能是最強的。
回復

使用道具 舉報

地板
ID:151348 發表于 2017-5-13 08:42 | 只看該作者
用這個單片機加你給的ICC程序,能讀寫PCF8591這些芯片嗎
回復

使用道具 舉報

5#
ID:162242 發表于 2017-5-13 11:26 | 只看該作者
不知道什么原因
回復

使用道具 舉報

6#
ID:193350 發表于 2017-5-17 21:15 | 只看該作者
imxuheng 發表于 2017-5-13 08:42
用這個單片機加你給的ICC程序,能讀寫PCF8591這些芯片嗎

讀寫PCF8591,PCF8563,都沒問題,這段IIC,我用過操作過很多芯片。
回復

使用道具 舉報

7#
ID:79034 發表于 2017-5-23 19:04 | 只看該作者
請問樓主,問題解決了嗎?
回復

使用道具 舉報

8#
ID:501378 發表于 2019-4-14 18:34 | 只看該作者
上述程序中存在一個嚴重的錯誤,就是P3口設置成推挽,因為SDA即是輸入也是輸出,向QN8027寫數據時推挽沒有問題,但在從QN8027讀取數據時就讀不到,甚至可能損壞單片機或QN8027
回復

使用道具 舉報

9#
ID:501378 發表于 2019-4-14 18:38 | 只看該作者
時間比較長了,估計這個問題已經解決了,不過還是要說明一下,以免給讀者以誤導。
回復

使用道具 舉報

10#
ID:193350 發表于 2022-8-8 18:19 | 只看該作者
各位,不好意思,我調了幾天就沒調了,后面沒用這個IC了。謝謝各位了
回復

使用道具 舉報

11#
ID:193350 發表于 2022-8-8 18:19 | 只看該作者
wqzwqz 發表于 2019-4-14 18:38
時間比較長了,估計這個問題已經解決了,不過還是要說明一下,以免給讀者以誤導。

各位,不好意思,我調了幾天就沒調了,后面沒用這個IC了。謝謝各位了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品三级 | 三a毛片 | 亚洲久草| 国产综合久久久久久鬼色 | 久久久网 | 久久久久久久久久一区 | 亚洲欧美视频在线观看 | chengrenzaixian | 黄色一级免费 | 国产精品美女久久久久久免费 | 亚洲一区在线播放 | 在线色网址| 国产在线精品一区二区三区 | 国产精品欧美一区二区 | 麻豆视频国产在线观看 | 国产精品视频免费观看 | 中文无吗| 一级做a爰片性色毛片16 | 亚洲午夜精品一区二区三区 | 中文字幕一页二页 | 中文字幕电影在线观看 | 亚洲一区二区三区免费在线观看 | 欧美操操操 | 黄色片免费在线观看 | 亚洲国产精品久久久久 | 久久久久国产一区二区三区 | 日韩精品一区二 | 99精品欧美一区二区三区 | 少妇av片| 奇米影视在线 | 91美女在线 | 日韩综合| 毛片站 | 欧美激情va永久在线播放 | 国产欧美在线观看 | 天天久久 | 久久综合狠狠综合久久综合88 | 成人精品视频99在线观看免费 | 亚洲精彩免费视频 | 欧美日韩手机在线观看 | 国产免费xxx |