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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2431|回復: 8
收起左側

求學霸幫忙修改 (程序有問題)

[復制鏈接]
ID:351226 發表于 2018-6-14 18:13 | 顯示全部樓層 |閱讀模式
  • #include<reg51.h>
  • #define uchar unsigned char
  • uchar duanma [10]={0xc0,0xf9,0xa4,0xb0,0x99,
  •                   0x92,0x82,0xf8,0x80,0x90};
  • uchar weima[4]={0x01,0x02,0x04,0x08};
  • uchar jishu1,jishu2,miao,haomiao;
  • uchar xianshi[4]={0,0,0,0};
  • bit kaiting = 0;
  • sbit k1=P3^0;
  • sbit k2=P3^1;
  • void yanshi20ms (void)
  • {
  •    uchar i,j;
  •    for (i=40;i>0;i--)
  •    for (j=250;j>0;j--);
  • }
  • void chushihua(void)
  • {
  • TMOD=0x01;
  • TH0=(65536-10000)/256;
  • TL0=(65536-10000)%256;
  • EA=1;ET0=1;TR0=1;
  • }
  • void main(void)
  • {
  •   uchar saomiao;
  •   miao=0;haomiao=0;
  •   chushihua();
  •   while(1)
  •     {
  •            P3=0xff;
  •            saomiao=P3;
  •            if(saomiao!=0xff)
  •            {
  •              yanshi20ms();
  •                  saomiao=P3;
  •                 if(saomiao!=0xff)
  •                  {
  •              if(k1==0)
  •                     {
  •                            kaiting=~kaiting;
  •                         }
  •                  if((k2==0)&&(kaiting==1))
  •                     {
  •                            miao=0;
  •                            haomiao=0;
  •                         }
  •                  while(P3!=0xff);
  •                  }
  •            }
  •         }
  •   }
  •   void miaobiao(void)interrupt 1
  • {
  • TH0=(65536-10000)/256;
  • TL0=(65536-10000)%256;
  • xianshi[0]=duanma[miao/10];
  • xianshi[1]=duanma[miao%10];
  • xianshi[2]=duanma[haomiao/10];
  • xianshi[3]=duanma[haomiao%10];
  • jishu1++;
  • if(jishu1==4)jishu1=0;
  • P2=weima[jishu1];
  • P1=xianshi[jishu1];
  • jishu2++;
  • if (jishu2==100)
  •    {
  •      jishu2=0;
  •    if(kaiting==0)
  •        haomiao++;
  •      if (haomiao==100)
  •       {
  •        haomiao=0;
  •        miao++;
  •        if(miao==60)
  •               miao=0;
  •       }
  •    }
  • }



2018-06-13_14.02.51.jpg
2018-06-13_14.03.37.jpg
回復

使用道具 舉報

ID:342822 發表于 2018-6-14 19:02 | 顯示全部樓層
沒問題~~~~~~~~~~~~~~~~
回復

使用道具 舉報

ID:351226 發表于 2018-6-14 22:21 | 顯示全部樓層
有問題
顯示結果  初始值不是00:00

回復

使用道具 舉報

ID:351226 發表于 2018-6-14 22:23 | 顯示全部樓層
有問題
顯示結果  初始值不是00:00

評分

參與人數 1黑幣 +8 收起 理由
songfengyi + 8

查看全部評分

回復

使用道具 舉報

ID:330198 發表于 2018-6-15 08:49 | 顯示全部樓層
360截圖20180615084754748.jpg
如圖改兩處就可以了,邏輯問題多實驗就好了

評分

參與人數 1黑幣 +8 收起 理由
songfengyi + 8 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:164602 發表于 2018-6-15 09:33 | 顯示全部樓層
你的程序,很有問題!
第一:開始顯示不可能為零,因為你一開始就計時了。
第二:由于有定時器中斷,所以,你的按鍵幾乎是沒有用的——按鍵沒反應。
給你一個我的例子:
按鍵是用外部中斷,k1為外部中斷0,按第一次,開始計時,按第二次,顯示最終計時,按第三次,清零。k2是外部中斷1,按奇次,如1、3、5、7等,顯示當前的計時,但計時繼續,按偶數次,如2、4、6、8等,顯示繼續計時。
與你的作業要求有點不同,但秒表功能非常完整。你可能根據自己的要求修改。
看別人的程序,也是學習過程。
我的程序適用電路如圖所示。
1.jpg
2.jpg
3.jpg

#include<reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
unsigned char DisplayData[4];
unsigned char MMMM=0,MM=0,TTTT=0,TT=0,i=0;
bit A=0;  

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

u8 code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void waibuzhongduan()
{
        EA=1;
        EX0=1;        
        IT0=1;
        EX1=1;        
        IT1=1;
}

void dingshiqizhongduan()
{
        TMOD=0X01;
        TH0=0xD8;
        TL0=0xF0;
        EA=1;
        TR0=0;
        ET0=1;
        PT0=1;//為1時,定時器0中斷為高級優先級,為0時,為低級優先級。

}

void delay10ms(unsigned int c)
{
        unsigned char a,b;
    for(c=1;c>0;c--)
        for(b=38;b>0;b--)
            for(a=130;a>0;a--);
}
void Display()
{
        unsigned char i,j;
        for(i=0;i<4;i++)
        {
                switch(i)
                {
                        case (0):LSA=0;LSB=0;LSC=0;break;
                        case (1):LSA=1;LSB=0;LSC=0;break;
                        case (2):LSA=0;LSB=1;LSC=0;break;
                        case (3):LSA=1;LSB=1;LSC=0;break;
                }
                P0=DisplayData;
        j=10;
        while(j--);
        P0=0x00;        
        }
}
void XS()
{
        if(A==0)
        {
                DisplayData[3]=smgduan[TT/10];
                DisplayData[2]=smgduan[TT%10]+0x80;
                DisplayData[1]=smgduan[MM/10];
                DisplayData[0]=smgduan[MM%10];
        }
        else
        {
                DisplayData[3]=smgduan[TTTT/10];
                DisplayData[2]=smgduan[TTTT%10]+0x80;
                DisplayData[1]=smgduan[MMMM/10];
                DisplayData[0]=smgduan[MMMM%10];        
        }
}

void main()
{
        waibuzhongduan();
        dingshiqizhongduan();
        while(1)
        {
                XS();
                Display();
        }
}
void Int0() interrupt 0//k3
{

                delay10ms(100);
                A=0;
                switch(i)
                {
                        case 0:TR0=1;break;//按第一次計時
                        case 1:TR0=0;break;//按第二次停止計時
                        case 2:TT=0,MM=0;break;//按第三次清零
                }
                i++;
                if(i>2)
                {
                        i=0;
                }
                delay10ms(10);
                IE0=0;//外部發生中斷時其值為1               
}

void Time0() interrupt 1
{

        TH0=0xD8;
        TL0=0xF0;
        MM++;
        if(MM==100)
        {
                MM=0;
                TT++;
                                if (TT==100)
                                {
                                        TT=0;
                                }
        }
        TF0=0;//為1時表示定時器T0計數溢出
}
void Int1() interrupt 2//k4
{

                delay10ms(100);
                TTTT=TT;
                MMMM=MM;
                A=~A;
                delay10ms(10);
                TF1=0;//外部發生中斷時其值為1
}

評分

參與人數 1黑幣 +8 收起 理由
songfengyi + 8 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:351226 發表于 2018-6-15 12:19 | 顯示全部樓層
那怎樣改 開始時是暫停  并且初始值是00:00
回復

使用道具 舉報

ID:351226 發表于 2018-6-15 12:34 | 顯示全部樓層
您能用51的講解   52不熟    謝謝您
回復

使用道具 舉報

ID:164602 發表于 2018-6-16 07:17 | 顯示全部樓層
zhanghming 發表于 2018-6-15 12:34
您能用51的講解   52不熟    謝謝您

就這個程序而言,是一樣的。沒有一點特殊的地方。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产亚洲一区二区三区在线 | 欧美成ee人免费视频 | 国产精品国产精品国产专区不卡 | 国产在线观看网站 | 天天干视频 | 一区二区三区亚洲 | 欧洲色综合 | 精品久久久久久 | 久久不卡视频 | 91在线视频观看免费 | 中文字幕在线观看av | 日韩一区在线播放 | 午夜网| 久久久成人免费一区二区 | 成人自拍av | 精品国产一区二区三区在线观看 | 欧美jizzhd精品欧美巨大免费 | 久久久久久久久久爱 | 精品欧美 | 久久综合伊人一区二区三 | 日韩a在线| 国产一级视频免费播放 | 五月激情六月婷婷 | 五月天激情综合网 | 精品视频在线观看 | 国产永久免费 | 国产精品99精品久久免费 | 亚洲国产成人精品女人久久久 | 国产天天操 | 午夜在线| 999久久久久久久久6666 | 免费能直接在线观看黄的视频 | 成人性视频免费网站 | 香蕉久久久| 日韩美女爱爱 | 一级片免费网站 | 国产成人免费一区二区60岁 | 亚洲高清视频一区二区 | 国产精品国产a | 国产精品毛片av一区 | 欧美日韩亚洲系列 |