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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1243|回復: 1
打印 上一主題 下一主題
收起左側(cè)

各位高手幫忙看看為什么單片機控制led不顯示 求幫助

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:280678 發(fā)表于 2019-6-30 18:10 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機程序
#include <stc15.h>                        // 包含STC15的頭文件
#include <intrins.h>                // 包含intrins.h頭文件,以便延時函數(shù)中用
#include <absacc.h>
#define uchar unsigned char
#define uint unsigned int
/*七段共陽極管顯示定義*/
uchar code dispcode[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽極數(shù)碼管顯示數(shù)字0~9
sbit CLK=P5^5; //74HC595的11引腳
sbit DAT=P5^4; //74HC595的14引腳
sbit RCLK=P3^6;  //74HC595的12引腳
sbit CS1=P1^0; //數(shù)碼管段位COM1(公共端)即數(shù)碼管的1腳
sbit CS2=P1^1; //數(shù)碼管段位COM2(公共端)即數(shù)碼管的2腳
sbit CS3=P1^2; //數(shù)碼管段位COM3(公共端)即數(shù)碼管的3腳
sbit CS4=P1^3; //數(shù)碼管段位COM4(公共端)即數(shù)碼管的4腳
sbit CS5=P1^4; //數(shù)碼管段位COM5(公共端)即數(shù)碼管的5腳
sbit CS6=P1^5; //數(shù)碼管段位COM6(公共端)即數(shù)碼管的6腳

/*定義并初始化變量*/
uchar seconde=0;
uchar minite=0;
uchar hour=12;
uchar mstcnt=0;
//uchar i=0;

sbit P1_0=P3^3;                 // second 調(diào)整定義k3
sbit P1_1=P3^1;                 //minite調(diào)整定義,k2
sbit P1_2=P3^2;                 //hour調(diào)整定義,k1
/*函數(shù)聲明*/
void delay(uchar k );      //延時子程序
void time_pro( );    //時間處理子程序
void write595(uchar word);  //寫595 ,顯示
void keyscan( );       //鍵盤掃描子程序
/*****************************/
/*延時子程序*/
/****************************/
void delay(uchar k)   //延時函數(shù)100us
{
uchar m=30;
_nop_();
_nop_();
  do
   {
    while(--m);
    }
        while(--k);
   }
//寫數(shù)碼管函數(shù)
void write595(uchar word)
{
        uchar num;
                  
                uchar c=0;  
                num=dispcode[word];
         for(c=0;c<8;c++)
        {
                   CLK=0;
           DAT=num&0x80;
           num=num<<1;
           CLK=1;
                                 
                 }
                  
            RCLK=0;
               _nop_();
               _nop_();
        RCLK=1;
               
}

void select1(void)
{ //第一位數(shù)碼管
        CS1=0;CS2=1;CS3=1;CS4=1;CS5=1;CS6=1;
}

void select2(void)
{ //第二位數(shù)碼管
        CS1=1;CS2=0;CS3=1;CS4=1;CS5=1;CS6=1;
}

void select3(void)
{ //第三位數(shù)碼管
        CS1=1;CS2=1;CS3=0;CS4=1;CS5=1;CS6=1;
}

void select4(void)
{ //第四位數(shù)碼管
        CS1=1;CS2=1;CS3=1;CS4=0;CS5=1;CS6=1;
}

void select5(void)
{ //第五位數(shù)碼管
        CS1=1;CS2=1;CS3=1;CS4=1;CS5=0;CS6=1;
}

void select6(void)
{ //第六位數(shù)碼管
        CS1=1;CS2=1;CS3=1;CS4=1;CS5=1;CS6=0;
}


/**************************/
/*時間處理子程序*/
/**************************/

void time_pro(void)
{
        if(seconde==60)                    //秒鐘設為60進制
          { seconde=0;
            minite++;
           if( minite==60)              //分鐘設為60進制
              { minite=0;
                hour++;
              if(hour==12)              //時鐘設為12進制
                 {hour=0; }
              }
          }

}
/*******************************/
/*鍵盤掃描子程序*/
/*******************************/
void keyscan(void)
{
    if(P1_0==0)                     //按鍵3秒的調(diào)整
       {
           delay(30);
               if(P1_0==0)
                   {
                       seconde++;
                      if(seconde==60)
                        {seconde=0; }
                   }
       }
    if(P1_1==0)                    //按鍵2分的調(diào)整
       {
            delay(30);
               if(P1_1==0)
                 {
                    minite++;
                    if(minite==60)
                      {minite=0;}
       }
     }
    if(P1_2==0)                   //按鍵1小時的調(diào)整
       {
            delay(30);
               if(P1_2==0)
                   {
                       hour++;
                    if(hour==24)
                      {hour=0; }
                 }
       }
}
void time_0()interrupt 1 //定時器0 50ms
{
         TH0=0x4c;             //預置計數(shù)初值
     TL0=0x00;

        mstcnt++;
        if(mstcnt==20)
        {
            seconde++;
            mstcnt=0;    //注意點。對計數(shù)單元的清零十分的重要,本次調(diào)試中就是
        }               //因為忽略了這一點,給我早成了很大的被動。

}
/**************************/
/*主函數(shù)*/
/**************************/
void main(void)
{
P1=0xff;                //初始化p1口,全設為1
AUXR &= 0x7F;                //定時器時鐘12T模式
        TMOD &= 0xF0;                //設置定時器模式
        TL0 = 0x00;                //設置定時初值
        TH0 = 0x4C;
        EA=1;                //設置定時初值
        TF0 = 0;                //清除TF0標志
        TR0 = 1;                //定時器0開始計時


    while (1)
{
         keyscan( );    //按鍵掃描
         time_pro( ); //時間處理
           write595(hour/10); //要寫的值         
           select1(); //顯示第一位數(shù)碼管  
           delay(1);
           write595(hour%10); //要寫的值
           select2(); //顯示第二位數(shù)碼管
           delay(1);  
           write595(minite/10); //要寫的值
           select3(); //顯示第三位數(shù)碼管
            delay(1);   
           write595(minite%10); //要寫的值
           select4(); //顯示第四位數(shù)碼管
           delay(1);   
           write595(seconde/10); //要寫的值
           select5(); //顯示第五位數(shù)碼管
            delay(1);   
           write595(seconde%10); //要寫的值
           select6(); //顯示第六位數(shù)碼管
            delay(1);

}
}

led.jpg (208.87 KB, 下載次數(shù): 23)

用人家的電路自己編程實現(xiàn)LED時鐘

用人家的電路自己編程實現(xiàn)LED時鐘
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:280678 發(fā)表于 2019-6-30 18:10 | 只看該作者
只是實現(xiàn)LED時鐘和調(diào)節(jié)時間功能
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲视频免费在线观看 | 午夜国产一区 | 午夜精品久久久久久久久久久久久 | 中文字幕一区在线观看视频 | 精品国产一区二区国模嫣然 | 亚洲国产精品久久久久秋霞不卡 | 成人伊人网 | 精品一区二区三区在线观看国产 | 午夜精品久久 | 久久久久久久国产精品影院 | 久久只有精品 | 福利视频一区二区 | 久久久久91 | 亚洲欧美日韩精品久久亚洲区 | 中国一级特黄视频 | 精品二区| m豆传媒在线链接观看 | 日中文字幕在线 | 亚洲国产成人精品女人 | 在线中文字幕亚洲 | 国产一区二区三区 | 99久久婷婷国产综合精品首页 | 久草新视频 | 久久69精品久久久久久久电影好 | 久久久久久亚洲精品 | 成年人精品视频在线观看 | 日本大片在线播放 | 超碰人人人 | 国产精品视屏 | 视频一区中文字幕 | 欧美区日韩区 | 一本一道久久a久久精品蜜桃 | 99久久精品免费看国产四区 | 欧美xxxⅹ性欧美大片 | 久久在线视频 | 特一级毛片 | 97久久久久久 | 国产精品99久久久久久久vr | 超碰520 | 在线欧美小视频 | 亚洲第一视频网站 |