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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2545|回復: 2
收起左側

請問大神,如何將兩個簡單的單片機程序合在一起。秒表開始時跑馬燈亮

[復制鏈接]
ID:266972 發表于 2017-12-26 10:57 | 顯示全部樓層 |閱讀模式
跑馬燈
/*-----------------------------------------------

  內容:循環點亮P1口對應的8個LED燈
------------------------------------------------*/
#include<reg52.h>
/*------------------------------------------------
                    延時子程序
------------------------------------------------*/
void delay(unsigned int cnt)
{
while(--cnt);
}
/*------------------------------------------------
                    主函數
------------------------------------------------*/
main()
{
unsigned char i=0xfe;
P1=0xfe;      
while(1)
      {
           delay(300000);
          
           P1=i;                //移位過程中采用變量位循環形式,如果寫成P1|=0x01的形式,則將讀入P2端口的值。若出現某個引腳電平為高,則最終全部變為高電平。
           i<<=1;
           i|=0x01;
            
           if(P1==0x7f)
          {
                   delay(30000);
               i=0xfe;
       
          }
      }
}


秒表
#include<reg52.h>     //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

code unsigned char tab[]=
                        {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
                        //共陰數碼管 0-9

unsigned char Dis_Shiwei;  //定義十位
unsigned char Dis_Gewei;   //定義個位
unsigned char S_Dis_Shiwei;//定義秒十位
unsigned char S_Dis_Gewei; //定義秒個位
unsigned char second,msecond;
/******************************************************************/
/*                    函數聲明                                   */
/******************************************************************/
void CLR(void);
/******************************************************************/
/*                    延時函數                                    */
/******************************************************************/
void delay(unsigned int cnt)
{
while(--cnt);
}
/******************************************************************/
/*                    主函數                                      */
/******************************************************************/
main()
{

EX0=1;//外部中斷0設置
IT0=1;

EX1=1;//外部中斷1設置
IT1=1;

TMOD |=0x01;//定時器設置 10ms in 12M crystal
TH0=0xd8;
TL0=0xf0;
ET0=1;  //打開中斷
TR0=0;

EA=1;
CLR();
while(1)
  P0=S_Dis_Shiwei;//顯示秒十位
  P2=1;
  delay(300);     //短暫延時
  P0=S_Dis_Gewei; //顯示秒個位
  P2=2;
  delay(300);
  P0=0x40;        //顯示秒個位
  P2=3;
  delay(300);
  P0=Dis_Shiwei;  //顯示十位
  P2=4;
  delay(300);     //短暫延時
  P0=Dis_Gewei;   //顯示個位
  P2=5;
  delay(300);        
          
                  }
/******************************************************************/
/*                    定時器中斷函數                              */
/******************************************************************/
void tim(void) interrupt 1 using 1
{

TH0=0xd8;//重新賦值
TL0=0xf0;
msecond++;
if (msecond==100)
    {
    msecond=0;
    second++;//秒加1
        if(second==100)
           second=0;
        S_Dis_Shiwei=tab[second/10];//十位顯示值處理
    S_Dis_Gewei=tab[second%10]; //個位顯示處理

        }
    Dis_Shiwei=tab[msecond/10];//十位顯示值處理
    Dis_Gewei=tab[msecond%10]; //個位顯示處理

}
/******************************************************************/
/*                    外部中斷函數                                */
/******************************************************************/
void ISR_INT0(void) interrupt 0 using 1
{
TR0=!TR0; //利用外部中斷打開和關閉定時器0 用于開始和停止計時

}
void ISR_INT1(void) interrupt 2 using 1
{
if(TR0==0)//停止時才可以清零
   CLR();
}

void CLR(void)
{
second=0; //利用外部中斷清零
msecond=0;
Dis_Shiwei=tab[msecond/10];//十位顯示值處理
Dis_Gewei=tab[msecond%10]; //個位顯示處理
S_Dis_Shiwei=tab[second/10];//十位顯示值處理
S_Dis_Gewei=tab[second%10]; //個位顯示處理
}




回復

使用道具 舉報

ID:78322 發表于 2017-12-26 11:28 | 顯示全部樓層
這樣的程序只能是自己寫著玩,不適用,一般做一個時基(1ms),然后把不同的功能寫成不同的函數,里面就不需要延時,而是間隔需要的時間去調用,這樣相互之間的影響幾乎就很小的。
回復

使用道具 舉報

ID:267015 發表于 2017-12-26 11:53 | 顯示全部樓層
你想表達的意思是,你的跑馬燈以秒為計數來起動,想把秒表程序整合到一上一個程序,你可以把跑馬燈的程序作為一個函數在秒表程序中進行調用,
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品精品久久久 | 午夜成人免费视频 | 中文字幕一级 | 国产一级电影在线观看 | 日本视频一区二区 | 91精品国产综合久久国产大片 | 欧美日韩大片 | 91精品国产综合久久久久久 | 日韩精品在线看 | 最新91在线 | 国产精品日日夜夜 | 中文字幕人成乱码在线观看 | 99久久婷婷国产精品综合 | 波多野结衣先锋影音 | 国产精品免费一区二区 | 日韩av在线一区 | 国产精品视频999 | 亚洲精品乱码8久久久久久日本 | 亚洲天堂av在线 | 欧美日韩久久精品 | 亚洲精品大全 | 久久毛片 | 久久精品亚洲精品国产欧美 | 国产精品3区 | 欧美性成人 | 天天操伊人| 91久久精品日日躁夜夜躁欧美 | 国产午夜视频 | 精品久久久久久亚洲精品 | 日本韩国电影免费观看 | 欧美一级毛片在线播放 | 国产1页 | 欧美国产日韩精品 | 欧美一区二区在线播放 | 日本韩国欧美在线观看 | 国产精品成人久久久久 | 精品视频一区二区三区在线观看 | 亚洲91视频 | 日韩精品一区二 | 色姑娘av | 91操操操 |