找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

[求助]程序詳解圖

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:3849 發(fā)表于 2008-8-18 15:03 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
表情(求助)程序詳解圖

#include <reg51.H>
unsigned char code dispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //位碼
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66, 0x3F,/*0*/
                               0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};
unsigned char dispbuf[8]={0,0,0,0,0,0,10,10};
unsigned char temp[8];
unsigned char dispcount;
unsigned char T0count;
unsigned char timecount;
bit flag;
unsigned long x;

void main(void)                           //主函數(shù)
{
  unsigned char i;
  TMOD=0x15;                              //T0T1方式1,T0計(jì)數(shù)
  TH0=0;
  TL0=0;
  TH1=(65536-4000)/256;
  TL1=(65536-4000)%256;
  TR1=1;                                  //啟動(dòng)定時(shí)器1
  TR0=1;                                  //啟動(dòng)定時(shí)器0
  ET0=1;                                  //允許定時(shí)器0中斷
  ET1=1;                                  //允許定時(shí)器1中斷
  EA=1;                                   //啟動(dòng)總中斷
  while(1)
   {
      if(flag==1)
       {
         flag=0;
         x=T0count*65536+TH0*256+TL0;
         for(i=0;i<8;i++)
           {
             temp=0;
           }
         i=0;
         while(x/10)
           {
             temp=x%10;
             x=x/10;
             i++;
           }
         temp=x;
         for(i=0;i<6;i++)
           {
             dispbuf=temp;
           }
         timecount=0;
         T0count=0;
         TH0=0;
         TL0=0;
         TR0=1;
       }
   }
}

void t0(void) interrupt 1 using 0       //中斷1次計(jì)數(shù)值為65536
{
  T0count++;
}
void t1(void) interrupt 3 using 0        //每4ms中斷1次
{
  TH1=(65536-4000)/256;
  TL1=(65536-4000)%256;
  timecount++;                           //中斷250次即1s采集一次數(shù)據(jù)
  if(timecount==250)
    {
      TR0=0;
      timecount=0;
      flag=1;
    }                                     //中斷250次即1s采集一次數(shù)據(jù)
  P0=dispcode[dispbuf[dispcount]];        //P0口段輸出
  P2=dispbit[dispcount];                  //P2口位輸出
  dispcount++;
  if(dispcount==8)
    {
      dispcount=0;
    }
}

小弟初學(xué)單片機(jī)C,很多都不懂,哪位大哥大姐能幫我分析一下這個(gè)程序,寫出其流程圖

下面是圖



[此貼子已經(jīng)被作者于2008-8-18 15:13:35編輯過]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:88980 發(fā)表于 2015-9-2 05:44 | 只看該作者
vc你打理發(fā)店健康;安靜開發(fā)力度;接撒快樂;發(fā)動(dòng)機(jī)開飯啦;
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表