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

QQ登錄

只需一步,快速開始

搜索
查看: 4554|回復(fù): 11
收起左側(cè)

為什么我的流水燈和數(shù)碼管不能同時(shí)工作啊

[復(fù)制鏈接]
ID:272089 發(fā)表于 2018-1-11 15:58 | 顯示全部樓層 |閱讀模式
20黑幣
#include <reg51.h>
#include <intrins.h>
#define         uchar unsigned char
#define  uint  unsigned int
sbit cs1=P3^5;sbit cs2=P3^6;sbit wr=P3^7;
void delay(uint i){while(i--);}
uchar code ledcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar buf[8];
#define leddata P0
uchar c=0,t;
uchar min=0,sec=0;
void display(void)
{
    uchar i,j=0x7f;
        for(i=0;i<8;i++)
        {
           cs1=0;cs2=1;
           leddata=ledcode[buf[i]];wr=1;wr=0;
           cs1=1;cs2=0;
           leddata=j;wr=1;wr=0;
           delay(100);
           j=_cror_(j,1);
           leddata=0xff;wr=1;wr=0;
        }
}
void led()
{
   P2=0x3f;delay(50000);
   P2=0x0f;delay(50000);
   P2=0x03;delay(50000);
   P2=0x00;delay(50000);
   P2=0xc0;delay(50000);
   P2=0xf0;delay(50000);
   P2=0xfc;delay(50000);
   P2=0xff;delay(50000);
}
void main()
{
TMOD=0x11;
EA=ET0=TR0=1;
while(1)
{
   buf[0]=buf[1]=buf[2]=buf[3]=0xff;
   buf[4]=min/10%10;
   buf[5]=min%10;
   buf[6]=sec/10%10;
   buf[7]=sec%10;
   display();
   led();
   //if(sec>5&&min>=0)led();
   }
}

time0() interrupt 1
{
    TL0=(65536-50000)%256;
        TH0=(65536-50000)/256;
        c++;
        if(c>=20)
        {
        c=0;sec++;
        if(sec>=60)
         {
           sec=0;
           min++;
           if(min>=60)
           {
             min=0;
           }
         }
        }
}

回復(fù)

使用道具 舉報(bào)

ID:111634 發(fā)表于 2018-1-11 18:36 | 顯示全部樓層
先學(xué)理論,打基礎(chǔ),否則,問題多多,事倍功半。
回復(fù)

使用道具 舉報(bào)

ID:267121 發(fā)表于 2018-1-11 20:57 | 顯示全部樓層
     我這里有一份完整的 不知道你現(xiàn)在還需要不?
回復(fù)

使用道具 舉報(bào)

ID:148578 發(fā)表于 2018-1-11 23:23 | 顯示全部樓層
void display(void)
{
    uchar i,j=0x7f;
        for(i=0;i<8;i++)
        {
           cs1=0;cs2=1;
           leddata=ledcode[buf[i]];wr=1;wr=0;
           cs1=1;cs2=0;
           leddata=j;wr=1;wr=0;<<<<<<-------------wr=1;wr=0;代表什么?猜測(cè)是應(yīng)該給一個(gè)脈沖,這樣應(yīng)該加上延時(shí)
           delay(100);
           j=_cror_(j,1);
           leddata=0xff;wr=1;wr=0;<<<<<<-------------wr=1;wr=0;代表什么?猜測(cè)是應(yīng)該給一個(gè)脈沖,這樣應(yīng)該加上延時(shí)
        }
}
回復(fù)

使用道具 舉報(bào)

ID:148578 發(fā)表于 2018-1-11 23:45 | 顯示全部樓層
void display(void)
{
    uchar i,j=0x7f;
        for(i=0;i<8;i++)
        {
           cs1=0;cs2=1;
           leddata=ledcode[buf[i]];wr=1;wr=0;
           cs1=1;cs2=0;
           leddata=j;wr=1;wr=0;<<<<<<<-----猜測(cè)wr需要給一個(gè)脈沖,要在兩個(gè)指令中間增加延時(shí)
           delay(100);
           j=_cror_(j,1);
           leddata=0xff;wr=1;wr=0;<<<<<<<-----猜測(cè)wr需要給一個(gè)脈沖,要在兩個(gè)指令中間增加延時(shí)
        }
}
回復(fù)

使用道具 舉報(bào)

ID:275057 發(fā)表于 2018-1-12 01:28 | 顯示全部樓層
數(shù)碼管建議放到定時(shí)器中
回復(fù)

使用道具 舉報(bào)

ID:275057 發(fā)表于 2018-1-12 01:30 | 顯示全部樓層
顯示程序最好是在定時(shí)器中斷工作,不然延時(shí)太長會(huì)影響進(jìn)程,
回復(fù)

使用道具 舉報(bào)

ID:269447 發(fā)表于 2018-1-12 12:38 | 顯示全部樓層
delay()這玩意能不用就別用,實(shí)際開發(fā)基本都不帶delay的
回復(fù)

使用道具 舉報(bào)

ID:272089 發(fā)表于 2018-1-13 07:46 | 顯示全部樓層
qqqq11223344 發(fā)表于 2018-1-11 20:57
我這里有一份完整的 不知道你現(xiàn)在還需要不?

也是用的定時(shí)器?
回復(fù)

使用道具 舉報(bào)

ID:265553 發(fā)表于 2018-1-14 08:57 來自觸屏版 | 顯示全部樓層
是不是那里有問題了
回復(fù)

使用道具 舉報(bào)

ID:275955 發(fā)表于 2018-1-14 21:53 | 顯示全部樓層

先學(xué)理論,打基礎(chǔ),否則,問題多多,事倍功半。
回復(fù)

使用道具 舉報(bào)

ID:279302 發(fā)表于 2018-1-24 15:37 | 顯示全部樓層
有沒有圖,來個(gè)圖看下
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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