亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: 小白求助制作秒表,單片機代碼問題 [打印本頁]

作者: Afan的單片機    時間: 2017-11-2 22:39
標題: 小白求助制作秒表,單片機代碼問題
以上是代碼,功能是實現(xiàn)秒表計時,60清零,精確到后兩位,我覺得代碼沒問題啊

以下是仿真
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. char led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  4. int number=0;
  5. char score[]={0,0,0,0};
  6. void timer0(void) interrupt 1
  7. {
  8.     number++;
  9.         score[1]=number/1000;
  10.         score[2]=(number-score[1]*1000)/100;
  11.         score[3]=(number-score[1]*1000-score[2]*100)/10;
  12.         score[4]=number-score[1]*1000-score[2]*100-score[3]*10;
  13.         if (number>6000){number=0;}
  14.         TL0=0Xf0;
  15.         TH0=0Xd8;
  16. }
  17. main(){
  18.         int k=0;
  19.         int wei=0x01;
  20.         TMOD=0X01;
  21.         TH0=0Xd8;
  22.         TL0=0Xf0;//10ms
  23.         TR0=1;
  24.         ET0=1;
  25.         EA=1;
  26.         while(1){
  27.         for(k=1;k<5;k++)
  28.         {        P2=led[score[k]];
  29.                 wei=_crol_(wei,2);
  30.                 P3=wei;
  31.                         }
  32.                 }
  33.         }
復(fù)制代碼








作者: Afan的單片機    時間: 2017-11-2 23:00
有人嗎
作者: yzwzfyz    時間: 2017-11-3 10:10
不知道你要表達的意思是什么!
作者: 王朗的誘惑    時間: 2017-11-3 12:58
數(shù)組尋址是從0開始吧?score[0]開始。還有取余數(shù)用%就行了,不用那么麻煩。
作者: spark399    時間: 2017-11-3 14:16
聲明處:05.char score[]={0,0,0,0};初始為4個元素,編譯器分配4個存儲空間,數(shù)組長度為4,最大有效下標3:有效下標score[0]---score[3];“ for(k=1;k<5;k++)”中k=1~5,一是錯位,二是最后一個數(shù)據(jù)超出地址空間了。
作者: Afan的單片機    時間: 2017-11-3 17:02
yzwzfyz 發(fā)表于 2017-11-3 10:10
不知道你要表達的意思是什么!

秒表計時呢
作者: Afan的單片機    時間: 2017-11-3 17:04
spark399 發(fā)表于 2017-11-3 14:16
聲明處:05.char score[]={0,0,0,0};初始為4個元素,編譯器分配4個存儲空間,數(shù)組長度為4,最大有效下標3: ...

我改成了for(k=0;k<4;k++),為什么還是不能正常顯示呢
作者: Afan的單片機    時間: 2017-11-3 17:05
改動了以下:
#include<reg51.h>
#include<intrins.h>
char led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int number=0;
char score[]={0,0,0,0};
void timer0(void) interrupt 1
{
    number++;
        score[0]=number/1000;
        score[1]=(number-score[1]*1000)/100;
        score[2]=(number-score[1]*1000-score[2]*100)/10;
        score[3]=(number-score[1]*1000-score[2]*100)%10;
        if (number>6000){number=0;}
        TL0=0Xf0;
        TH0=0Xd8;
}
main(){
        int k=0;
        int wei=0x01;
        TMOD=0X01;
        TH0=0Xd8;
        TL0=0Xf0;//10ms
        TR0=1;
        ET0=1;
        EA=1;
        while(1){
        for(k=0;k<4;k++)
        {        P2=led[score[k]];
                wei=_crol_(wei,2);
                P3=wei;
                        }
                }
        }               
作者: Afan的單片機    時間: 2017-11-3 17:11
spark399 發(fā)表于 2017-11-3 14:16
聲明處:05.char score[]={0,0,0,0};初始為4個元素,編譯器分配4個存儲空間,數(shù)組長度為4,最大有效下標3: ...

是1-4呢,5不滿足條件
作者: zl2168    時間: 2017-11-3 21:08
本帖最后由 zl2168 于 2017-11-3 21:10 編輯

實例93  99.9秒秒表
Proteus仿真一下,確認有效。
實例95 99.9秒秒表.rar (38.86 KB, 下載次數(shù): 4)

以上摘自張志良編著《80C51單片機仿真設(shè)計實例教程——基于Keil CProteus》清華大學(xué)出版社ISBN 978-7-302-41682-1內(nèi)有常用的單片機應(yīng)用100案例,用于仿真實驗操作,書中電路和程序設(shè)計有詳細說明,電路與程序真實可靠可信可行,程序語句條條有注解。若需99.99秒,硬件電路增加一位595。軟件程序增加0.01s10ms計數(shù)器,并修改相應(yīng)計數(shù)顯示程序。仿真電路和Hex文件能在清華出版社網(wǎng)站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網(wǎng)上書店打折購買。

作者: Afan的單片機    時間: 2017-11-3 23:14
zl2168 發(fā)表于 2017-11-3 21:08
實例93  99.9秒秒表
先Proteus仿真一下,確認有效。

額。。。感謝 但是我的哪里錯了呢
作者: zjb2106558    時間: 2017-11-4 09:26
位掃描要加延時,不然看不到效果
作者: zjb2106558    時間: 2017-11-4 09:28
Afan的單片機 發(fā)表于 2017-11-3 23:14
額。。。感謝 但是我的哪里錯了呢

位掃描要有延時
作者: zl2168    時間: 2017-11-4 09:56
Afan的單片機 發(fā)表于 2017-11-3 23:14
額。。。感謝 但是我的哪里錯了呢

讀懂正確有效程序,就知道自己錯在哪兒了!
作者: 王朗的誘惑    時間: 2017-11-4 11:44
Afan的單片機 發(fā)表于 2017-11-3 17:05
改動了以下:
#include
#include

score[1]=(number-score[1]*1000)/100;后面的score[1]也得跟著改成score[0]呀。剩下那幾句也是……。
作者: Afan的單片機    時間: 2017-11-5 22:27
zjb2106558 發(fā)表于 2017-11-4 09:26
位掃描要加延時,不然看不到效果

是的 為什么
作者: Afan的單片機    時間: 2017-11-5 22:37
#include<reg51.h>
#include<intrins.h>
char led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int number=0;
sbit LED = P2^7;
char score[]={0,0,0,0};
char key=0;
void delayms(unsigned int x)
{
  unsigned char t;
  while(x--)
  for (t=0;t<120;t++);
}
void timer0(void) interrupt 1
{
    number++;
        score[0]=number/1000;
        score[1]=number%1000/100;
        score[2]=number%100/10;
        score[3]=number%100%10;
        if (number>6000){number=0;}
        TH0=(65536-10000)/256;
        TL0=(65536-10000)%256;
}
main(){
        int k=0;
        int wei=0x01;
        TMOD=0X01;
        TH0=(65536-12000)/256;
        TL0=(65536-12000)%256;
        TR0=1;
        ET0=1;
        EA=1;
        key=0xff&P1;
        if(key=0xff)
{       
        while(1){
        for(k=0;k<4;k++)
                {        P2=led[score[k]];
                        P3=wei;
                        if (P3==0x04){LED=0;}
                        delayms(15);
                        P2=0xff;
                        wei=_crol_(wei,2);
                }
                        }
}
                        if(key!=0xff)        TR0=0;
}
       
       
        這樣怎么不能實現(xiàn)按鍵暫停呢啊

1.jpg (114.74 KB, 下載次數(shù): 39)

1.jpg





歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1