| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1677 人关注过本帖
标题:C语言的大神们,加急的程序,希望能够帮我,谢谢!
只看楼主 加入收藏
luo8232
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-6-8
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
C语言的大神们,加急的程序,希望能够帮我,谢谢!
#include<reg51.h>
#define uchar unsigned char

unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned int time=0,time1=25;
sbit com0=P3^0;
sbit com1=P3^1;
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit D1=P1^3;
sbit D2=P1^4;

int main(void)
{
unsigned char counter;
TOMD=0X01;
TH0=(65536-46083)/256;
TL0=(65536-46083)%256;
TF0=0;

}

  
void display(unsigned char luo)
 {
    com0=1;
    P2=tab[luo/10];
    delay();
    com0=0;
   
    com1=1;
    P2=tab[luo%10];
      delay();
    com1=0;
 }
void daojishi()
{
   time1--;
   if(time1==-1) time1=25;
}

void main(void)
{   
unsigned char j;
while(1)
{ if(key==1) {time1=25;}
  if(key==0)
    {
   D1=1;D2=0;
   daojishi();
   for(j=200;j>0;j--)
   {display(time1);}
 
    if(time1==0)
    {
    while(1)
    {
       com0=1;
       com1=1;
       delay();
       D1=0;
         D2=0;
       delay();
       D1=1;
         D2=1;
       delay();
            if(key==1) break;
    }
  }
}
 



{
         display(time);
      }
    }
  按照要求需要三个按键分别控制:开始、暂停和复位.我接下来该怎么做?

[此贴子已经被作者于2016-6-8 23:00编辑过]

搜索更多相关主题的帖子: counter display include C语言 
2016-06-08 22:22
低调的张扬
Rank: 1
等 级:新手上路
帖 子:1
专家分:7
注 册:2016-6-9
收藏
得分:7 
time1是unsigned int型,可以等于-1吗
2016-06-09 03:28
luo8232
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-6-8
收藏
得分:0 
回复 2楼 低调的张扬
#include<reg51.h>
#define uchar unsigned char

unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned int time=0,time1=25;x;y;
sbit com0=P3^0;
sbit com1=P3^1;
sbit key=P1^0;
sbit key1=P1^1;
sbit key2=P1^2;
sbit D1=P1^3;
sbit D2=P1^4;



void delay()
   {
     unsigned char m;
    m=500;
         while(m--);
   }

  
void display(unsigned char luo)
 {
    com0=1;
    P2=tab[luo/10];
    delay();
    com0=0;
   
    com1=1;
    P2=tab[luo%10];
      delay();
    com1=0;
 }
void daojishi()
{
   time1--;
   if(time1==-1) time1=25;
}




void main(void)
{   
unsigned char j;
while(1)
{
   if(key==0) {time=24;D1=0;D2=1;}
   if(key==1) {time1=25;D1=1;D2=1;}
    {

   daojishi();
   for(j=200;j>0;j--)
   {display(time1);}
   
 
     }
    if(time1==0)
    {
    while(1)
    {
       com0=1;
       com1=1;
       delay();
       D1=0;
         D2=0;
       delay();
       D1=1;
         D2=1;
       delay();
            if(key==1) break;
    }

   
    }
  }
}
 
 现在只有按键1能够运行,按键2跟按键三还不能控制
2016-06-09 05:14
luo8232
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-6-8
收藏
得分:0 
(1)开始时,倒计时器数码管显示“24”
(2)按下SP1,开始倒计时;
(3)按下SP2,计时暂停;
(4)再次按下SP1后,计时继续。
(5)SP3按钮功能为计时清零,系统复位。
发挥功能:设置两个指示灯D1(绿灯)、D2(黄灯),正常倒计时时绿灯D1亮,暂停时黄灯D2亮,倒计时至0后指示灯D1、D2同时以10Hz频率闪烁。

这是篮球24秒倒计时的要求。
2016-06-09 05:15
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:7 
这应该到单片机里问。另2楼:unsigned 只会影响到大于小于的判断,却不能影响等于的判断,unsigned char a;a==-1等效于a==255,可以这样写的。

能编个毛线衣吗?
2016-06-09 06:10
luo8232
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-6-8
收藏
得分:0 
回复 5楼 wmf2014
我有汇编语言,你能帮编译成C语言吗?
2016-06-09 10:21
快速回复:C语言的大神们,加急的程序,希望能够帮我,谢谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020200 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved