音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網
技術交流 | 電路欣賞 | 工控天地 | 數字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng)
驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產業(yè) | CAN-bus/DeviceNe

請別見笑,這是我的第一個PICC程序

作者:zhouyh 欄目:單片機
請別見笑,這是我的第一個PICC程序
在大家的幫助下寫了個ADC程序,用MC14489實現(xiàn)4個LED顯示,可測0-5V,請大家多提意見呀!
//20050606-20050617 TEST adc MC14489 DISPLAY the result 0-5v(0-ff)R     F73-RA0
//by zhouyh
#include        <pic.h>
unsigned CHAR   digit[4];              //4 digit leds buffer bank0(digit[0]) DISPLAY the most high bit of voltage data
unsigned CHAR    data;
unsigned LONG   result;                //如果只顯示4位可以取INT
unsigned int    i;

//spi子程序,顯示4位數
void      SPILED(data)
{
    SSPBUF=data;                          //傳送啟動
    do    {
              ;
        }while(SSPIF==0);
    SSPIF=0;
}


//延時程序
void    delay()

{
    for(i = 4000; --i ;)    continue;
}    


//disply routines
void        DISPLAY()
{

    RA5=0;                            //14489 enable
    data=0x01;                      //控制字
    SPILED(data);
    RA5=1;
    delay();

    RA5=0;
    data=0x90;                       //bank1小數點和bank5的值0000 1101(10110000的顛倒)
    SPILED(data);
    data=digit[3]|digit[2]<<4;       //for example want to DISPLAY 12 sending out 0x12 but DISPLAY 21
    SPILED(data);
    data=digit[0]|digit[1]<<4;  
    SPILED(data);
    RA5=1;
}
    
void        initial()
{

    PIR1=0;
    SSPCON=0x30;
    SSPSTAT=0xC0;
    ADCON1=4;                          //PORTA FOR DIGITAL I/O
    TRISC5=0;                          //sdo            
    TRISC3=0;                          //clk
      TRISA5=0;                          //RA引腳置為輸出
    RA5=1;
                       
     }


// ADC程序
unsigned CHAR read_a2d(void){
unsigned CHAR i;
    ADCON0=0;                           //SELECT Fosc/2
    ADON=1;                               // turn on the A2D conversion
    i=0x20;
       while(i--);                     //等待一段時間(A/D采樣)
    ADGO=1;    // initiate conversion on the SELECTed channel
    while(ADGO)continue;
    return(ADRES);    
}

//主程序
void   main()
{    
    initial();
    
while(1){
    result=read_a2d();
    result=result*5000/255;          
    digit[0] = result / 1000;          //   led1 from left to right          
    result= result - digit[0]*1000;         
    digit[1] = result / 100;           //   led2 from left to right   
    result= result - digit[1]*100;
    digit[2] = result / 10;            //   led3 from left to right  
    result= result - digit[2]*10;
    digit[3] = result ;
                                       //   led4 from left to right
    DISPLAY();
        }
}


* - 本貼最后修改時間:2005-6-21 18:01:55 修改者:zhouyh

參與討論
昵稱:
討論內容:
 
 
相關帖子
用12C508實現(xiàn)調光的程序!請教!
介紹幾本PIC的書給小弟,謝了
請問PIC 的MCU可以加密嗎?
AD轉換問題
請教有關數碼管驅動級聯(lián)問題!謝謝!
免費注冊為維庫電子開發(fā)網會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號