久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2343|回復: 1
收起左側

51單片機P1^0口led改變狀態,產生脈沖,T0計數加一數碼管顯示,T1定時

[復制鏈接]
ID:436030 發表于 2018-11-29 20:37 | 顯示全部樓層 |閱讀模式
51單片機問題求助,P1^0口led改變狀態,產生脈沖,T0計數加一數碼管顯示,T1定時數碼管,正常顯示不了,改了好幾次,不知道哪里錯了,求助,謝謝

  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit led=P1^0;                //用杜邦線連接p1^0和p3^4
  6. sbit dula=P2^6;
  7. sbit wela=P2^7;
  8. uchar code table[]=(0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f);                //0~9
  9. void delay(uint j)
  10. {
  11.         uint m,n;
  12.         for(m=j;m>0;m--)
  13.         for(n=125;n>0;n--);
  14. }
  15. void display(uchar i)
  16. {                                                                                 
  17.         uchar bai,shi,ge;
  18.         bai=i/100;
  19.         shi=i%100/10;
  20.         ge=i%10;
  21.     P0=0xff;
  22.         wela=1;
  23.         P0=0xfe;
  24.         wela=0;        


  25.     dula=1;
  26.         P0=table[bai];
  27.         dula=0;
  28.         delay(1);


  29.         P0=0xff;
  30.         wela=1;
  31.         P0=0xfd;
  32.         wela=0;

  33.         
  34.         dula=1;
  35.         P0=table[shi];
  36.         dula=0;
  37.         delay(5);

  38.         
  39.         P0=0xff;        
  40.         wela=1;
  41.         P0=0xfb;
  42.         wela=0;
  43.         
  44.         dula=1;
  45.         P0=table[ge];
  46.         dula=0;
  47.         delay(5);
  48. }
  49. void t0Init() //
  50. {
  51.            TR0=1;  
  52.             
  53.         TMOD |=0x05;                        //實現計數功能
  54.         TH0=0;
  55.         TL0=0;
  56. }
  57. void t1Init()
  58. {
  59.         TR1=1;        
  60.         TMOD |=0x10;
  61.          TH1=0x4b;         //定時50ms
  62.         TL1=0xfd;
  63. }
  64. void main()          //main函數自身會循環
  65. {
  66.         uchar mSec;        //毫秒和秒儲存變量
  67.            t0Init() ;
  68.     t1Init() ;
  69.         TH0=0;
  70.         TL0=0;
  71.         while(1)
  72.         {            
  73.                 if(TF1==1)
  74.                 {                        //判斷是否溢出
  75.                         TF1=0;                //軟件清零溢出標志位
  76.                         TH1=0x4b;         //定時50ms
  77.                 TL1=0xfd;
  78.                     mSec++;
  79.                         if(mSec==10)
  80.                          {
  81.                                 mSec=0;
  82.                             led=~led;        //產生方波                                
  83.                          }
  84.                                 
  85.                 }
  86.                         
  87.                         display(TL0);//數碼管顯示函數
  88.         }
  89. }
復制代碼


回復

使用道具 舉報

ID:213173 發表于 2018-11-30 09:23 | 顯示全部樓層
你的數組括號用錯了,另外動態數碼管顯示程序也有缺陷,亮度不均勻。給你改了下,你試試。

#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit led=P1^0;                //用杜邦線連接p1^0和p3^4
sbit dula=P2^6;
sbit wela=P2^7;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0~9
/*
void delay(uint j)
{
        uint m,n;
        for(m=j;m>0;m--)
                for(n=125;n>0;n--);
}*/
void display(uchar i)
{                                                                                 
        static uchar a=0;
//        uchar bai,shi,ge;
//        bai=i/100;
//        shi=i%100/10;
//        ge=i%10;
        P0=0x00;
        switch(a)
        {
                case 0:
                        P0=0xfe;
                        wela=1;
                        wela=0;
                        P0=table[i/100];
                        dula=1;
                        dula=0;
                        a++;
                break;

                case 1:
                        P0=0xfd;
                        wela=1;
                        wela=0;
                        P0=table[i%100/10];
                        dula=1;
                        dula=0;
                        a++;
                break;
                case 2:
                        P0=0xfb;
                        wela=1;
                        wela=0;
                        P0=table[i%10];
                        dula=1;
                        dula=0;
                        a=0;
                break;
        }
}
void t0Init() //
{
        TMOD |=0x05;     //實現計數功能
        TH0=0;
        TL0=0;
        TR0=1;
}
void t1Init()
{        
        TMOD |=0x10;
        TH1 = 0xEC;                 //定時5ms
        TL1 = 0x78;
        TR1=1;
}
void main()          //main函數自身會循環
{
        uchar mSec;        //毫秒和秒儲存變量
        t0Init() ;
        t1Init() ;
        TH0=0;
        TL0=0;
        while(1)
        {            
                if(TF1==1)
                {                        //判斷是否溢出
                        TF1=0;                //軟件清零溢出標志位
                        TH1 = 0xEC;                 //定時5ms
                        TL1 = 0x78;
                        mSec++;
                        if(mSec==100)
                        {
                                mSec=0;
                                led=~led;        //產生方波                                
                        }
                        display(TL0);//數碼管顯示函數
                }       
        }
}
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 九九热在线免费视频 | 国产精品一码二码三码在线 | 亚洲精品一区二区在线观看 | 国产精品免费一区二区 | 国产区在线看 | 黄色香蕉视频在线观看 | 成人黄页在线观看 | 香蕉视频一区二区 | 欧美专区在线 | 国产精品成人一区二区三区 | 精品美女视频在线观看免费软件 | 亚洲欧美在线观看视频 | 国产精品一区三区 | 日韩www视频 | 成人久久久 | 国产特级毛片aaaaaa | 欧美国产日韩一区二区三区 | 亚洲国产视频一区 | 日韩一区二区视频 | 久久不射网 | 欧美最猛性xxxxx亚洲精品 | 日本在线视频不卡 | 九九av| 日韩高清一区 | 久久精品国产99国产精品 | 亚洲精品www久久久久久广东 | 久久久久久蜜桃一区二区 | 久久久久久国产精品免费免费狐狸 | 喷潮网站 | 日韩欧美精品一区 | www久| 国产精品久久久久久久久久三级 | 在线不卡 | 国产日韩欧美在线观看 | 日韩精品一区二区三区中文字幕 | 秋霞影院一区二区 | 免费观看的av | 国产精品久久久av | 综合色播| 免费影视在线观看 | 欧洲一区视频 |