用C51语言设计程序,实现0~99秒计数器

本文提供了一个使用51单片机实现00-99秒计时功能的C语言程序示例。该程序通过两个数码管显示时间,并利用三个独立按键进行开始、暂停及清零操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要求:
2个数码管显示。
三个独立按键控制,P1.1开始、P1.2暂停P、1.3清零。
要c语言的 重赏
悬赏分:80 | 提问时间:2010-6-23 17:38 | 提问者:牛听我弹琴 | 问题为何被关闭
//=======================================
呵呵,这个问题,回答了足有一年了。
因为提问者没有选为最佳答案,故此也就没有收录到博客。
(当时的回答是完全正确的,但是提问者得到答案后,却关闭了题目,真不厚道。)
那么现在怎么又在博客中发表了呢?
因为前几天有个网友,用我写的程序,去回答另一个问题,结果当然是所答非所问。
(可见:http://zhidao.baidu.com/question/282405934.html#here
故此,在这里把我一年前写的程序,重新发表出来,以正视听。
原题网址:http://zhidao.baidu.com/question/161700665.html?an=0&si=4

//下面是00-99秒计数的C语言程序。

#include<reg52.h>
#include<intrins.h>
unsigned char i, j;
unsigned char code table[] = {
    0xc0, 0xf9, 0xa4, 0xb0, 0x99,
    0x92, 0x82, 0xf8, 0x80, 0x90};

sbit  QI_DONG = P1^1;
sbit  TING_ZH = P1^2;
sbit  QING_LY = P1^3;

bit k;
//---------------------------------------------
void Delay_1ms(unsigned int x)
{
    unsigned int  i, j;
    for(i = 0; i < x; i++)  for(j = 0; j <= 148; j++);
}
//---------------------------------------------
void main( )
{
    TMOD = 0x01;                   //;T0定时方式1
    TH0 = (65536-50000) / 256;     //;50ms@12MHz
    TL0 = (65536-50000) % 256;
    TR0 = 1;                       //;定时器初始化结束.
    ET0 = 1;                       //;开启定时中断.
    EX0 = 1;
    EX1 = 1;
    EA = 1;
    i = 0;
    j = 0;
    P0 = 0xC0;
    P2 = 0xC0;
    while(1) {
      if (QI_DONG == 0) {
        Delay_1ms(10);   while(QI_DONG == 0);  k = 1;
      }
      if (TING_ZH == 0) {
        Delay_1ms(10);   while(TING_ZH == 0);  k = 0;
      }
      if (QING_LY == 0) {
        Delay_1ms(10);   while(QING_LY == 0);
        i = 0;   j = 0;  P0 = 0xC0;  P2 = 0xC0;
      }
    }
}
//---------------------------------------------
void timer0(void) interrupt 1
{
    TL0 = (65536-50000) % 256;
    TH0 = (65536-50000) / 256;       //;50ms@12MHz
    if (k) {
      j++;
      if (j == 20) {
        j = 0;
        i++;
        if (i == 100) i = 0;
        P0 = table[i / 10];
        P2 = table[i % 10];
      }
    }
}
//---------------------------------------------
本程序,经过了PROTEUS检验,截屏如下图。

用C51语言设计程序,实现0~99秒计数器 - 非著名博主 - 电子信息角落
图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/5124b017da58fa1521a4e9d8.html#
//=============================================

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值