找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4976|回复: 0
收起左侧

单片机C语言一分钟倒计时秒表源码

[复制链接]
ID:333933 发表于 2018-5-19 22:05 | 显示全部楼层 |阅读模式
c语言秒表单片机源程序如下:
  1. //**************************************************************************************
  2. // File name :**.c
  3. //
  4. // Descriptions :
  5. //
  6. //**************************************************************************************

  7. //**************************************************************************************
  8. //Revision History
  9. //------------------
  10. //
  11. //01 ****-**-**   10:07  Park
  12. //      Create the file.
  13. //**************************************************************************************
  14. #include<reg51.h>

  15. sbit dula=P2^6;
  16. sbit wela=P2^7;
  17. sbit beep=P3^7;
  18. unsigned char j,k,a1,a0,s=60;
  19. unsigned int m;
  20. unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
  21.                         0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

  22. void delay(unsigned char i)
  23. {
  24.   for(j=i;j>0;j--)
  25.     for(k=125;k>0;k--);
  26. }
  27. void display(unsigned char sh_c,unsigned char g_c)
  28. {
  29.    dula=0;
  30.    P0=table[sh_c];
  31.    dula=1;
  32.    dula=0;
  33.    
  34.    wela=0;
  35.    P0=0xfe;
  36.    wela=1;
  37.    wela=0;
  38.    delay(5);
  39.    
  40.    P0=table[g_c];
  41.    dula=1;
  42.    dula=0;
  43.    
  44.    P0=0xfd;
  45.    wela=1;
  46.    wela=0;
  47.    delay(5);
  48. }

  49. void main()
  50. {
  51.         TMOD=0x01;
  52.         TR0=1;
  53.         TH0=(65536-46080)/256;// 由于晶振为11.0592,故所记次数应为46080,计时器每隔50000微秒发起一次中断。
  54.         TL0=(65536-46080)%256;//46080的来历,为50000*11.0592/12
  55.         ET0=1;
  56.         EA=1;
  57.         while(1)
  58.         {
  59.                 if(m==20)
  60.                 {        m=0;
  61.                         s--;
  62.                 }
  63.                 a0=s%10;
  64.                 a1=s/10;
  65.                 display(a1,a0);
  66.                 if(s==0)
  67.                 {
  68.                         TR0=0;//时间到,定时器关闭
  69.                         beep=0;//蜂鸣器响,报时。
  70.                 }       
  71.         }
  72. }

  73. void time0() interrupt 1
  74. {TH0=(65536-46080)/256;
  75.         TL0=(65536-46080)%256;
  76.         m++;
  77. }
复制代码

所有资料51hei提供下载:
10 C语言秒表.zip (203.46 KB, 下载次数: 33)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表