欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 關(guān)于兩位一體共陽極數(shù)碼管MCU編程問題 [打印本頁]

作者: 天上的一只猩    時間: 2018-12-25 23:29
標(biāo)題: 關(guān)于兩位一體共陽極數(shù)碼管MCU編程問題
兩位共陽極數(shù)碼管  要求顯示 00 10 20一直到90  請問應(yīng)該怎么編程  
還有就是仿真圖如何繪制

QQ圖片20181225232901.png (4.58 KB, 下載次數(shù): 25)

QQ圖片20181225232901.png

作者: devcang    時間: 2018-12-26 00:11


先找一段代碼,看一下,就清楚了。。。。。。。
作者: 周超然    時間: 2018-12-26 08:28
網(wǎng)上代碼多的很,自己去百度查找下就清除了,就是7個IO口01控制一個數(shù)碼管。
作者: 天上的一只猩    時間: 2018-12-26 08:58
devcang 發(fā)表于 2018-12-26 00:11
先找一段代碼,看一下,就清楚了。。。。。。。

經(jīng)過檢查 圖沒有問題
現(xiàn)在問題就是段選和位選編程那部分 只用一個段選就好用

用兩個就出問題  
作者: robinsonlin    時間: 2018-12-26 10:13
那你就得把程序貼出來,大家才能知道問題在哪里呀

作者: 天上的一只猩    時間: 2018-12-26 14:18
robinsonlin 發(fā)表于 2018-12-26 10:13
那你就得把程序貼出來,大家才能知道問題在哪里呀

如下。麻煩看一下 是不是哪里有問題
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char                                                         
uchar time;
double count=50;        //定義占空比,并初始占空比為50%
sbit PWM=P3^0;      //P2^0口輸出PWM
sbit zkb_add=P3^6;   //占空比增加的按鍵 的I/O口
sbit zkb_dec=P3^7;   //占空比減小 的按鍵 的I/O口
sbit dula=P2^2;
sbit wela=P2^3;

uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};        //共陰極數(shù)碼管0~9編碼
/************函數(shù)聲明**************/
void delayms(uint z); //延時
void keyscan();          //掃描按鍵
void timer0_init();   //定時器0初始化
/****************延時處理**********************/
void delayms(uint z) //延時xms程序
{
    uint x,y;
        for(y=z;x>0;x--)
                for(y=110;y>0;y--);
}

/*******數(shù)碼管顯示占空比********************/
void display_pwm(int num)//占空比顯示
{
  uchar shi;
  shi=num/10;


  dula=0;
  P1=table[shi];
  delayms(10);
  dula=1;

  wela=0;
  P1=table[0];
  delayms(10);
  wela=1;
}




void keyscan()  //按鍵掃描
{

       if(zkb_add==0)            
       {
             delayms(1);  count=count+10;        //每按一次占空比增加按鍵占空比加10%
          if(count>=100)                              //限定占空比上限
                   {
                     count=0;
                     }
        }
      if(zkb_dec==0)
      {  delayms(1);
          count=count-10;                 //每按一次占空比減小按鍵占空比減10%
               if(count<0)    //限定占空比下限
               {
        count=100;
               }
  }
       
}

/***********定時器0初始化***********/
void timer0_init()
{
  TMOD=0x01; //定時器0工作于方式1
  TH0=(65536-10)/256;
  TL0=(65536-10)%256;
  TR0=1;
  ET0=1;
  EA=1;
}

/**************定時0中斷處理******************/
void timer0_int() interrupt 1
{
       
  TR0=0;    //設(shè)置定時器初值期間,關(guān)閉定時器
  TH0=(65536-10)/256;
  TL0=(65536-10)%256;
  TR0=1;
  time++;
  
  if(time<count)          //count為占空比
  {
        PWM=1;           //輸出高電平
  }
  else
        PWM=0;       
  if(time>=100)
  {
        time=0;
  }

  display_pwm(count);

}

/*********主函數(shù)********************/
void main()
{         
        timer0_init();
        delayms(1);
        while(1)
        {
         keyscan();
        }
}





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