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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

關于兩位一體共陽極數碼管MCU編程問題

查看數: 3323 | 評論數: 5 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2018-12-25 23:29

正文摘要:

兩位共陽極數碼管  要求顯示 00 10 20一直到90  請問應該怎么編程   還有就是仿真圖如何繪制

回復

ID:393736 發表于 2018-12-26 14:18
robinsonlin 發表于 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};        //共陰極數碼管0~9編碼
/************函數聲明**************/
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--);
}

/*******數碼管顯示占空比********************/
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;    //設置定時器初值期間,關閉定時器
  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);

}

/*********主函數********************/
void main()
{         
        timer0_init();
        delayms(1);
        while(1)
        {
         keyscan();
        }
}
ID:451718 發表于 2018-12-26 10:13
那你就得把程序貼出來,大家才能知道問題在哪里呀
ID:393736 發表于 2018-12-26 08:58
devcang 發表于 2018-12-26 00:11
先找一段代碼,看一下,就清楚了。。。。。。。

經過檢查 圖沒有問題
現在問題就是段選和位選編程那部分 只用一個段選就好用

用兩個就出問題  
ID:449525 發表于 2018-12-26 08:28
網上代碼多的很,自己去百度查找下就清除了,就是7個IO口01控制一個數碼管。
ID:277550 發表于 2018-12-26 00:11


先找一段代碼,看一下,就清楚了。。。。。。。

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表