標(biāo)題: PROTEUS 仿真單片機(jī)PWM調(diào)溫 電路+程序 [打印本頁]

作者: daoyou    時(shí)間: 2013-8-7 01:11
標(biāo)題: PROTEUS 仿真單片機(jī)PWM調(diào)溫 電路+程序
先發(fā)程序:
#include <reg52.h>
//#include <at89x52.h>
//#include <keyscan.h>
extern void scan_full(void);
extern unsigned char key_scan(void);
extern bit key_ok;
unsigned char pwm_set,key_value;
unsigned char count;
sbit PWM=P3^6;
bit up,down,set_flag;
unsigned char code BCD[]={0x3f,0x06,0x5b,0x4f, //此處是將0-F轉(zhuǎn)換成相應(yīng)的BCD碼
                          0x66,0x6d,0x7d,0x07,
                          0x7f,0x6f,0x77,0x7c,
                          0x39,0x5e,0x79,0x71};
void delay1(unsigned char t)
{
while(t--);
}



void pwm(void) interrupt 5//定時(shí)器2產(chǎn)生PWM波形
{
    TF2=0;                    //定時(shí)器2的溢出標(biāo)志要軟件清除,
                            //但當(dāng)RCLK或TCLK為1時(shí)由硬件清除
    if((count>=pwm_set)&&(count<10))
        PWM=1;
    else    PWM=0;   
    count++;   
    if(count==10)
    count=0x00;
   
}


void key_pwm(unsigned char x)//把鍵值轉(zhuǎn)化為PWM設(shè)置值
{
    switch(x)                //把矩陣鍵盤轉(zhuǎn)化為獨(dú)立鍵盤
    {
        case 1:up=1;break;
        case 2:down=1;break;
        case 3:set_flag=!set_flag;break;
        default:break;
    }
   
    if(up&&set_flag)        //設(shè)置PWM參數(shù):pwm_set
    {
        pwm_set++;
        up=0;
        if(pwm_set>=10)
        pwm_set=0x00;
    }
    if(down&&set_flag)
    {
        pwm_set--;
        down=0;
        if(pwm_set==0xff)
        pwm_set=9;
    }
    if(!set_flag)
    {
        up=0;
        down=0;
    }
}


void main(void)
{
    TH2=0xb1;    //定時(shí)20MS
    TL2=0xe0;
    RCAP2H=0xb1;//定時(shí)器2溢出時(shí)會(huì)把這個(gè)單元的內(nèi)容送到TH2和TL2中
     RCAP2L=0xe0;
    EA=1;
    ET2=1;
    TR2=1;
    while(1)
    {
        scan_full();    //看是否有鍵按下
        if(key_ok)        //有鍵按下,則判斷到底是哪個(gè)鍵按下
        {
            key_value=key_scan();//鍵值送key_value暫存
            P0=~BCD[key_value];     /*此三句是將鍵值顯示出來*/
              P2=0xfe;            /**                         */
            delay1(200);        /*************************/
            key_pwm(key_value);  //調(diào)用鍵值轉(zhuǎn)PWM設(shè)置參數(shù)函數(shù)
            key_value=0x00;         //清除鍵值,以免一次按下,多次響應(yīng)
        }
        P0=~BCD[pwm_set];        /***此三句是將pwm_set值顯示出來*/
        P2=0xfd;                /*******                    */
        delay1(200);            /****************************/
    }
}

電路圖和仿真文件下載: PWM調(diào)溫.rar (48.18 KB, 下載次數(shù): 418)

作者: 何必919    時(shí)間: 2013-8-8 08:16
不錯(cuò)
作者: 游俠(單片機(jī)開    時(shí)間: 2013-10-21 15:51
很好  學(xué)習(xí) 學(xué)習(xí) 謝謝
作者: ▓逍〓遙◆    時(shí)間: 2013-10-31 16:46
學(xué)習(xí)了。
作者: 獨(dú)孤求劍A    時(shí)間: 2014-1-21 09:06
好剛需要
作者: woaiyijiaren    時(shí)間: 2014-3-14 23:26
學(xué)習(xí)了
作者: amgpj    時(shí)間: 2014-3-22 07:44
學(xué)習(xí) 學(xué)習(xí) 先謝謝啦
作者: fzg63031525    時(shí)間: 2014-4-3 17:15
學(xué)習(xí)學(xué)習(xí)!
作者: zhouyi    時(shí)間: 2014-6-6 00:11
學(xué)習(xí),學(xué)習(xí),學(xué)習(xí)
作者: botao258    時(shí)間: 2014-6-28 18:35
一直想學(xué)習(xí)PWM,不知怎么入手
作者: 云不肯說    時(shí)間: 2014-7-4 16:06
來看看,來學(xué)學(xué)。。。。。。。。。。。
作者: 云不肯說    時(shí)間: 2014-7-7 13:18
只聽過電機(jī)PWM調(diào)速
作者: zmkgzsz2014    時(shí)間: 2014-9-6 17:54
pwm調(diào)溫,學(xué)習(xí)了。
作者: guchengjiuan    時(shí)間: 2014-10-15 14:31
謝謝樓主學(xué)習(xí)
作者: blj178    時(shí)間: 2014-10-20 20:26
果然是好東西
作者: zhouyi    時(shí)間: 2014-10-29 14:27
學(xué)些,學(xué)習(xí),學(xué)習(xí)

作者: 2468416253    時(shí)間: 2014-11-10 13:24
ok謝謝
作者: ljm    時(shí)間: 2015-5-10 11:00
學(xué)習(xí)中......
作者: myst3ry    時(shí)間: 2015-5-10 22:27
先看下
作者: zjsszjszjs    時(shí)間: 2015-5-17 16:16
學(xué)習(xí)了

作者: leichyi    時(shí)間: 2015-5-19 12:35
圖呢?
作者: zhaoshimax    時(shí)間: 2015-5-25 16:35
LZ是不是真的要那么多積分啊
作者: xtitxjg    時(shí)間: 2015-5-27 13:12

作者: 電子技術(shù)1    時(shí)間: 2016-3-30 22:49
先學(xué)習(xí)了咯。。。
作者: qwe#    時(shí)間: 2016-4-9 10:04
能免費(fèi)看原理圖嗎~~~
作者: radio0326    時(shí)間: 2016-7-6 15:05
看上去挺不錯(cuò)
作者: wangnan1231    時(shí)間: 2017-4-6 10:31
用得上
作者: micmiutom    時(shí)間: 2017-5-1 09:03
謝謝樓主的分享
作者: kemu65143    時(shí)間: 2017-5-4 00:50
學(xué)習(xí)了
作者: 友芝    時(shí)間: 2017-8-10 11:26
看看原理圖啊




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1