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

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

數(shù)控步進(jìn)直流穩(wěn)壓電源(C版本)

作者:njliu 欄目:單片機(jī)
數(shù)控步進(jìn)直流穩(wěn)壓電源(C版本)
#include    <pic.h>
//此程序?qū)崿F(xiàn)"數(shù)控步進(jìn)直流穩(wěn)壓電源"的功能,調(diào)試時(shí)為了避免資源沖突,應(yīng)使實(shí)驗(yàn)板上的拔碼開關(guān)S8拔向高電平
//本程序設(shè)定S9鍵為增加鍵,當(dāng)按住S9鍵不松開時(shí),輸出Vout以0.1V連續(xù)步進(jìn),
//直至鍵S9松開,當(dāng)以一定的時(shí)間間隔點(diǎn)動S9鍵時(shí),輸出Vout也為點(diǎn)動步進(jìn)
//遞減鍵S11的功能與S9基本相同時(shí),輸出電壓的值顯示在3個(gè)LED上
unsigned     CHAR     R1,R2,R3,TXDATA,LEDF,BJF,COUNTW,data;
unsigned     int        i;
const    CHAR       table[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0xFF};
//不帶小數(shù)點(diǎn)的顯示段碼表
const    CHAR       table0[11]={0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X10,0xFF};
//帶小數(shù)點(diǎn)的的顯示段碼表
unsigned    CHAR      s[4];            //定義一個(gè)顯示緩沖數(shù)組
//把需要顯示的數(shù)字裝入顯示緩沖數(shù)組
void        sfz()
{    
    s[0]=R3;
    s[1]=R2;
    s[2]=R1;
    s[3]=0x0A;                    //最后一個(gè)LED顯示"DARK"
}
//系統(tǒng)各寄存器初始化子程序
void        initial()
{
    R1=0X00;
    R2=0X00;
    R3=0X00;
    sfz();                        //把需要顯示的數(shù)字裝入顯示緩沖數(shù)組
    TXDATA=0X00;
    LEDF=0X01;
    BJF=0X01;
    TRISB1=0;
    TRISB2=0;
    TRISB4=1;
    TRISB5=1;                    //設(shè)置與鍵盤相關(guān)的各口的輸入輸出方式
    RB1=0;
    RB2=0;                        //設(shè)置掃描初始條件    
}
//spi方式顯示初始化子程序
void         SPIINIT()
{
    PIR1=0;
    SSPCON=0x30;
    SSPSTAT=0xC0;
//設(shè)置SPI的控制方式,允許SSP方式,并且時(shí)鐘下降沿發(fā)送,與"74HC595,當(dāng)其
//SCLK從低到高跳變時(shí),串行輸入寄存器"的特點(diǎn)相對應(yīng)
    TRISC=0xD7;                //SDO引腳為輸出,SCK引腳為輸出
    TRISA5=0;                    //RA5引腳設(shè)置為輸出,以輸出顯示鎖存信號
}
//I2C初始化子程序
void         i2cint()
{
    SSPCON = 0X08;                //初始化SSPCON寄存器
    TRISC3 =1;                    //設(shè)置SCL為輸入口
    TRISC4 =1;                    //設(shè)置SDA為輸入口
    TRISA4 = 0;
    SSPSTAT=0X80;                //初始化SSPSTAT寄存器
    SSPADD=0X02;                //設(shè)定I2C時(shí)鐘頻率
    SSPCON2=0X00;                //初始化SSPCON2寄存器
    di();                        //關(guān)閉總中斷
    SSPIF=0;                    //清SSP中斷標(biāo)志
    RA4=0;                        //關(guān)掉74HC165的移位時(shí)鐘使能,以免74HC165
//移位數(shù)據(jù)輸出與I2C總線的數(shù)據(jù)線發(fā)生沖突
    SSPEN=1;                    //SSP模塊使能
}
//軟件延時(shí)子程序
void         DELAY()
{
    for(i = 3553; --i ;) continue;
}
//鍵服務(wù)子程序
void        keyserve()
{
    PORTB=0XFD    ;
    if(RB5==0)    BJF=0X01;        //S9鍵按下,步進(jìn)加標(biāo)志置1
    PORTB=0XFB    ;
    if(RB5==0)    BJF=0X00;        //S11鍵按下,步進(jìn)加標(biāo)志清0
    RB1=0;                        //恢復(fù)PORTB的值
    RB2=0;
}
//鍵掃描子程序
void        KEYSCAN()
{
while(1){    
while(1)    {
            if (RB5==0)    break;
        }
        DELAY();                //若有鍵按下,則軟件延時(shí)
        if (RB5==0)    break;        //若還有鍵按下,則終止循環(huán)掃描,返回
      }
}
//SPI傳送數(shù)據(jù)子程序
void  SPILED(data)
{
    SSPBUF=data;                //    啟動發(fā)送
    do    {
       ;
    }while(SSPIF==0);
    SSPIF=0;
}
//顯示子程序
void        DISPLAY()
{
    SPIINIT();                    //spi方式顯示初始化
    RA5=0;                        //準(zhǔn)備鎖存
    for(COUNTW=0;COUNTW<4;COUNTW++)    {
      
2樓: >>參與討論
w55706
頂一下
頂一下

3樓: >>參與討論
ocon
沒電路圖,看不懂。
 
4樓: >>參與討論
miky
請貼原理圖,謝謝!
 
5樓: >>參與討論
njliu
我先在在混筆記
wind-solar.21ic.org
歡迎到我的新田地里討論新能源問題.里面我為大家準(zhǔn)備很多珍貴的資料.
希望大家支持啊

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
程序800多行,為什么編譯后的hex文件3k多了?
程序問題!開機(jī)就進(jìn)中斷!!如何改進(jìn)程序質(zhì)量呢??
為什么PIC單片機(jī)C言語版的書那么難找
一個(gè)有關(guān)PIC單片模擬串口的問題
求助!尋找低電壓、低功耗的PIC型號
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


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